区块链中的共识及思路


区块链中的共识是需要实现拜占庭容错(Byzantine Fault Tolerance)的共识。目前按照解决问题的思路,主要可分为两大流派,即BFT类共识和PoX类共识(Proof of X)。如果需要用一句话来概括,那么BFT类共识是基于“投票”的方式,PoX共识则是基于“彩票”的方式。

BFT共识

BFT类共识方法的思想,基本上延续了Lamport最初在提出拜占庭将军问题时的解决思路——通过节点间的消息传递与比较判断,即上文所谓“投票”来达成一致。如果应用于分布式账本领域内,可认为这个共识过程是先共识、再记账:先互相确定好记账的内容,根据一定的规则(例如少数服从多数的原则)达成一致后,再将达成一致的结果记录在各自节点的账本上。

这类共识的优点在于:因为一般只需要节点之间的信息传递与比较,所以BFT类共识达成一致的速度往往也较快,并且共识结果具有确定性,不会像PoX共识一样是概率收敛的,因此适合应用于金融等对结果一致性要求高的业务场景。

但这类共识的缺点也很明显:因为需要节点间互通有无、消息传递量较大,当节点规模较大时存在性能问题,所以应用在公有链时存在一定挑战;其次,由于是基于投票的方式进行,很多BFT类共识允许出现的最大作恶节点数量不超过总节点数的1/3,容错率相对较低;最后,很多BFT类共识要求事先确定好共识节点,因为允许任何节点随时加入/退出会增加女巫攻击风险。

PoX共识

PoX共识的思想是一种基于概率的方法,由符合某种规则的节点在“证明”自己具有记账权的同时完成记账/出块的动作。但这种方式不可避免地可能会存在多个节点都符合规则并完成了记账工作的竞争情况。那么此时则按照事先定好的原则,例如最长链、最大计算难度等确定出竞争的获胜者;各个节点都按照这个获胜者来记录账本。所以,可认为PoX共识是先记账,再共识。

这类共识在以往单纯的共识过程基础上引入了激励机制,通过博弈论与经济学上的一些方法来“惩恶扬善”。尽管比特币网络的转账效率、编程扩展性等各方面无法让人满足(也应当感谢这种“不完美”!它从另一个层面促进了区块链技术的发展),但比特币网络能够健壮地运行超过10年而没有发生致命的问题,很大程度上归功于PoW共识机制设计。

而PoX共识的缺点在于,原始的PoW(工作量证明)方法尽管已证明有效,但效率较低且存在能源浪费的情况,而其他改进的共识方法还有待实践的进一步检验;结果的确定性是概率性收敛的,只是随着时间的推移,早期的区块变得越来越安全,但理论上仍然存在被攻击而推翻已有共识进而实现双花的风险。学术界对于在理论上认为这种方式是否是能达到一致性的一种“共识”方法仍然存在争议。而且事实上,实现双花攻击的案例不算新鲜事,仍有不少币种处于高风险状态,需要引起足够重视。

本文来自网络,不代表大网站区块链立场,转载请注明出处:http://www.mbbnews.cn/22488.html
分享到