
历史证明、权益证明与工作量证明详解
本文讲什么?
区块链是分布式账本,用于记录计算机网络中的交易。共识算法对区块链至关重要,因为它们用于就账本状态达成一致。它们让互不信任的参与者能够协作,无需由中心化实体在数据加入区块链之前进行验证。没有共识算法,就无法确保所有节点都对区块链状态达成一致——我们将面临大量攻击向量、双花问题和不可篡改性受损,也无法妥善解决分歧或分叉。
本文将深入探讨共识算法,介绍其重要性以及主流区块链使用的不同类型。本文旨在帮助你全面了解什么是共识算法、为什么理解其工作原理很重要,并介绍几种常见共识算法的运作方式。
为什么你应该了解共识算法
为了在你选择的区块链上高效构建应用,理解共识算法至关重要,原因如下:
- 了解区块链如何达成共识,会影响去中心化应用(dApp)开发中的架构选择。你需要考虑:部署成本是多少?用户需要发送多少笔交易才能有效使用这个 dApp?发送一笔交易需要多少费用?其中最重要的问题是:达到最终确定性需要多长时间?换句话说,一笔交易要多久才能得到确认并加入区块链?
- 了解共识算法的吞吐量和延迟特性,可以帮助你选择适合部署 dApp 的区块链。思考 dApp 的架构问题,也能让你发现可以优化性能的环节
- 了解每种算法的安全问题,有助于你设计更安全的应用。你的区块链面临哪些攻击向量?这些因素会对智能合约开发的设计产生什么影响?
- 了解区块链共识算法的内部工作原理,可以帮助你掌握其投票机制的细节,从而积极参与治理
- 了解每种共识算法的具体经济激励机制,有助于促进网络参与。如何参与网络并获得奖励?应该避免哪些行为,以免受到惩罚?
- 掌握共识算法的基础知识,可以帮助你更好地理解新算法或更新后的算法。如果不了解权益证明,又如何理解委托权益证明或租赁权益证明?
什么是共识算法?
分布式计算的一项关键挑战,是即使某些组件发生故障,也要确保系统可靠运行。拜占庭将军问题描述了这一难题。这个思想实验要求系统的所有参与者必须就一种策略达成一致,以避免失败。它强调了在部分参与者可能做出不可预测或恶意行为的网络中达成一致有多困难。要缓解这个问题,就需要具备韧性的协调流程来建立单一事实来源,确保所有参与者在整个网络中可靠行动。我们将帮助系统就单一事实来源达成一致的流程称为共识算法。
想象一个没有交通信号灯的繁忙城市路口。汽车、卡车、自行车和行人都想按自己的方式通行,争抢过路时机,现场必然一片混乱。参与者之间会发生事故、误解和不信任。幸好,我们有交通信号灯。交通信号灯带来秩序,指示谁可以通行、谁必须停下,并根据实时情况进行调整。最重要的是,每个人都认可交通信号灯。我们都同意遵守规则,也同意规则应统一适用于所有人。
共识算法就是区块链的交通信号灯。它们规定了交易如何加入区块链,通过为有效和无效的交易及区块亮起“绿灯”或“红灯”,让数据安全、高效地在网络中流动。这些规则以安全、透明的方式统一执行。共识算法会在规则范围内适应不断变化的网络状况,以维持最佳性能。
共识算法对区块链至关重要。没有它们,我们就无法在对抗性环境中以统一方式验证数据,只会陷入混乱。最终,我们很可能因不堪女巫攻击和双花问题的困扰,而重新依赖中心化机构进行验证。我们需要共识算法来确保区块链安全、不可篡改且去中心化。
什么是工作量证明?
工作量证明(PoW)是一种密码学证明,一方(证明者)向另一方(验证者)证明自己已投入特定数量的计算能力。验证者可以轻松验证这项投入。Moni Naor 和 Cynthia Dwork 于 1993 年发明了工作量证明,用于防范网络上的 DoS 攻击和垃圾信息;随后,Markus Jakobsson 和 Ari Juels 在一篇 1999 年的论文中对其进行了形式化。
Bitcoin 将工作量证明推广为无需许可的去中心化网络中的共识基础。Satoshi Nakamoto 在Bitcoin 白皮书中解释了如何使用工作量证明创建纯粹的点对点电子现金系统,无需任何中介。其他采用基于 PoW 的共识算法的主流区块链包括 Litecoin、Kadena、Monero 和 Ethereum Classic。那么,它是如何工作的?
工作原理
工作量证明区块链要求网络参与者投入大量计算能力来解决复杂的数学问题。目标是猜出一个 64 位十六进制数,也就是哈希值。找到这个哈希值听起来很简单,但事实并非如此,因为它是使用 SHA256 算法,对区块内的所有交易信息连同一个随机 nonce(“仅使用一次的数字”)执行哈希运算后得到的结果。第一个解决问题的参与者可以将下一个交易区块加入区块链,并获得预先确定数量的加密货币奖励。验证交易并将其加入区块链的过程称为挖矿,网络参与者则称为矿工。
优势与缺点
工作量证明区块链的一项优点是,任何人都可以参与挖矿,从而推动网络实现去中心化和分布式运行。攻击 PoW 网络需要极其庞大的计算能力。因此,尽管理论上仍有可能,但单个实体实施 51% 攻击的难度高到几乎无法承受。51% 攻击是指恶意实体控制网络的大部分哈希算力,从而操纵交易历史。工作量证明是一种相对容易理解的共识算法,并且已经通过 Bitcoin 得到了大规模实施和检验。
虽然这些优势听起来很有吸引力,但工作量证明也存在许多缺点。挖矿硬件和电力成本高昂,可能导致、也已经导致挖矿活动集中在能源成本较低的地区。盈利性挖矿的高准入门槛意味着奖励分配并不均衡,更有利于负担得起强大矿机的人。这催生了规模庞大的 Bitcoin 矿场。由于工作量证明高度耗能,它也引发了许多环境问题。这正是 Ethereum 通过名为合并的升级转向权益证明的主要原因之一。那么,什么是权益证明?
什么是权益证明?
权益证明(PoS)旨在解决工作量证明带来的高计算量和高能耗问题。权益证明不依赖计算能力来保护网络,而是根据验证者在网络中质押的代币数量来选择验证者。Peercoin 是 2012 年第一个采用权益证明的加密货币,不过当时它与工作量证明系统同时使用。
工作原理
在权益证明中,矿工由负责提议区块并对区块投票的验证者取代。这些验证者需要锁定一定数量的代币,作为他们在网络中的质押。网络会根据质押规模、持有质押的时长等多项因素,选择一名验证者来验证下一个交易区块。随后,其他验证者会验证并证明提议的区块。如果区块被证明有效,就会被加入区块链。验证者会因验证工作获得交易费,有时还会获得新铸造的代币。如果区块被证明无效,它就不会加入区块链,验证者也会受到惩罚。这些验证者将被“罚没”,即失去一部分质押。罚没机制旨在阻止恶意参与者提议欺诈区块或在账本中制造差异。
优势与缺点
权益证明直接解决了高能耗问题。Ethereum 从工作量证明转向权益证明后,网络能耗降低了 99.84%。 权益证明算法速度更快,也更适合扩展,因为它们面向更高吞吐量而设计。这些算法旨在更快达到最终确定性,也就是说,交易能更快得到确认并加入区块链。验证者也有经济动力维护出色的验证基础设施,从而缩短验证时间。权益证明算法还更适合并行处理交易和分片。分片是指将网络拆分为多个较小的部分,即“分片”,由它们彼此独立地并行处理交易。
不过,权益证明也有自身的缺点。虽然它更加节能,但验证者获得的奖励可能低于工作量证明中的对应参与者。这可能吸引更少的参与者,从而降低网络安全性。如果管理不当,代币的初始分配也会影响网络的公平性和去中心化程度。在这种情况下,质押规模较大的人会对网络产生不成比例的影响。另一个潜在问题是,与需要分散计算能力的工作量证明不同,验证者可能无需承担损失就能同时为多个区块链分叉投票。必须设置特定的罚没条件,防止此类行为。
权益证明的变体
采用权益证明的知名区块链包括:
Ethereum
Ethereum 使用结合 Casper-FFG 的 LMD-GHOST 算法,称为 Gasper。LMD-GHOST 用于汇总投票,并确保出现分叉时节点可以轻松选择正确的分叉。Casper-FFG(Casper 友好最终确定性小工具)会将特定区块升级为“已最终确定”状态,让新加入网络的参与者始终与规范链同步。
Cardano
Cardano 使用一种名为 Ourobros 的权益证明变体,这是第一个安全性得到形式化证明的权益证明协议。它以经过同行评审的研究为基础,在设计时充分考虑了可扩展性和安全性。你可以在这里了解更多信息
Near
Near 使用门限权益证明。这是一种确定性方法,让大量参与者通过在特定时间间隔内做出决策来维护网络。你可以在这里了解更多信息
Algorand
Algorand 使用纯权益证明,这是一种建立在拜占庭共识之上的、更平等的权益证明方法。你可以在这里了解更多信息
如你所见,权益证明存在许多变体。大多数权益证明区块链都采用原始设计的某种变体,并根据自身需求进行修改,以针对特定用例优化。其中最知名、应用最广泛的变体之一是委托权益证明。
什么是委托权益证明?
委托权益证明是权益证明的演进形式,旨在提升区块链验证流程的效率和民主性。它由 Daniel Larimer 于 2014 年开发,此后已在多个知名区块链中实施,包括 BitShares、EOS、TRON 和 SUI。
工作原理
在委托权益证明中,代币持有者投票选出一组代表,由他们代为验证和创建新区块。代表由代币持有者选举产生,投票权与持有的代币数量相关。用户通过将代币汇集到质押池中,并将其关联到特定代表来投票。代表有动力诚实行事,因为恶意行为或未能维持足够的在线时间,都可能导致他们被投票罢免。代表验证区块后,会获得相应的交易费作为奖励。随后,代表会根据每名支持者的质押份额,将奖励分配给支持自己的用户。需要注意的是,这些代表会按照公开日程以确定性方式验证区块。每个区块的代表数量有限,因此代表会定期轮换。
优势与缺点
委托权益证明继承了权益证明的许多优势:任何人都可以成为代表;较低的准入门槛使其更易参与、更加去中心化;只需有限数量的代表,因此性能更高;网络运行也不需要消耗大量电力。
不过,委托权益证明并不完美。每个新区块只需要有限数量的代表。这引发了一个担忧:少数群体可能对交易验证和治理决策拥有不成比例的影响力。这项限制让代表有可能合谋作恶,大幅降低实施 51% 攻击的门槛。代币持有者也可能贿赂代表,让他们代为实施恶意行为。更重要的是,用户并非必须参与代表选举——选民冷漠可能会进一步加剧上述中心化风险。
什么是历史证明?
历史证明不是共识算法。
更准确地说,它是帮助达成共识的一个组件。之所以容易混淆,可能是因为它的名称——对熟悉工作量证明和权益证明的人来说,“X 证明”这个术语很容易让人联想到共识算法。历史证明是 Solana 架构的基础,深度集成于交易排序和程序执行之中。由于它在网络中非常重要,人们很容易误以为它就是 Solana 的共识算法。
既然它不是共识算法,我们为什么还要讨论它?历史证明解决了分布式系统中的一个根本问题——如何就时间或事件顺序达成一致。Solana 将历史证明作为一种“预共识”算法来简化共识流程,从而高效处理交易。因此,验证者可以并行处理交易,提高吞吐量并降低延迟。所以,历史证明是帮助达成共识的一个组件。更恰当的理解是,将历史证明视为网络的去中心化时钟——它无需依赖第三方,就能证明时间以及事件发生的顺序。
传统方法的局限
传统上,区块链以区块为单位进行同步,而区块是由大量交易组成的数据块。这意味着只有经过特定时长后,交易才能得到处理。这段时间称为出块时间。在工作量证明中,出块时间必须足够长(Bitcoin 大约每 10 分钟生成一个区块),以降低多名验证者同时生成新区块的可能性。权益证明不存在这项限制,但验证者需要时间戳来确定传入区块的顺序。常见的解决办法是为每个区块添加一个系统时钟时间戳。然而,只有当这个时间戳大于前 11 个区块时间戳的中位数,并且小于“网络调整时间”加两小时,它才有效。网络调整时间是指与你连接的所有节点所返回时间戳的中位数。由于存在时钟漂移和网络延迟,这并不是理想的解决方案。那么,该怎么办?
历史证明
Solana 对这个问题采取了一种颠覆性的方法,称为历史证明。简单来说,历史证明是在对抗性网络中证明时间的一种方式。历史证明充当密码学时间戳函数,让节点无需相互通信即可就事件顺序达成一致。其实现方式是使用顺序执行的抗原像哈希函数(该函数很难逆向),创建一条哈希链,其中每个哈希值都依赖前一个哈希值。领导者节点使用这些密码学证明为区块添加时间戳,证明自上一个证明以来已经过去了一段时间。由于所有哈希值相互链接,系统会生成一份历史记录,用于证明某项数据在特定时间点已经存在。
这种独特方法依赖可验证延迟函数(VDF)。这类函数的计算耗时极长,但输出可以快速验证。可验证延迟函数用于创建哈希值,这些哈希值不仅依赖前一个哈希值,还依赖已经过去的时间,从而建立一条可验证的事件时间线。使用可验证延迟函数可以确保这一点,因为篡改一个哈希值,就必须重新计算之前的所有哈希值。这为 Solana 增加了一层额外的安全性和完整性,因为事件只有一条可验证的时间线。
一个简单的类比
想象一座中世纪城镇,贸易、公告、辩论和争执随处可见。这座城镇依赖一名传令官作为中心信息来源,由他高声宣布重要消息,确保每个人掌握的信息一致。一天,传令官病倒了,无法继续履行职责。城镇顿时陷入混乱——没人能就何时发生了什么、谁说了什么,以及所有事件按什么顺序发生达成一致。
这时,一名一丝不苟的书记员出现了。他坐在城镇广场中央,用独特的墨水和羽毛笔将每件事记录在日志中。这种墨水非常特别——它会根据日志中的上一条记录改变颜色。所有人只需查看书记员的日志,就能确认事件的顺序和时间,无需四处询问。日志成为这座城镇无可争议的事实来源,人们无需传令官也能发布重要公告。会变色的墨水确保这个事实来源永久存在、不可篡改,并能验证之前的所有记录。如果将城镇替换成网络,将日志替换成账本,再将变色墨水替换成密码学哈希函数,你就得到了一种最可靠的同步方法。这就是历史证明的力量。
优势与缺点
历史证明可以缩短出块时间、每秒处理大量交易,并在达成共识之前提供单一且可验证的时间来源。它还能优化资源利用——节点无需等待共识即可处理交易,从而实现更好的并行性,并高效利用计算能力。使用可验证延迟函数增加了一层额外的安全保障,因为修改交易需要重新计算顺序哈希。这不仅成本极高,也很容易被发现。此外,借助密码学时间戳,任何人都可以验证交易的顺序和时间。我们可以确定交易发生的准确时间,而不必担心系统时钟时间戳是否有效。这增强了透明度和问责性,而这两点正是加密领域理念的核心原则。
但请注意,历史证明并不完美。这种模型给 Solana 的网络架构增加了大量复杂性,使其更难理解,也可能增加出现错误或漏洞的风险。由于可验证延迟函数需要进行资源密集型计算,Solana 节点需要性能更强的硬件。短期来看,这会提高参与网络的成本。根据摩尔定律,随着曾经昂贵的高性能硬件变得更易获得、价格更低,这项硬件门槛应该会随时间下降。摩尔定律指出,微芯片上的晶体管数量大约每两年翻一番,从而推动计算能力增长。
总结
恭喜!在本教程中,我们深入探讨了共识算法的复杂机制、它们是什么、为什么你应该了解它们,并介绍了几种主流实现。现在,你应该已经对共识算法有了全面的认识。理解这些算法不仅是一项学术探索,更是实践中的必要条件。它能帮助你从根本上理解自己正在构建应用的网络,并直接影响你创建稳健、高效应用的能力。借助这些知识,你能够以有意义的方式为自己参与的区块链社区做出贡献。在快速演进的区块链技术领域,这些知识不可或缺。
展望未来,我们可以期待更多创新的共识算法出现。现有模型也可能不断更新和调整,以应对可扩展性、安全性和效率方面的最新挑战。无论你是投资者、开发者还是区块链爱好者,现在都是参与这类前沿技术的激动人心的时刻。对共识算法的理解会让你站在创新前沿,帮助你在这个持续向上发展的领域中从容前行。
如果你已经读到这里,匿名朋友,谢谢你!
补充资源 / 延伸阅读
相关文章
订阅 Helius
及时了解 Solana 开发的最新动态,并在我们发布新内容时收到更新


