历史证明、权益证明、工作量证明 - 解释

在本文中,我们将深入研究共识算法,了解它们的重要性以及流行区块链中使用的不同类型。本文的目的是让您全面了解什么是共识算法、为什么了解它们的工作原理很重要,并介绍一些流行的共识算法的工作原理。

历史证明、权益证明、工作量证明 - 解释
历史证明、权益证明、工作量证明 - 解释

这篇文章是关于什么的?

区块链是记录计算机网络上的交易的分布式账本。共识算法对于区块链至关重要,因为它们用于就账本状态达成一致。它们促进相互不信任的参与者之间的协作,消除了中心化实体在将数据添加到区块链之前验证数据的需要。如果没有共识算法,就无法确保所有节点都同意区块链的状态——我们很容易受到众多攻击向量的攻击,遇到双重支出、损害不变性的问题,并且没有一个好的方法来解决分歧或分叉。

在本文中,我们将深入研究共识算法,了解它们的重要性以及流行区块链中使用的不同类型。本文的目的是让您全面了解什么是共识算法、为什么了解它们的工作原理很重要,并介绍一些流行的共识算法的工作原理。

为什么你应该了解共识算法

了解共识算法以有效地构建您选择的区块链非常重要,原因如下:

  • 了解区块链如何达成共识会影响去中心化应用程序 (dApp) 开发中的架构选择。您会问这样的问题:部署成本是多少?为了有效地使用这个 dApp,用户应该发送多少交易?发送一笔交易的费用是多少?您要问的最重要的问题是:最终确定的时间是什么时候?或者说,一笔交易需要多长时间才能被确认并添加到区块链中?
  • 了解共识算法的吞吐量和延迟特征可以帮助您选择正确的区块链来部署您的 dApp。询问有关 dApp 架构的问题将使您了解可以优化性能的领域
  • 了解每种算法的安全问题将帮助您设计更安全的应用程序。您的区块链的攻击媒介是什么?对智能合约开发的设计有何影响?
  • 了解区块链共识算法的内部运作方式使您能够掌握其投票机制的细微差别,从而使您能够积极参与治理
  • 了解每种共识算法的具体经济激励措施有助于鼓励网络参与。我如何参与网络并获得奖励?我可以避免哪些行为以免受到惩罚?
  • 了解共识算法的基础知识将帮助您更好地理解新的或更新的算法。如果你不了解权益证明,你怎么能理解委托权益证明或租赁权益证明呢?

什么是共识算法?

分布式计算的关键挑战之一是即使某些组件发生故障也能实现可靠的系统性能。该问题在拜占庭将军问题中进行了描述。该问题描述了一个思想实验,其中所有系统参与者必须就避免失败的策略达成一致。它强调了在网络中达成一致的困难,其中一些参与者可能会做出不可预测或恶意的行为。为了缓解这种情况,需要有弹性的协调流程来建立单一的事实来源。这确保了所有参与者在网络上可靠地行动。我们将帮助系统就某一事实来源达成一致的过程称为共识算法

想象一下一个繁忙的城市十字路口,没有红绿灯。汽车、卡车、自行车和行人都想走自己的路,争夺过马路的机会,这绝对会造成混乱。参与者之间可能会出现意外、误解和不信任。值得庆幸的是,我们有红绿灯。交通灯带来秩序;告诉谁该走、该停谁,适应实时情况。最重要的是,每个人都同意交通信号灯。我们都同意这些规则,并且这些规则是统一适用的。

共识算法是区块链的红绿灯。他们制定了如何将交易添加到区块链的规则。他们通过为有效和无效的交易和区块发出“绿灯”和“红灯”,在网络上创建安全高效的数据流。这些规则以安全、透明的方式统一应用。共识算法适应不断变化的网络条件,以便在这些规则的范围内运行时始终保持最佳性能。

共识算法对于区块链至关重要。没有它们,我们就没有统一的方法来在对抗环境中验证数据。相反,我们会陷入混乱。如此之多以至于我们很可能会重新依赖中央权威机构进行验证,因为我们已经厌倦了 Sybil 攻击和双重支出。我们需要共识算法,以便我们的区块链保持安全、不可变和去中心化。

什么是工作量证明?

资料来源:什么是工作量证明 (PoW)?作者:Kirsty Moreland for Ledger

工作量证明 (PoW) 是一种加密证明形式,其中一方(证明者)证明他们已向另一方(验证者)花费了特定数量的计算能力。验证者可以轻松验证这笔支出。它由 Moni Naor 和 Cynthia Dwork 于 1993 年发明,用于阻止网络上的 DoS 攻击和垃圾邮件,后来由 Markus Jakobsson 和 Ari Juels 在 1999 年的论文中正式确定。

