工作量证明(Proof of Work,PoW)
BTC的共识算法构架就是工作量证明,所有的矿工都会竞争去试Nonce值,第一个找到Nonce值经过函数之后小于某一个值的矿工就获胜,会获得出块的权利。
你可以想像这种过程就像掷骰子,随机掷到一个数字,将这个数字放进函数之后,出来的值必须小于某一个值。而第一个得出这个值的矿工就能获得出块权利。
这样的共识算法,所有的矿工都在做同一件事。虽然安全,但是太慢了。
权益证明(Proof of Stake,PoS)
Stake最早是筹码的意思。只要有一定筹码的人,都有机率可以成为节点。它的出块机制是,看谁出的筹码多,筹码多的人不一定能够出块,而是机率比较高。譬如说下图就是Node 3出块,其他节点再验证,确认没问题之后就可以出块。如此一来,就能得到比较快的交易确认时间以及减少耗能。
但是,权益证明存在节点候选人很多的情况,在跑拜占庭协议决定谁出块的时候,延迟性会较高。而且,要设计出一套可以尽可能降低门槛,让参与的节点变多,同时又要兼顾安全性的拜占庭协议是非常困难的。
因此,就有了以下第三种算法。
股份授权证明(Delegated Proof of Stake,DPoS)
既然权益证明在节点很多的情况下去跑拜占庭协议的效率会变低,所以股份授权证明限制了节点数量。EOS是第一个用此共识演算的区块链网络,节点共21个。而21个超级节点是从100个备用节点选出来的。
成为备用节点需要抵押大量的EOS在网络上,尤其他持有EOS持币者投票选出超级节点。用民主代议的方式选出超级节点看起来像是解决了问题。
但是有人的地方就有江湖,用「人治」取代一部份的「代码治」,看起来固然聪明,未来如果诱因够大,难保不会有节点共谋的情况出现。这也就是为什么EOS被大家戏称为「半中心化」。
点击关注币海启行微信公众号,了解更多