传统的银行,政府是中心化的,互联网就是一个著名的去中心化的场所。分布式共识有很多用途,尤其是在维护数据库数据方面。
分布式共识协议:在一个有N个节点的系统中,每一个节点都有一个输入值,其中一些节点具有故障,甚至是恶意的,一个分布式共识协议有以下两个属性:
输入值的中止须经过所有诚实节点来确定。
这个输入值必须由诚实节点来生成。
比特币的每一个节点并没有一个稳定的,长期的身份,这也是与传统分布式共识算法的不同之处。身份缺失的原因是,没有一个中央权威机构来发放身份,并保证它们没有制造节点。制造节点就是所谓的“女巫攻击”现象。女巫就是恶意黑客制作的不同节点,这些节点看起来像是对应 不同的身份的人,其实是由一个人在幕后控制。另一个原因是化名制,也就是比特币想表达的一个目标,即使可以为每个节点建立唯一真实的身份,比特币也不想那样做。
比特币共识算法(简化版)
假设随机选择一个节点,这些节点都不会受到女巫攻击的影响。
1.新的交易被广播到所有节点上。
2.每个节点都将新的交易放进一个区块。
3.在每个回合,一个随机的节点可以广播它的区块。
4.其它节点可以选择接受这个区块,前提是如果区块里的交易都是正当的。
5.节点们可以把以上区块的哈希值放进自己的区块,表示对新区块的认可。
因此在这种条件下是无法窃取比特币的,拒绝服务攻击实现的可能性也比较小(诚实交易可以等待下一个区块,并写入其中)。
比特币中一个常见的攻击是双重支付攻击:
如果同一笔钱(数字货币)被重复支付两次,就是双重支付问题。
假设爱丽丝在网上向鲍勃购买一件商品,爱丽丝在她的地址向鲍勃的地址发起一笔比特币交易,并向整个网络广播这笔交易。假设某个诚实节点来制造下一个区块,并把这个交易放入区块中。此时就有了一个由诚实节点发起,包含代表爱丽丝向鲍勃支付这笔交易在内的区块了。
当看到这笔交易被放入区块链后,鲍勃以为爱丽丝已经向他付款,就将商品发送给爱丽丝。假设下一个回合被随机选中的节点恰巧被爱丽丝所控制,她可以选择忽略前面那个包含她支付给鲍勃的那笔交易的区块,而产生一个包含指向之前区块指针的区块。不仅这样,在这个区块中,她可以放进一笔交易,把她支付给鲍勃的币转到一个被她控制的地址中。
2.4奖励机制与工作量证明
区块链的奖励机制有两种,第一种是造币交易(币基交易),另一种是交易费。
1.币基交易(造币交易)
币基交易每四年减半,奖励会越来越低。
2. 交易费(transactionfees)。
如果某笔交易的输出值小于输入值,那么差额就是交易费,该交易费将被增加到该区块的激励中。当区块中的交易太多的时候,矿工会丢弃交易费少的交易。
工作量证明的核心理念是,我们把随机选取节点改为根节点占有某种资源的比例来选取节点,我们希望这种资源是没有人可以垄断的。比如说,如果这个资源是计算能力,那我们称之为工作量证明系统。或者这个资源可以是某种币的拥有量,我们称之为权益证明。比特币是通过哈希函数解谜来证明工作量的。其实质就是找到一个符合条件的临时随机数
挖矿成本,挖矿收益
比特币中一个常见的理论是51%攻击,如果人们知道现实中有人掌控了51%的计算力,人们就不会继续信任比特币,因此在实际过程中,这是不可能发生的。