工作量证明因比特币而普及,作为无需许可的去中心化网络中达成共识的基础。中本聪在比特币白皮书中解释了如何使用工作量证明来创建纯粹的点对点版本的电子现金,而无需任何中介机构。其他使用基于 PoW 的共识算法的流行区块链包括莱特币嘉手纳门罗币以太坊经典。那么它是怎样工作的?

怎么运行的

工作量证明区块链要求网络参与者使用大量计算能力来解决复杂的数学问题。目标是猜测 64 位十六进制数,称为哈希值。找出这个哈希值听起来很容易,但当您考虑到该哈希值是使用 SHA256 算法使用随机随机数(“使用一次的数字”)对块中包含的所有交易信息进行哈希处理的结果时,情况就不那么简单了。第一个解决问题的参与者可以将下一个交易块添加到区块链中,并获得预定数量的加密货币奖励。验证交易并将其添加到区块链的过程称为挖矿,网络参与者称为矿工。

优点和缺点

工作量证明区块链的好处是任何人都可以参与挖矿,促进去中心化的分布式网络。攻击 PoW 网络所需的计算能力非常大。这使得单个实体执行 51% 攻击变得异常困难,尽管理论上仍然可行。 51% 攻击是指恶意实体控制了网络的大部分哈希能力,以便他们可以操纵交易历史记录。工作量证明是一种相对简单易懂的共识算法,已通过比特币大规模实施和测试。

虽然这听起来很有利,但工作量证明也有许多缺点。与采矿硬件和电力相关的高成本可能并且已经导致采矿集中在能源成本较低的地区。有利可图的采矿业的进入门槛很高,这意味着奖励分配不均,有利于那些买得起强大采矿设备的人。这导致了大规模比特币矿场的创建。由于其高度能源密集的性质,引起了许多环境问题。这是以太坊通过其名为“合并”的更新过渡到权益证明的主要原因之一。那么,什么是权益证明?

什么是权益证明?

资料来源:Rashmi Karan 为 Shiksha Online 撰写的区块链中的权益证明 (PoS)

权益证明 (PoS) 旨在解决与工作量证明相关的计算和能源密集型问题。权益证明不是依靠计算能力来保护网络,而是根据验证者在网络中持有的代币数量来选择验证者。Peercoin是 2012 年第一个使用权益证明的加密货币,尽管它与工作量证明系统一起使用。

怎么运行的

在权益证明中,矿工被验证者所取代,验证者对区块进行提议和投票。这些验证者需要锁定一定数量的代币作为他们在网络中的权益。网络根据多种因素(例如质押规模或持有质押时间)选择验证者来验证下一个交易块。然后,提议的区块由其他验证者进行验证和证明。如果该块被证明有效,则该块将被添加到区块链中。为此,验证者赚取交易费用,有时还为其验证工作赚取新铸造的代币。如果该块被证明为无效,则该块不会添加到区块链中,并且验证者将受到惩罚。这些验证者被“削减”,这意味着他们失去了部分股份。这些严厉的处罚是为了阻止不良行为者提出欺诈性区块或在账本上造成差异。

优点和缺点

高能耗问题通过权益证明直接解决。以太坊从工作量证明转向权益证明导致网络能源消耗减少了 99.84%。权益证明算法速度更快,更适合可扩展性,因为它们的算法是为更高的吞吐量而设计的。这些算法的设计目的是为了更快地完成交易,这意味着交易可以更快地得到确认并添加到区块链中。验证者也有经济动机维护卓越的验证基础设施,从而缩短验证时间。权益证明算法也更适合并行事务处理和分片。分片是指网络被分成更小的部分或“分片”,独立且并行地处理交易。

然而,权益证明也有其自身的一系列缺点。虽然更节能,但验证者的奖励可能低于工作量证明的奖励。这可能会吸引更少的参与者并降低网络的安全性。如果管理不当,代币的初始分配也会影响网络的公平性和去中心化。在这里,那些拥有更大股份的人对网络拥有不成比例的影响力。另一个潜在的问题是,验证者对多个区块链分叉进行投票可能不会有任何损失,这与需要分割计算能力的工作量证明相反。需要设置某些削减条件来避免这种行为。

权益证明变体

使用权益证明的著名区块链包括:

以太坊

  • 以太坊使用带有 Casper-FFG 的 LMD-GHOST 算法,简称Gasper。 LMD-GHOST 用于累积选票并确保节点在出现分叉时轻松选择正确的分叉。 Casper-FFG(Casper 友好的最终性小工具)将某些区块升级为“最终确定”,因此网络的新进入者始终同步到规范链

