双花问题(double spending attack):虚拟货币与纸质货币的区别在于可以复制,我可以把虚拟币100元给到A,再复制100元给到B。

如何解决:每个交易通过分布式账本进行记录,这个分布式账本就是区块链。每个交易都会指明币的来源,证明币不是凭空捏造的是有记录的,同时根据账本可以查一下之前这个币花过没有,这样就可以防止双花攻击)

具体实现:

比如A转账给B10元,交易包含输入输出,输入部分指定币的来源和A的签名和A 的公钥(为了让B验证A的签名),输出部分B的地址(公钥Hash)

A给B发送信息,用非对称加密体系,是用B的公钥加密,公开的公钥加密,收到之后用B的私钥解密。A用A的私钥进行签名,B用A的公钥进行验证.

51%攻击

what: 攻击者控制了51%的网络算了,基于pow共识,就更大几率获得产块权,一旦获得产块权就可以伪造交易,进行恶意攻击,基于最长链共识,正常的交易链会被丢弃掉,只保留恶意交易链。

怎么解决?

B在收到A的转账后没有直接发货,而是等待超过基于正常链产生6个区块后再进行发货,这样攻击者需要产生大于6个区块的成本上才能伪造恶意交易,大大增加了恶意交易的成本。