Skip to content

Latest commit

 

History

History
86 lines (52 loc) · 12.1 KB

14consensus_cn.asciidoc

File metadata and controls

86 lines (52 loc) · 12.1 KB

共识

在本书中,我们一直在讨论“共识规则”,即每个人都必须同意的规则—才能在分散式系统中运行。在计算机科学中,术语 共识 早于区块链,并且涉及更广泛的同步分布式系统中状态的问题,从而使分布式系统中的不同参与者都(最终)都同意一个系统范围的状态。这被称为“达成共识”。

当涉及分布式记录保存和验证的核心功能时,需要保证从状态更新中获得的信息是正确。仅仅依靠信任来确保信息的正确性可能会成为问题。这种普遍性的挑战在分步式网络中尤其明显,因为没有中央实体来决定什么是正确的。缺乏中央决策实体是区块链平台的主要吸引力之一,因为由此产生的抵抗审查的能力以及对授权信息访问权限的缺乏依赖。但是,这些好处是要付出代价的:没有受信任的仲裁员,任何分歧,欺骗或区别都需要使用其他手段加以调和。共识算法是用于协调安全性和分布性的机制。

在区块链中,共识是系统的关键属性。简而言之,资金有危险!因此,在区块链的背景下,consensus 是关于能够达到一个共同的状态,同时保持去中心化。换句话说,共识旨在产生一个没有统治者的严格规则系统。没有单个人,组织或团体的可以:[“决策”;] 相反,权力和控制分散在广泛的参与者网络中,他们的个人利益通过遵守规则和诚实行事来实现。

所有开放式公共区块链都有一个核心原则,就是具有在对抗条件下,无需集中控制就能在分布式网络上达成共识的能力。为了应对这一挑战并保持去中心化的价值,社区继续尝试不同的共识模型。本章探讨了这些共识模型及其对以太坊等支持智能合约的区块链的预期影响。

Note

尽管共识算法是区块链工作方式的重要组成部分,但它们在基础层运行,远低于智能合约的抽象层。换句话说,共识的大多数细节对智能合约的开发者都是隐藏的。类似你不需要了解路由器如何工作才能使用互联网,你也不需要了解共识算法如何工作来使用以太坊。

通过工作量证明达成共识

原始区块链比特币的创建者发明了一种称为 工作量证明(POW)的 共识算法。可以说,PoW是比特币架构中的最重要的发明。 PoW的俗称是“挖矿”,但这一俗称使得人们对共识的主要目的产生了误解。人们通常认为挖矿的目的是创造新的货币,因为现实世界中的挖矿目的是提取贵金属或其他资源。实际上,挖矿(和所有其他共识模型一样)的真正目的是“保护区块链”,同时分散对系统的控制权并将权利分散到尽可能多的参与者中。挖矿产生的货币奖励是对那些为系统安全做出贡献的参与者的一种激励:达到目的的手段。从这个意义上说,奖励是手段,而分散的安全性是目的。在PoW共识中,还存在相应的“惩罚”,即参与采矿所需的能源成本。如果参与者不遵守规则而试图获得奖励,他们将承担已经在挖矿上花费的资金风险。因此,PoW共识是风险与回报之间的谨慎平衡,驱使参与者出于自身利益诚实地行事。

以太坊目前是一个PoW区块链,因为它使用PoW算法并具有相同的激励系统来实现基本目标:在分散控制权的同时保护区块链。以太坊的PoW算法与比特币算法稍有不同,称为 Ethash。我们将在Ethash:以太坊的工作量证明算法中介绍。

通过权益证明(PoS)达成共识

从历史上看,工作量证明并不是提出的第一个共识算法。在引入工作量证明之前,许多研究人员提出了基于财务权益的共识算法的变体,现在称为权益证明(PoS)。从某种程度上说,工作量证明是作为权益证明的替代方法而发明的。随着比特币的成功,许多区块链都模仿了工作量证明。然而,对共识算法研究的重视也使得人民开始重新研究权益证明,从而极大地推动了该技术的发展。从一开始,以太坊的创始人就希望最终将其共识算法迁移到权益证明中。实际上,以太坊的工作量证明有一个故意的障碍,称为“难度炸弹”,意在逐渐使以太坊的工作量证明挖矿越来越困难,从而迫使向权益证明过渡。

在本书出版之时,以太坊仍在使用工作量证明,但正在进行的有关权益证明的替代方案的研究已接近完成。以太坊计划的PoS算法称为 Casper。在过去两年中,卡斯珀(Casper)替代Ethash的计划已被推迟了好几次,因此必须采取干预措施以缓解难度炸弹的发生,从而避免强制废除工作量证明。

通常而言,PoS算法的工作原理如下。区块链跟踪一组验证者,任何持有区块链基础加密货币(以太坊中为以太币)的人都可以通过发送一种特殊的交易来将其以太币锁定为押金来成为验证者。验证人轮流对下一个有效区块提出建议并投票,每个验证人的投票权重取决于其押金(即权益)的大小。重要的是,如果将验证者押在其上的区块被大多数验证者拒绝,则验证者可能会丢失其押金。相反,对于大多数人接受的每个区块,验证者都会获得与他们所存股份成比例的少量奖励。因此,PoS通过奖励和惩罚系统迫使验证者诚实行事并遵循共识规则。 PoS和PoW之间的主要区别在于PoS中的惩罚是区块链固有的资源(例如,失去作为押金的以太币),而在PoW中,惩罚是外部的资源(例如,在加入验证上花费的资金损失 电力 )。

