“网络共识”是个新概念。与传统网络带有非独立节点的集中式服务器不同,在区块链中,我们需要通过网络节点共识来验证交易,以此更快实现最终确定性。
1. 什么是网络共识
共识是开放区块链技术的基石,由结合透明账本与加密安全措施来实现。也就是说,网络参与者无须访问他人的身份或钱包即可通过账本记录来验证新交易,从而就真实区块的“最长链”达成共识。
开放链和分布式账本技术的蓬勃发展,催生了网络节点去中心化治理形式创新,新的治理形式不断涌现。此外,网络参与者们也在以新的方式交互。
例如,区块链节点在充当服务器和主机的同时,还必须对新交易的完整性进行投票。交易确认后,这些节点将新区块添加到现有“链”或区块历史中。
因此,网络节点达成共识,便会有新区块产生,且不同区块链采用不同共识阈值、投票方法和奖励激励。例如,权益证明(PoS)协议中的网络节点可以通过以更多自有资金“入股”来证明其投票诚信,以增加投票权。每个区块链都有其各自速度、规模和安全性权衡标准,具体取决于许多因素,我们会在后文讨论。
目前,网络共识的达成方式愈加复杂性,尽管一些共识机制有极强的安全性,但其处理时间之慢也造成了一定的困扰。以比特币为例,其网络运营商(矿工)必须花费大量的时间和精力来“挖”比特币,完成一笔比特币交易可能需要一个美国家庭53天的用电量。虽然目前因为Taproot升级稍微降低了交易能耗,但不得不承认整体消耗依然很高。
这种高能耗背后有在用大量的算力运作来防止区块确认实物,从而保护账本的安全以及准确性。
2. 最终确定性:交易“完整性”
传统法定交易由集中、受信的权威机构担保“最终确定”,该机构能够准确合法解决所有权纠纷,不会出现“确定性”不明确的现象。
但在类似比特币等区块链中,其合法性跟资产所有权就会有模糊不清的时刻,如果出现交易“最终确定性”不明确现象,那么交易的完整有效就有待考量了。另一方面,如果交易因区块链分叉而被撤销,因为没有解决此类纠纷的机构,所产生的资产所有权问题也将无先例可循。
因此,立法者在未来几年里必定会忙于起草各种法案,如交易后数字资产所有权的归属问题、可赎回保证的概念以及概率确定性和绝对确定性的法律细节。
▲ “最终确定性”会影响转移资产的所有权,以及交易在链上被撤销的风险”
某些共识协议确实即时保证了交易的不可撤销性,而一些其他机制则会在新区块添加到最长链后,再以一定概率确定资产。例如比特币中,每十分钟确认一个新区块,在确认六个区块后,才能达到概率确定性。
“概率确定性”意味着如果工作时间不够,就无法完全保证一个区块的链上永久性,新区块不断形成,而旧区块会“沉入”最长链中。因此,探索各种区块链共识机制,及其治理选择对网络节点投票选出的已确认区块最终确定性或永久性非常重要。
目前尚不清楚哪种共识方法在交易后能最好地保证所有权,关于概率确定性在实际和法律意义上被视为最终确定的最低阈值数的说法也各执一词,以太坊创始人维塔利克·布特林(Vitalik Buterin)就曾提及“最终确定性总是概率性的”,他认为即使有信用背书的传统机构,交易也可能被恶意撤销。因此,我们在区块链和DeFi应用程序中也只能接受概率确定性。
目前也已经有人提出了混合共识模型,该模型有从1/3到绝对的弹性分式最终确定性。但对其最终应用,我们将拭目以待。
3. 区块链共识机制
网络共识的最终确定性程度不同,自然会带来一个问题:如果网络节点不同意“投票”确认新区块怎么办?或者说,如果无法达成共识,或者节点行为不端怎么办?
这是经典“拜占庭将军问题”,为了解决这个问题我们必须设置一个共识阈值(如50%或67%)。也就是说,如果51%的网络参与者形成共识,认为前一个区块有错,那么交易就会被撤销。反之,区块链网络节点便会确认一个“区块”。
不同的区块链和治理方式适合不同的应用程序,我们就以下三类区块链共识机制讨论:工作量证明(PoW)、权益证明(PoS)和授权拜占庭容错协议。
1)计算密集型:工作量证明
随着比特币白皮书的发布,PoW算法由中本聪在2008年首次应用于数字货币领域,加密时代由此开始。此外,它也是当前以太坊所用机制,不过以太坊2.0已计划向PoS过渡。
PoW会选一个矿工来做区块领导者,计算下一个区块的哈希值(hash),完成与之对应的计算工作。这名领导者把来自内存池的新交易记录到下一个区块中,由网络确认并添加到区块链中。
PoW提供概率确定性,在交易实际完成之前确认6个新区块。在确认13个区块后,撤销交易的可能性大约为百万分之一;确认100到200个区块后,撤销交易的可能性非常小,黑客甚至在首次尝试时更有可能算出你的私钥。
至于机制本身,一旦首个矿工通过复杂的计算成功获得下一个区块的哈希值,该矿工就可以将随机数(nonce)或序列值(sequential value)添加到下一个区块的块头。然后,网络上的其他矿工便不再计算哈希值,而去验证获胜矿工提出的区块,获胜矿工会获得挖出的网络加密货币作为奖励。最后,较小的矿工们会汇集资源,以求算出下一个区块的哈希值,并分得该区块的代币奖励。
在比特币中,获胜的矿工会将新区块附加到最长链上,也就是“最长链规则”。这让恶意矿工可以添加欺诈性区块,从最长链中分叉出来,但诚实矿工不太可能将后续区块接到欺诈性区块上去,这意味着最长链会继续延长,舍弃欺诈性分叉区块。
2)内部货币激励:权益证明
PoW耗能高,因而更精简、节能的PoS共识应运而生。在PoS共识模型中,网络上的节点通常被称为验证者而不是矿工。验证者在它们参与的网络上以治理代币入股,并对新区块进行投票,而不会用算力粗暴地与其他节点竞争。
PoS网络不仅能耗极低,且吞吐量更高,可每秒处理更多交易 (TPS),从而更高效地扩展网络。
此外,区块验证领导者是基于多变量算法选出来的,其中以入股到网络的代币数量为最。验证者节点其实是在用他们入股的代币赌新区块的真实性。
新确认区块的交易奖励通常会放在验证者权益池中共享,而在PoS中,领导验证者会获得该区块的所有奖励。但如果领导者要验证错误区块,就会被削减权益。验证者诚实工作会得到经济激励,而做出恶意行为则会付出高昂代价。
PoS共识机制的批评者认为,入股额度大的节点频繁被选为区块领导者,就会出现权力蔓延问题。最后导致入股额度小的节点没有得到激励,权益奖励和区块验证最终被大型寡头垄断。
3)选举:授权拜占庭容错协议(PBFT)
通过选举达成网络共识的协议比PoW等计算密集型机制耗能要少得多,且在PoS固有的中心化趋势方面也有所改善。授权拜占庭容错算法 (PBFT) 高度去中心化,并且其区块验证系统效率很高。选举过程包含五个阶段:请求(request)、序号分配(pre-prepare)、相互交互(prepare)、序号确认(commit)和响应(reply)。该算法至少需要两轮投票,可以容忍多达1/3的恶意节点。
▲ PBFT各投票阶段(M. Castro, 1999)
与PoS相同,验证区块前,节点在网络上存入治理代币,取得投票权。这些节点对每个连续区块都会循环进行确定投票,其中,会选出一个主要验证者来领导各组备份或支持节点。接下来,智能合约请求会把交易发送给各领导者,然后由领导者在序号分配过程中将其作为提案转发给他们自己的支持节点。
一旦支持节点证实提案包含有效交易数据,各领导者就会向自己和所有其他组广播交互信号以验证区块。各节点在序号确认前达成共识后,各节点领导者便向其他领导者和客户广播序号确认消息。在PBFT协议中,一般约2/3的领导者同意验证新区块,就会达成共识。
客户收到节点领导者的验证共识后,智能合约会在几秒钟内以绝对确定性执行。区块奖励会分给验证者以激励诚实行为,而入股资金会因恶意行为而被扣除。PBFT可以容忍大约1/3的节点做出恶意行为而不影响验证新区块。因此,该协议常用于数字支付和资产交易领域。
4. 写在最后
尽管PoW共识协议足够强大,但它们能耗极高、吞吐量较低且可扩展性有限。而PoS协议虽然消耗能量较少,但有形成验证者寡头的劣势,且容易受恶意行为影响。
PBFT协议能耗低,交易吞吐量高,通过促进和延续去中心化可解决上述共识机制中存在的可扩展性问题。因此,对于公链应用程序,消费者和开发人员都青睐PBFT协议。然而,相比去中心化,更追求隐私的私有链和联盟链则会与之背离。
高能效和去中心化的PBFT协议巧妙地解决了当前矛盾,生成更有效的安全管理系统及规模惊人的强大账本,我们有理由相信,PBFT协议很可能会在下一代开放公链中大放异彩。正如哲学家亚里士多德将柏拉图式、形而上学的抽象式西方哲学思想解放为更具体、客观的认识论一样,区块链也必须进一步完善其绝对确定性和PBFT共识协议的治理和共识机制。
(本文系【SupraOracles】原创内容,如需转载,请联系作者)