中本聪当年之所以设计挖矿,其原意是希望每一个比特币钱包的拥有者都能够参
与整个系统的决策机制,如果有任何人试图对系统作恶,或者某一部分节点收到
损失,都可以让其他节点迅速补上,并且只要有51%的节点(算力)投票就可以选
择对系统发展更有利的方向。比特币在Block的生成过程中使用了POW机制,一个
符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到
合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速
度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的
尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率
事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。
随着参与挖矿的节点增加, 在 PoW 协议下维持生态健康发展的成本将会持续升
高
POS:也称股权证明,类似于财产储存在银行,这种模式会根据你持有数字货币的
量和时间,分配给你相应的利息。
简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度,在股
权证明POS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个
币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了
一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获
得0.05个币的利息(假定利息可理解为年利率5%),那么在这个案例中,利息 =
3000 * 5% / 365 = 0.41个币,这下就很有意思了,持币有利息。这种算法解决
了 PoW 的弊端, 但放大了资本对记账权概率分配的影响, 导致大资本更容易占
据生态的话语权, 形成寡头垄断,丧失了记账的公平性。
比特股的DPoS机制,中文名叫做股份授权证明机制(又称受托人机制),它的原
理是让每一个持有比特股的人进行投票,由此产生101位代表 , 我们可以将其理
解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。从
某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行
他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的
超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不
了解也不关心比特币的人身上,类似演唱会的黄牛,大量囤票而丝毫不关心演唱
会的内容。作为 PoS 的改进, 由社区通过选举产生记账者。记账者数量的减
少, 可以让整个共识算法运行速度更快; 记账者得到社区的承认, 让整个记账
过程更民主化,更公平。
PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式
系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也
实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1
的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副
本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之
外不能提高可靠性。
这是一种基于消息传递的一致性算法,算法经过三个阶段达成一致性,这些阶段
可能因为失败而重复进行。
假设节点总数为3f+1,f为拜赞庭错误节点:
1、当节点发现leader作恶时,通过算法选举其他的replica为leader。
2、leader通过pre-prepare 消息把它选择的 value广播给其他replica节点,其
他的replica节点如果接受则发送 prepare,如果失败则不发送。
3、一旦2f个节点接受prepare消息,则节点发送commit消息。
4、当2f+1个节点接受commit消息后,代表该value值被确定
如下图表示了4个节点,0为leader,同时节点3为fault节点,该节点不响应和发
出任何消息。最终节点状态达到commited时,表示该轮共识成功达成。
以上主要是目前主流的共识算法。
从时间上来看,这个顺序也是按该共识算法从诞生到热门的顺序来定。
对于POW,直接让比特币成为了现实,并投入使用。而POS的存在主要是从经济学
上的考虑和创新。而最终由于专业矿工和矿机的存在,让社区对这个标榜去中心
化的算法有了实质性的中心化担忧,即传闻60%~70%的算力集中在中国。因此后
来又出现DPOS,这种不需要消耗太多额外的算力来进行矿池产出物的分配权益方
式。但要说能起到替代作用,DPOS来单独替代POW,POS或者POW+POS也不太可
能,毕竟存在即合理。每种算法都在特定的时间段中有各自的考虑和意义,无论
是技术上,还是业务上。
如果跳出技术者的角度,还会跳出更多的共识算法,如PoP共识算法,既能确保对
设备的公平性, 又拥有社区的共识。
PoP 将 PoI 和DPoS 的思想结合。在 PoP 共识机制中, 系统将首先选取生态中
广泛的具有代表性的账户作为候选账户。 选择候选账户时, 系统同时考虑多种
因素: 如账户的地域分布;账户的业务类型; 和此账户关联的设备贡献度。 候
选账户是具有广泛的代表性,这个方法非常接近于人民代表大会制度, 每个人民
代表具有相同的投票权力,而他们又是各自的省份和各自行业中的佼佼者。
网友评论