卡尔达诺

  • 卡尔达诺使用一种称为 Ourobros 的权益证明变体,这是第一个可证明安全的权益证明协议。它基于同行评审的研究,在设计时考虑到了可扩展性和安全性。您可以在这里了解更多信息

靠近

  • Near 使用阈值股权证明,这是一种确定性方式,让大量参与者通过在特定时间间隔内做出决策来维护网络维护。您可以在这里了解更多信息

阿尔戈兰德

  • Algorand 使用纯粹的股权证明,这是一种基于拜占庭共识的更加平等的股权证明方法。您可以在这里了解更多信息

正如您所看到的,权益证明有许多变体。大多数权益证明区块链使用原始设计的某些变体,但对其进行了修改以满足其需求并优化某些用例。最著名和最广泛使用的变体之一是委托股权证明。

什么是委托权益证明?

资料来源:OKX解释的委托权益证明 (DPoS)

委托权益证明是权益证明的演变,旨在提高区块链验证过程的效率和民主性。它由 Daniel Larimer 于 2014 年开发,此后已在许多著名的区块链中实施,即:BitShares、EOSTRONSUI

怎么运行的

在委托权益证明中,代币持有者投票选举一组代表来代表他们验证和创建新区块。代表由代币持有者选举产生,投票权与持有的代币数量相关。在这里,用户通过将他们的代币集中到质押池中并将它们链接到特定的代表来进行投票。代表们会被激励诚实行事,因为他们可能会因恶意活动或未能维持足够的正常运行时间而被投票淘汰。当代表验证一个区块时,他们会收到相应的交易费作为奖励。然后,代表们根据每个用户的权益将这些奖励分配给支持他们的用户。值得注意的是,这些代表根据公共时间表确定性地验证区块。每个区块的代表数量有限制,这意味着代表会定期进行洗牌。

优点和缺点

委托权益证明具有权益证明的许多优点:任何人都可以成为委托人,其较低的进入门槛使其更易于访问和去中心化,它提高了性能,因为它只需要有限数量的委托人,并且它不需要不需要太多电力来运行网络。

然而,委托权益证明并不完美。委托权益证明对于每个新区块只需要有限数量的委托。这引发了人们对赋予小团体对交易验证和治理决策不成比例的影响力的担忧。这一限制引入了这些代表合谋进行恶意行为的可能性,大大降低了 51% 攻击的门槛。代币持有者可能会贿赂代表,让他们代表他们进行恶意行为。更重要的是,用户没有被强制参加代表选举——选民的冷漠可能会加剧上述的中心化风险。

什么是历史证明?

历史证明不是共识算法

历史证明不是共识算法。更准确地说,它是一个有助于达成共识的组件。这种混淆可能是由于其术语引起的——术语“Proof of X”对于熟悉工作量证明和权益证明的人来说可能意味着一种共识算法。历史证明是 Solana 架构的基础,深度集成在交易排序和程序执行中。由于它在网络中的突出地位,很容易被误认为是 Solana 的共识算法。

那么,如果它不是共识算法,我们为什么要谈论它呢?历史证明解决了分布式系统中的一个基本问题——时间一致性或事件顺序。 Solana 使用历史证明作为一种“预共识”算法来简化共识,从而高效地处理交易。因此,验证器可以并行处理交易,从而提高吞吐量并减少延迟。因此,历史证明是有助于达成共识的一个组成部分。最好将历史证明视为网络的去中心化时钟——它提供了一种无需依赖第三方即可证明时间和事件发生顺序的方法。

传统方法的缺点

传统上,区块链在块上同步,块是大块的交易。这意味着在特定持续时间过去之前无法处理交易。这称为区块时间。在工作量证明中,区块时间需要较长(比特币大约每 10 分钟产生一个区块),以减少多个验证者同时产生新区块的可能性。在权益证明中,没有限制,但验证者需要时间戳来确定传入块的顺序。流行的解决方法是在每个块上放置一个挂钟时间戳。然而,该时间戳仅在大于前 11 个区块的时间戳中位数且小于“网络调整时间”加上两个小时时才有效。网络调整时间是指连接到您的所有节点返回的时间戳的中位数。由于时钟漂移和网络延迟,这不是最好的解决方案。那么现在怎么办?

历史证明

资料来源:历史证明:区块链时钟,作者:Anatoly Yakovenko

