4.2. 权益证明¶
4.2.1. 什么是共识机制?¶
共识机制是更新分布式账本的方法(即向区块链添加新区块), 并且所有参与方就此达成一致。 更多信息,请参见 共识。
共识算法与共识机制的区别在于,共识算法是在网络中 给定节点上执行的一系列指令,而机制指的是网络中多个节点 为就向区块链添加哪些区块达成共识而采取的集体行动。
4.2.2. 区块结构回顾¶
区块链是一系列通过哈希指针(每个指针都有关联的哈希码)链接的区块。 区块有头部和尾部,头部包含与区块身份相关的信息, 如创建时间戳和对前一个区块的引用。 尾部包含数据,如交易集合。 更多信息,请参见 区块。
4.2.3. 为什么需要某种形式的证明?¶
此前我们介绍了工作量证明机制, 该机制因比特币协议而广为人知。 这不是在分布式账本中实现共识的唯一手段。 以太坊网络目前正过渡到权益证明机制的某个版本。 但为什么加密货币首先需要共识算法, 以及为什么必须存在"举证责任"?
简短的答案是:经济对抗性。 如果你有一个由数百、数千或数百万参与节点组成的网络, 社区需要就交易处理的顺序达成一致。 从最高层面来说,需要一个 机制来决定谁可以参与决定交易的顺序。 在工作量证明中,谁先提供合法区块(这需要大量工作——或运气——来产生), 谁就获得权利。 在权益证明中,这更像是一个投票机制。 这种投票机制如何运作,对于许多加密协议来说变得复杂。
任何涉及投票的协议的第一个要求是确定 哪些实体有权投票的流程。 如果任何想要投票的人都可以投票,那么个人就可能 创建数百亿个声称是网络选民的虚拟节点, 从而可能形成多数票并控制网络。
基于证明的共识机制根据每个节点控制的特定经济资源的比例 来分配网络控制权。 在比特币的工作量证明机制的情况下,该经济资源是 计算昂贵的哈希相关问题有效解的能力。 虽然比特币的工作量证明协议有运气成分 (本质上,矿工不断猜测直到他们足够幸运地猜中), 但从长远来看,它是对作为经济资源的计算能力的度量 (在给定时间内尽可能多地进行猜测)。
权益证明不使用算法复杂度和计算资源作为投票权的度量, 而是使用底层代币或资产的数量来表示网络中的控制权。
4.2.4. 什么是权益证明?¶
权益证明是一种实体验证(即声称有权添加)新区块到分布式账本的方式。 权益证明与比特币中使用的工作量证明方法形成对比。 自2020年12月以来,以太坊加密货币使用权益证明, 其最重要的区别在于此验证过程不需要"挖矿", 即不需要消耗大量计算资源来声称验证(并添加)下一个区块的权利。 为了表明这种区别,声称验证下一个区块 (从而获得作为对社区此贡献的奖励的相关代币)的过程 被称为"锻造"而不是"挖矿"。
其他使用权益证明作为其共识算法的加密货币包括 Peercoin、Tezos (XZT)、Binance coin (BNB)、NEO、PIVX、Neblio (NEBL)、Cardano (ADA) 和 Stratis (STRAX)。
4.2.4.1. 它如何工作?¶
本节试图提供权益证明工作原理的高层次、与链无关的概述。 具体的实现细节在不同网络上差异很大。 与相对简单且实现方式相对确定的工作量证明不同, 权益证明作为一种可行的共识方法仍在发展中。 因此,很难说"这就是它的工作原理"。 但我们可以给出一个当前的例子。
与传统工作量证明机制类似,在当前以太坊的情况下, 一个区块通常包含约70笔交易。 与工作量证明中矿工竞争获得将此区块追加到链上所需的 正确解决方案不同,权益证明机制更高效, 因为它选择一个验证者负责向链提议一个区块。
谁是潜在的验证者,下一个验证者是如何被选中的?验证者是权益证明网络中:term:质押 <staked> 了足够数量网络代币的任何参与者。在以太坊网络中,32 ETH 是成为(潜在)验证者节点所需的最低质押资产数量。下一个验证者由伪随机算法选出,该算法根据潜在验证者池中每个成员质押的货币数量按比例选举下一个被选中的验证者。这实质上意味着,如果一个验证者质押了 32 ETH,而另一个验证者质押了 320 ETH,那么在很长一段时间内,第二个验证者被选中的平均频率将是第一个验证者的 10 倍。
在以太坊的实现中,验证过程涉及所谓的委员会。 委员会是一组伪随机选择的验证者节点, 它们共同负责提议下一个区块。
提高参与成为下一个验证者机会的常用工具是质押池。 质押池是将代币合并在一起以增加集体质押的团体, 从而增加其质押池被选为下一个验证者委员会成员的机会。 虽然该质押池由(在某些情况下)成千上万人的资产组成, 但质押池本身作为网络上的单一验证者节点。 资产可以随时添加到质押池;但是,质押池 必须根据所使用的网络协议将资产锁定一定时间。 资产被锁定的时间量被称为绑定周期。 一些网络会有多种可用的绑定周期; 例如,ETH 2.0 有要求资产被锁定多年的质押协议, 而其他质押协议的绑定周期可以短至14天。
个人质押代币竞争委员会席位(或加入质押池)的原因是, 当委员会成功将区块添加到区块链时,他们会获得奖励 (如关于以太坊 gas 的讨论中所述)。
验证者向区块链添加新区块的过程分为三个阶段: 提议区块、对区块投票和向区块添加交易。 如前所述,验证者根据质押的代币数量按比例选出。 被选中后,该验证者负责提议一个新区块。 其余委员会成员的工作是投票表决提议的区块 并验证区块内的交易。 委员会有责任投票决定新提议的区块是否合法并应被纳入链中。
委员会成员具体查看什么来判断提议区块是否有效? 确保区块有效有许多验证要点,这些要点因链而异。 有效性的明显标准是遵守区块的格式规范, 就像通过互联网连接发送的数据包必须遵守特定格式一样。 可以执行的额外检查是将此区块的前一个哈希值 与链上最新区块的哈希值进行比较。 不同的链上可以存在更高级的区块验证过程; 但是,这两个是最常见的高层有效性检查。
只要委员会多数投票批准提议的区块, 该区块就会被追加到链上。 我们将在后面介绍区块被拒绝时发生的情况。
在成功向链添加新区块后, 验证过程重新开始。 整个过程将在称为epoch的设定时间段内重复。 Epoch长度因给定网络而异;但是,在以太坊的情况下, 新区块大约每15秒追加一次(远快于比特币)。 一个重要的注意事项是,即使区块已被批准并追加到主链, 它在有限时间内仍可能被作废。 在一个epoch完成后,添加的区块仍有两个 交易槽位,之后区块中的所有交易才被视为最终确定且不可逆转。
以下幻灯片展示了委员会批准过程。
4.2.5. 权益证明与工作量证明¶
4.2.5.1. 资金从哪里来?¶
任何共识协议都必须有某种形式的激励 鼓励用户参与协议;否则,可能无法验证新交易。 与工作量证明类似,权益证明在新区块追加到链上时 用新铸造的代币奖励验证者。
具体的奖励方案在不同区块链基础设施之间差异很大; 但是,从高层次来看,所有基于权益证明的环境 用于奖励验证者的过程是相同的。 区块提议者和验证提议区块有效性的验证者 将分享新铸造代币的一定比例。 每个新区块铸造的代币数量 取决于该给定协议的发行速率。
4.2.5.2. 性能/可靠性¶
所有分布式账本系统都需要计算和网络交互 才能成功。 没有去中心化网络可以在没有网络节点遵守 预定协议的情况下运行。 去中心化系统如何在没有任何中心化控制的情况下 维持正常运行时间和可靠性? 考虑像 Google.com 这样的传统软件系统。 如果Google发生重大服务器中断,其服务将无法运行, 用户将受到影响。 Google对其服务器有直接控制权,可以采取行动 解决问题或从一开始就避免它。 对于去中心化系统,对硬件正常运行时间的 那种直接控制权是不存在的。
在基于工作量证明的网络中,矿工被鼓励提议 新区块到区块链,基于提供下一个被接受区块 将获得奖励的承诺。 这激励所有网络参与者继续进行交易, 并激励矿工继续挖矿。 在基于权益证明的网络中,也存在验证者节点 被网络选中提议区块时的奖励机制。 与工作量证明不同,权益证明依赖于验证者节点 在被调用时履行其对网络的义务。 那么,当验证者节点被选中提议区块时, 但要么未能执行,要么以无效方式执行会发生什么?
这引入了 削减 的概念, 即验证者节点因未履行义务而受到惩罚。
4.2.5.3. 激励合法性¶
削减是权益证明的一个重要特性,因为它激励 验证者节点按照给定链的既定规则和法规 履行其区块提案职责。
权益证明通过委员会投票过程保持去中心化。 委员会成员可以通过投票反对提议的区块 来揭露恶意或配置错误的验证者, 如前面"它如何工作?"部分所述。
发现恶意或配置错误的验证者节点后, 有缺陷的验证者将通过削减方式受到惩罚。 削减的具体实现细节因链而异; 但是,在实践中,验证者质押的全部或部分资产 将被扣押并不予归还,作为未遵守网络协议的惩罚。
4.2.5.4. 安全问题¶
对于权益证明和工作量证明共识机制, 各种类型的攻击都是对系统的风险。 "51% 攻击"可以由拥有超过50% 某种关键资源的用户或用户群体发起。 对于工作量证明算法,这意味着某人控制了51% 或更多的挖矿周期。 对于权益证明算法,这意味着单个人或团体 在质押池中维持了网络中51%的总质押代币。 一个重要的区别是,在这种情况下,是51%的质押代币, 而不是所有参与者拥有的所有代币。 例如,据估计平均PoS网络约有70% 的总代币供应量被质押。 这意味着单个用户只需持有约35%的总代币供应量 就能获得网络的多数控制权。
对于两种算法,这种攻击形式使单一方 能够控制下一个将被添加到链上的区块。 如果成功的51%攻击者注入了恶意交易, 那么它将被接受,因为恶意方 保留了足够的投票权来接受他们想要的任何交易。
51% 攻击中可能发生的情况示例包括 阻止有效交易获得验证(从而不被添加到链中)。 想象一下你试图在Coinbase等公共交易所出售ETH 以变现你的资产。 如果恶意参与者想要阻止变现,他们可以 阻止区块链上的代币转账,这将反过来 阻止你出售任何代币。
第二个攻击向量,也是更常见的,是双花。 如果某些交易的验证没有及时发生, 那么替代交易可以进入区块链并花费 相同的代币(实际上允许恶意用户重新花费代币)。
51% 攻击在执行之前很难被发现。 当在区块链和提议的新区块之间发现 重复交易或重复退款时,可以检测到。
在权益证明系统中,51% 攻击通过削减来威慑。 参与此类攻击的人如果被发现将损失部分质押或代币。 这意味着攻击者在未来获得验证机会的可能性至少会降低, 因为他们可用于质押的代币更少了。 参见 加密安全 了解有关加密安全的更多信息。
双花最终会被发现的最明显原因是, 在成功的双花交易之后,网络上的所有节点 都将能够看到并清楚地识别此欺诈交易。 识别后可能会发生很多事情, 但最直接的是代币价格将下跌, 因为个人认识到系统已被攻破。
这种下跌实际上对网络有利,因为它使更多验证者 能够迅速上线并取代一个实体对网络的多数控制。 一旦恶意方失去对网络的多数控制, 新验证者将能够撤销之前添加的区块并 削减恶意验证者的质押代币。
从实际角度来看,这意味着任何参与 双花攻击的恶意行为者需要双花的代币数量 要超过他们在削减中可能损失的数量。 在大多数PoS系统中,双花超过获得网络 多数所有权所需的代币数量是不切实际的, 因为这通常占系统中所有代币的很大一部分。
削减只是打击多数验证者滥用的一种方式。 社区用来对抗滥用的另一种方式是分叉。 如果足够多的社区成员认为链已被破坏 且不再准确,他们可以决定在最后一个 已知的合法点分叉链并启动一条新链, 其中恶意行为者没有质押。 分叉的常见例子包括比特币和比特币现金, 其中社区对代币未来的看法产生了分歧。 结果出现了两条独立的链。
虽然技术上可行,但由于可能产生的 社会和后勤影响,攻击权益证明网络在实践中 几乎无法实现。
4.2.5.5. 能源问题¶
权益证明解决了工作量证明引起的 环境影响问题。 工作量证明需要大量电力来运行挖矿算法 (即,对随机数进行大量猜测直到最终找到 一个有效的)。 这种电力转化为更高的电力消耗, 并增加了公用事业供应商创造更多电力的需求。 例如,2016年比特币网络中一笔交易的成本 约为830 kWH的能源消耗, 该网络每秒处理约5笔交易。 这意味着一秒钟的交易消耗了4,150 kWH。 当加密货币的价值增加时,消耗的能源成本 上升,因为挖矿新加密货币的激励更高, 导致更多挖矿。 这种增长是如此显著,以至于这种方法在未来 变得不可持续。
在权益证明算法中,计算能力实际上 被用户的质押所取代。 在验证新区块时不需要高计算能力, 这意味着环境成本降低。 不是将计算资源用作稀缺性的来源, 而是质押用户自己的代币。 一个显著的缺点是,要参与验证过程, 用户必须已经拥有一定数量的代币。 在工作量证明中,新矿工只需分配 一定量的计算力即可开始积累代币。
4.2.5.6. 集中风险¶
对于工作量证明算法,企业或多个人 可以使用多台计算机挖矿来收集代币。 由于资源集中到一个团体,可能 单个团体就能拥有大部分挖矿能力 (例如中国的某些比特币投资者), 除了挖矿成本外没有额外的比特币成本。
对于权益证明算法,当个人投资 更多加密货币时,他们必须将一定比例的代币质押, 以换取被选为验证委员会成员的机会。 这种交换类似于投资股票的持有。 用户在正确验证货币区块后可以取回。 未投资于质押的代币可以用于交易。 这意味着拥有大量财富的个人可以 投入更多以获得更高收益。 投资能力较低的个人或群体的回报率较低, 因为被分配到委员会的机会较低。 但是,即使拥有大额质押的个人投资加密货币, 也不会拥有多数,因为加密货币的价值 超过个人的净资产。 如果加密货币等同于个人的净资产, 那么投入更高比例的质押以增加 被选为验证委员会成员的机会将是容易的, 如果用户有恶意意图,他们可以发起51% 攻击。

