区块链共识算法实现Decentralization的演化路径
区块链的共识机制是区块链系统的核心,是构建多方信任的基础,当前几大主流共识算法却或在资源浪费、或在对抗欺诈节点、或在效能效率等方面不尽如人意,甚至出现中心化倾向。共识算法如何回归区块链民主化的本质?如何支撑起日益庞大的应用需求?这事关整个区块链系统走向何方……
银行业是率先入场区块链的行业,其相关从业者也将目光大举转向区块链,谙熟整个金融市场体系的他们,对这个新技术也许会多一些更实用宏观的角度。洪蜀宁,曾长期任职中国人民银行南京分行,现专注于数字货币、区块链技术及应用研究,已从前人行专家成功“跨界”为公认的区块链行业资深专家。2011年以发表国内第一篇、也是体制内第一篇研究比特币的学术论文《比特币:一种新型货币对金融体系的挑战》引发巨大反响,直至今日其中观点仍被认为极具前瞻性。随后,他又接连发表一系列关于数字货币对金融业影响的文章,以对金融市场的把握和数字货币研究的深入成为权威布道者。这一次,他将目光瞄准了共识算法,直指现有共识算法面临的三大问题:“无利害关系”、“远程攻击”和“马太效应”,到底谁更接近区块链Decentralization、公平、普惠的最初理想和目标?让我们一探究竟。
区块链共识算法实现Decentralization的演化路径
从计算机系统角度来看,区块链技术是一种全新的分布式系统,但区块链与传统分布式系统最根本的区别就在于其Decentralization特性。所谓Decentralization,是指没有一个中央控制方能够控制区块链网络的运行,既不能停止它,也不能操纵其中的数据。Decentralization特性为区块链带来三个好处:容错性、抗攻击力和防合谋,从而使得区块链成为一种独立的、可信的、抗垄断的技术体系,为在其之上存储和转移价值与信任提供了技术保障。
为实现这种Decentralization特性,区块链引入了共识算法,在无须信任的各参与方之间建立了进行可信计算的基础。所谓共识算法,实际上是一种协议,当各参与方均按照协议进行计算时,可保证各方所进行的计算结果是一致的,如果有(少数)人不遵守协议提供错误的计算结果(拜占庭节点),其计算结果会被其他人拒绝,只有多数人达成一致的计算结果才会被记录进区块链账本之中。值得一提的是,参与者是否遵守协议完全由其自己决定,并不受外力的强制。
最早的区块链共识算法是比特币所采用的工作量证明(Proof of Work, PoW)算法,通过反复进行无法预测结果的哈希计算(俗称“挖矿”)来达到随机选择区块创建者的目的。工作量证明算法简单、安全、可靠,对节点数量没有限制,除51%攻击外几乎没有漏洞,像比特币这样容纳了巨额财富的区块链网络需要它所提供的最高安全级别保护。但由于挖矿需要消耗巨大的电能,因此工作量证明算法不适用于低价值系统。
区块链共识算法实现Decentralization的演化路径
另一种常见的共识算法是拜占庭容错算法(BFT),在恶意参与者不超过1/3的情况下可以提供高效、确定性的共识结果,主要缺点有两个,一是当参与者数量较多时性能会非常快地下降,从而实际上不可用,二是无法防范分身攻击,需要明确参与者的身份,防止一个人(机构)部署多个节点。因此BFT共识算法主要用于小规模的联盟链,不适用于公链。
区块链共识算法实现Decentralization的演化路径
为解决上述问题,出现了权益证明(Proof of Stake, PoS)共识算法。将工作量证明中的哈希计算改为质押数字货币(即权益),既解决了工作量证明算法消耗大量算力的缺陷,又解决了BFT算法的分身攻击问题。权益证明用币价下跌的威胁捆绑了参与者的切身利益,起到了与工作量证明机制类似的作用。但权益证明也面临着3大问题:一是“无利害关系”(Nothing-at-stake attack)问题,攻击者可以只抵押一次权益但同时在所有分叉上出块;二是“远程攻击”(LongRange Attacks)问题,攻击者可以从任意长度的距离建立一个分叉而不用担心权益被削减;三是“马太效应”问题,也即财富会愈来愈集中。针对这些问题目前有几种改进的手段:
1、DPoS(BitShare, Steem, EOS)
以EOS的DPoS算法为例,首先所有用户通过PoS算法投票选出21个超级节点,再在超级节点之间用BFT算法生成区块。这样结合PoS和BFT算法的优点,就避免了传统PoS算法的“无利害关系”和“远程攻击”问题,但却带来了另一个致命的问题:由于超级节点的运营者及其密切支持者往往占有了大量的EOS币,很难被普通用户投票选下去,从而加剧EOS的中心化倾向,与区块链的Decentralization本质相抵触。因此,DPoS算法只是个折中方案,不是好的共识算法。
区块链共识算法实现Decentralization的演化路径
2、Casper(以太坊)
以太坊推出的Casper共识算法则另辟蹊径,引入了惩罚机制,将未遵守共识算法、在多个分叉上出块的节点所质押的以太币处全部或部分没收,从而解决无利害关系问题。与此同时,通过结合工作量证明算法、定期更新区块的终结状态,又解决了远程攻击问题。这是一个非常精妙的构思,但是否能真正实现还有待观察。
3、基于VRF的PoS算法(Algorand, Dfinity,Ouroborous)
这类共识算法思路与DPoS类似,但出块节点不是由用户投票选出来,而是通过VRF(Verifiable Random Function,可验证随机函数)算法从所有节点中随机抽取若干个节点,然后用BFT算法生成区块。VRF可以保证无法预测谁下一轮会被抽中,这样就无法作弊。这类算法由于其复杂性,尚处于实验阶段,而且有一个通病就是VRF在网络拥堵情况下无法工作,因此应用于公链目前还有难度。
4、DSC(Penta)
上述三类PoS算法都无法解决“马太效应”问题。Penta(PNT)提出的DSC(Dynamic Stake Consensus)共识算法吸收了各种PoS算法的优点,并创造性地提出了超级议员的概念模式,即将参与记账的节点分为议员和观察员两类,议员需要质押大量的代币才能获得资格,而观察员则只需质押少量代币即可。观察员的数量远远大于议员的数量,议员和观察员均由用户通过PoS算法投票选出。系统定时通过散列抽签算法(RSA)挑选议员和观察员组成若干共识组,每个共识组都由少数议员和多数观察员组成。每个共识组进行BFT共识,生成各自的候选区块,最后再通过散列抽签算法从候选区块中随机选取正式区块。
区块链共识算法实现Decentralization的演化路径
DSC共识算法使得无法持有大量代币的普通人也有机会参与记账、获取利润,以人数优势弥补资金劣势,从而避免将“挖矿”变成只有富人才能参与的游戏,实现区块链Decentralization、公平、普惠的最初理想和目标,相信这种优秀的理念会逐渐被其他公链所接受和模仿。
信息首发:区块链共识算法实现Decentralization的演化路径