Ethash:以太坊的工作量证明算法

Ethash是以太坊PoW算法。它使用了Dagger–Hashimoto算法的改进,该算法是Vitalik Buterin的Dagger算法和Thaddeus Dryja的Hashimoto算法的结合。Ethash取决于大型数据集的生成和分析,称为 有向无环图 简写为“ DAG”)。 DAG的初始大小约为1 GB,并将继续缓慢且线性地增长,每个时期更新一次(30,000块,约125小时)。

DAG的目的是使Ethash PoW算法依赖于维护大型,频繁访问的数据结构。反过来,这是为了使Ethash具有“抗ASIC”性,这意味着制造专用集成电路(ASIC)采矿设备要比显卡(GPU)快几个数量级。以太坊的创始人希望避免在PoW采矿中集中化,因为那些可以使用专门设备并拥有大量预算的人可能会主导矿机基础设施并破坏共识算法的安全性。

使用普通商业级别的GPU在以太坊网络上执行PoW意味着世界各地更多的人可以参与挖矿过程。越独立的矿工,采矿权就越分散,这意味着我们可以避免发生类似比特币的情况,即大部分采矿权都集中在少数大型工业采矿业主的手中。使用GPU进行挖矿的不利之处在于,它在2017年导致了全球范围内GPU的短缺,导致其价格飞涨,并受到游戏玩家的强烈抗议。这导致了零售商的购买限制,将购买者限制为每个客户一个或两个GPU。

直到最近,ASIC矿工对以太坊网络的威胁基本上还不存在。将ASIC用于以太坊需要设计,制造和销售高度定制的硬件。生产它们需要大量的时间和金钱投资。以太坊开发人员长期以来打算转向PoS共识算法的计划也会使ASIC供应商的长期目标是远离以太坊网络。一旦以太坊转移到PoS,为PoW算法设计的ASIC将变得毫无用处,也就是说,除非矿工可以使用它们来开采其他加密货币。后者的可能性现在已经成为现实,包括PIRL和Ubiq等一系列基于Ethash的共识硬币,以太坊经典承诺在可预见的未来仍将是PoW区块链。这意味着我们可能会看到ASIC挖矿在以太坊网络上仍使用PoW的时候成为能够影响以太坊网络的力量。

Casper:以太坊的权益证明算法

Casper是以太坊的PoS共识算法的建议名称。该算法仍在积极研发中,在本书出版时尚未在以太坊区块链上实现。 Casper正在两个竞争的“方向”中开发:

  • Casper FFG:“好用的决策小工具”

  • Casper CBC:“好用的GHOST /按构造校正”

Casper 的FFG最初被提出来作为一种PoW / PoS混合算法,作为向更稳定的“纯PoS”算法的过渡。 "Buterin, Vitalik","and Casper")但是,在2018年6月,负责Casper FFG研究工作的Vitalik Buterin决定“废除”混合模型,以使用纯PoS算法。现在,Casper FFG和Casper CBC都在并行开发。正如Vitalik解释的那样:

FFG和CBC之间的主要折衷是CBC似乎具有更好的理论特性,但FFG似乎更易于实现。

有关Casper历史,正在进行的研究和未来计划的更多信息,请访问以下链接:

共识原则

可以通过提出一些关键问题来更清楚地理解共识算法的原理和假设:

  • 谁可以改变过去,如何改变? (这也称为 不变性。)

  • 谁可以改变未来,如何改变? (这也称为 最终性。)

  • 进行此类变革的成本是多少?

  • 进行此类变革的权力有多分散?

  • 谁会知道情况是否已改变,他们是如何知道的?

共识算法正在迅速发展,将会有更加创新的方法回答这些问题。

争议与竞争

此时,你可能会想:为什么我们需要这么多不同的共识算法?哪个更好?后一个问题的答案是过去十年中分布式系统中最令人兴奋的研究中心。一切都归结为您认为“更好”&#x2014”的定义。在计算机科学的背景下,这是关于假设,目标和不可避免的权衡取舍。

一种非常大的可能是没有算法可以在分布式共识问题的所有维度上完成优化。当一些人认为一种共识算法比其他共识算法“更好”时,你应该开始提出一些问题来搞清这些情况:在什么方面更好?不变性,最终性,分布性,还是成本?至少在目前,这些问题尚无明确答案。此外,共识算法的设计是数十亿美元产业的中心,并引发了巨大的争议和激烈的争论。最终的结果,可能没有一个唯一“正确”的答案,而是针对不同的应用会有不同的答案。

整个区块链行业是一个巨大的实验。巨量资金将会投注到这场实验中,在对抗性条件下对各种问题进行测试。最终,历史将回答争议。

本章小结

在本书编写完成时,以太坊的共识算法仍在不断发展。随着Casper和其他相关技术的成熟并部署在以太坊上,我们在未来的版本中会添加更多详细信息。本章代表我们这次旅程的结束,完成 掌握以太坊。其他参考材料见附录。感谢您阅读本书,并恭喜您成功完成!