从区块链技术本质角度探索:何谓共识
提到区块链,Consensus 是其中最为大家关注的一个新概念,被翻译成共识机制。共识机制本质是一个解决方案,当一个分布式系统里面出现不一致的情况时,我们如何最终裁定一个唯一的大家公认的结果,消解这个不一致性。
为什么区块链会需要共识机制呢,究其根本,源自于区块链的计算本质。在区块链系统中,计算是通过全网各方接力完成的,在去中心化的区块链网络中,并没有一个总指挥来分派这个接力过程,那么即使没有恶意攻击,也难免会发生己方争抢接力的情况,从而导致整个系统中出现多个不一致的接力结果。而共识机制所起得作用,就是在这个时候最终认定,哪个结果该留下来,哪个结果会被抛弃。
对于这个问题,很早在分布式系统领域,为了解决容错问题,早有答案,并被归纳为一个叫做拜占庭将军问题 (The Byzantine Generals Problem),其对应的有效解决方案成为拜占庭容错(Byzantine Fault Tolerance),就是经常听到的BFT。容错,逻辑上的解法就是少数服从多数。当然实际的算法中要互相传递和迭代最终认定的结果(基于数字签名),要限制结果认定的时间期限(所谓的epoch),要处理多数不够多的情况等。
而在比特币系统中,并没有一个参与者的批准过程,任何人都可以直接参与这个共识过程,即所谓的公链或者叫无需许可链(permissionless blockchain system)。在比特币系统中,少数服从多数的这个数,不再是多少个共识的参与者,而是一次次的哈希部分碰撞的计算结果。然后结合最长链规则来形成共识,即所谓的工作量证明(Proof-of-Work)。从这里大家可以看到,工作量证明方案解决了一个比拜占庭将军问题更难且更具挑战性的问题,就是在参与者未知的情况下,实现共识的一致性。 当然算法具体实现还有不少细节,工作量证明的难度调整、一致性后置的最长链原则,以及后面被改进的最重子树的原则等。
接着有了所谓的资产证明(Proof-of-Stake)共识系统,利用资产的数量来定义这个少数服从多数的这个数。利用资产的数量先行定义BFT共识算法中所需要的这个预设的参与者。这样,也可以实现无需许可链,也是一个不错的办法。
作为一家在新加坡注册的国际数字资产交易所,海特币(Hetbi)交易所凭借对区块链、人工智能、物联网和云服务等技术深刻的理解,为广大交易所客户提供全方位、深层次的技术支持。未来,Hetbi仍将秉承初心,通过中心化的效率优势以及去中心化的社区治理优势,为个人交易者,区块链创业者以及社群,相关中介服务机构等提供能够满足其需求的产品和服务。