共识机制包括:
POW,工作量证明,即通过算力争夺记账权。
POS,权益证明,谁拥有的比特币越多,获得记账权的概率就越大。
BFT,拜占庭容错协议,实际上整个共识机制就解决了所谓的拜占庭将军问题,少数节点不会影响多数节点的共识。
了解一下比特币的双花,这是比特币或者区块链面临的一个安全问题。还是刚才的例子,Alice要给Bob2个比特币,从Bob那买一千克黄金,Bob答应了,Alice在网上公布说要跟Bob发生一笔交易:Alice用2个比特币买Bob的一千克黄金。而Alice具有足够的算力,网络公布之后,大家去计算,算出来之后会生成一个新的区块放到上面,因为全网确认需要一段时间,在这个过程中Alice撤销了,又告诉全网说我要把这2个比特币给第三个人不给Bob了,然后又在全网广播,节点收到新的交易消息又开始挖矿,也算出来一个数,这样的话就会发生分叉,其他节点在同步账本的时候就会面临两个新的区块选择哪一个的问题。
区块链里的机制是选择长的链,所以前面说到需要在5-6个区块后才能确认交易可靠,节点根据这个长的链同步数据,短的链就被撤销掉了,以此来共同来维护这个账本。解决这个问题我们需要在确认的时候有一个延时的机制,也就是说当延时一定程度之后再确认,使得它在这个时间当中不可能快速地去创建一个更长的链来撤销这个交易,这是时间也是根据当前整个网络的算力来估计的。理论上有双花的可能,但实际上发生的概率非常低。