Solana 对这个问题采取了激进的方法,称为历史证明。简而言之,历史证明是一种在对抗性网络中证明时间的方法。历史证明充当一种加密时间戳功能,允许节点就事件顺序达成一致,而无需彼此交谈。这是通过使用顺序原像抗散列函数(该函数很难反转)来创建散列链来实现的,其中每个散列都依赖于前一个散列。领导节点使用这些加密证明将时间戳应用于区块,以证明自上次证明以来已经过去了一段时间。由于所有哈希值都是链接的,因此会创建证明数据在某个时间点存在的历史记录。

这种独特的方法依赖于可验证延迟函数 (VDF),这些函数的计算时间非常长,但其输出可以快速验证。可验证延迟函数用于创建哈希,该哈希不仅依赖于先前的哈希,还依赖于已经过去的时间。这允许创建可验证的事件时间表。可验证延迟函数的使用确保了这一点,因为篡改一个哈希值将需要重新计算所有先前的哈希值。这为 Solana 增加了一层额外的安全性和完整性,因为只有一个可验证的事件时间表。

一个简单的类比

想象一下一个中世纪的小镇,这里充满了交易、公告、辩论和纠纷。这个城镇依靠城镇宣传员作为其主要信息来源,大声喊出重要新闻并确保每个人都在同一页面上。有一天,镇上的宣传员生病了,无法再履行职责。小镇陷入一片混乱——没有人能够就事件发生的时间、谁说了什么以及所有事情发生的顺序达成一致。

一位非常细心的抄写员登场。这位抄写员坐在城镇广场中央,拿着独特的墨水和羽毛笔,用于将每一个事件记录到他们的日记中。这种墨水很特别——它会根据日记中的最后一个条目改变颜色。每个人都可以简单地参考抄写员的日记并确认事件的顺序和时间,而不必四处询问每个人。这本日记成为这个城镇无可争议的真相来源,消除了对城镇公告员的需要,因为人们可以在没有公告员的情况下发布重要公告。这种不断变化的墨水确保了一个永久的、不可变的事实来源,可以验证所有以前的条目。如果你用网络代替城镇,用账本代替日记,用加密哈希函数代替变化的墨水,那么你就拥有了最可靠的同步方法之一。这就是历史证明的力量。

优点和缺点

历史证明可以缩短区块时间,每秒处理大量交易,并在达成共识之前提供单一、可验证的时间来源。这还允许资源优化——节点可以处理事务而无需等待共识,从而实现更好的并行性和计算能力的有效利用。可验证延迟函数的使用增加了额外的安全层,因为更改交易将需要重新计算顺序哈希。这将非常昂贵且易于检测。此外,由于加密时间戳,任何人都可以验证交易的顺序和时间。我们可以确定地知道交易何时发生,而不必担心挂钟时间戳的有效性。这促进了透明度和问责制,这是加密货币精神的核心原则。

请注意,历史证明并不完美。此模型给 Solana 的网络架构增加了很大的复杂性,使其更难以理解,并可能增加错误或漏洞的风险。由于可验证延迟函数需要资源密集型计算,Solana 节点需要更强大的硬件。这在短期内增加了网络参与的成本。由于摩尔定律,由于曾经昂贵的强大硬件的可访问性和可承受性,这种硬件障碍应该随着时间的推移而降低。摩尔定律指出,微芯片上的晶体管数量大约每两年就会增加一倍,从而导致计算能力的提高。

结论

恭喜!在本教程中,我们深入研究了共识算法的复杂性、它们是什么、为什么应该学习它们,并研究了流行的实现。到现在为止,您应该对共识算法有一个全面的了解。理解这些算法不仅仅是一项学术努力,更是一种实际需要。这项工作使您对所构建的网络有基本的了解,直接影响您创建强大而高效的应用程序的能力。在这里,您可以以有意义的方式为您所属的区块链社区做出贡献。在区块链技术快速发展的格局中,这些知识是不可或缺的。

展望未来,我们可以预见更多创新的共识算法将会出现。我们甚至可以期望当前模型得到更新和调整,以适应可扩展性、安全性和效率方面的最新障碍。无论您是投资者、开发人员还是区块链爱好者,现在都是参与这种专有技术的激动人心的时刻。您对共识算法的理解使您处于创新的最前沿,使您能够在该领域不断发展的过程中驾驭它。

如果您已经阅读了本文,谢谢!

💡
原文链接:Proof of History, Proof of Stake, Proof of Work - Explained
本文由SlerfTools翻译,转载请注明出处。

SlerfTools专为Solana设计的工具箱,致力于简化区块链操作,提供无编程全可视化界面,使发币管理流动性无代码创建Dapp等复杂过程变得安全简单。