这篇文章详细阐述了权益证明(Proof of Stake, PoS)共识算法的原理、实现以及与工作量证明(Proof of Work, PoW)的比较。内容涵盖了PoS的优势、与拜占庭容错理论的关系、无利益在独立链问题的解决方法、经济最终性等深层次问题,结构清晰且逻辑严谨,适合有一定区块链知识的读者。
权益证明 (Proof of Stake, PoS) 是一种公有区块链的共识算法类别,依赖于验证者在网络中的经济利益。在基于工作量证明 (PoW) 的公有区块链(例如比特币和当前的以太坊实现)中,算法奖励解决加密难题的参与者以验证交易和创建新区块(即挖矿)。在基于 PoS 的公有区块链(例如以太坊即将推出的 Casper 实现)中,验证者将轮流提议和投票下一个区块,每个验证者投票的权重取决于其存款的大小(即利益)。PoS 的显著优势包括 安全性、减少中心化风险和能源效率。
通常,权益证明算法如下。区块链跟踪一组验证者,任何持有区块链基础加密货币(在以太坊的情况下为以太币)的人都可以通过发送一种特殊类型的交易,使他们的以太币锁定为存款,以成为验证者。然后,通过所有当前验证者都可以参与的共识算法,进行创建和达成新块的过程。
有很多种共识算法,参与者分配奖励的方式也有很多,因此存在多种“风味”的权益证明。从算法的角度来看,主要有两大类:基于链的权益证明和 BFT 风格的权益证明。
在 基于链的权益证明 中,算法在每个时间槽中伪随机选择一个验证者(例如,每10秒的时间槽),并赋予该验证者创建单个区块的权利,此区块必须指向某个先前的区块(通常是之前最长链末尾的区块),因此,随着时间推移,大部分区块收敛到一条不断增长的单一链中。
在 BFT 风格的权益证明 中,验证者随机获得提议区块的权利,但关于哪个区块是规范的,则通过多轮流程达成一致,在每一轮中,每个验证者为某个具体区块发送“投票”,在流程结束时,所有(诚实有效)验证者不仅对该区块是否是链的一部分达成一致。请注意,区块可能仍然是相互链结的;关键区别在于,对于一个区块的共识可以在一个区块内达成,而不依赖于其后的链的长短或大小。
请参见 权益证明设计哲学 以获取更详细的论述。
简而言之:
拜占庭容错研究中有几个重要成果适用于所有共识算法,包括传统共识算法如 PBFT、任何权益证明算法,以及通过适当的数学建模来研究的工作量证明。
关键结果包括:
d
的界限)可以,令人惊讶的是,容忍高达100%的故障,尽管针对超过或等于1/2节点发生故障时有什么事情的限制。需要注意的是,“认证的拜占庭”模型更值得考虑,而不是“拜占庭”模型;“认证”的部分本质上意味着我们可以在我们的算法中使用公钥密码学,而现代公钥密码学研究非常完备且相对便宜。工作量证明已经被 安德鲁·米勒 (Andrew Miller) 和其他人严格分析,其作为依赖于同步网络模型的算法适合于这个图景。我们可以将网络模型视为由近乎无限数量的节点信息构成,每个节点代表极小的计算能力,也有非常小的概率在给定时间内产生一个区块。在这个模型中,协议对于零网络延迟具备50%的阻容错误能力,基于实际观察条件下,['以太坊' 约46% 和 '比特币' 约49.5%的节点容忍,而当网络延迟等于区块时间时,容忍度下降至33%,并且随着网络延迟接近无穷大减至零。
权益证明共识更直接融入拜占庭容错共识的模型,因为所有验证者具有已知身份(以太坊稳定地址),而网络跟踪验证者集合的总大小。反馈研究的两个方向,一个是基于同步网络模型,另一个是基于部分异步网络模型。基于“链”的权益证明算法几乎总是依赖于同步网络模型,其安全性可以在这些模型中像工作量证明算法的安全性一样得到形式上的证明。连接传统拜占庭容错共识在部分同步网络与权益证明之间的关联研究也存在,但更复杂难以解释;将在后续部分中详细介绍。
工作量证明算法和基于链的权益证明算法选择可用性而非一致性,但BFT风格的共识算法更倾向于一致性;Tendermint明确选择一致性,而 Casper 使用一种混合模型,更偏向于可用性,但在任何给定时间点尽可能提供最大一致性保证,并使链上应用程序和客户端意识到保证的一致性强度。
请注意,Ittay Eyal 和 Emin Gun Sirer 的 自私挖矿 发现,设定了对比特币挖矿的 25% 和 33% 激励相容性的约束,具体取决于网络模型(即,只有在大规模合谋达到25%或33%时,挖矿才能激励相容),此发现与传统共识算法研究的结果毫无关系,后者并未触及激励相容性的问题。
在许多早期(所有基于链的)权益证明算法中,包括 Peercoin,仅在生成区块时有奖励,而没有惩罚。这不幸的结果是,在存在多个竞争链的情况下,验证者有动力在每条链上尝试生成区块,只是为了确保:
在工作量证明中,这样做需要将计算能力拆分开来,所以并不划算:
结果是,如果所有参与者都极度经济理性,即便没有攻击者,区块链也可能永远无法达成共识。如果有攻击者,则攻击者仅需压倒利他节点(它们将独自于原始链进行抵押),而无须压倒理性节点(其将在原始链和攻击者的链上都进行抵押),与工作量证明对抗的情况相反,后者中攻击者必须压倒既有利他者也有理性节点(或者至少具有可信威胁:见P + epsilon 攻击)。
有人争辩说,利益相关者有激励做出正确决定,并仅在最长链上抵押以“维护其投资价值”,然而这忽视了激励机制存在的 公共悲剧 问题:每个单独的利益相关者可能只有1%的机会在“关键时刻” (即, 参与攻击会促使攻击成功,不参与则失败),所以需要说服他们个人参与攻击的贿赂金额将仅仅是其存款的1%;因此,总的融资贿赂要求将是所有存款总和的0.5-1%。此外,该论点暗示任何零失败概率的情形并非稳定均衡,因为如果失败概率为零,则所有人都会面临0%的关键时刻机会。
解决方案可通过两种策略实施。第一种策略,广义的描述为“Slasher”,在此处更新,在此处由 Iddo Bentov 进一步开发 [https://arxiv.org/pdf/1406.5694.pdf],在多个链上同时创建区块的情况下,对验证者施以惩罚,方法是将误行为的证明(即两个相互冲突的签名区块头)包含到区块链中,之后该恶意验证者的存款将被适当扣除。这改变了激励结构如以下所示:
请注意,为了使该算法有效,验证者集合需要提前确定。否则如果某个验证者具备1%的利益,假设存在两个分支 A 和 B。那么 99% 的时间该验证者将只有资格在 A 上抵押,而无法在 B 上,99% 的时间则是有资格在 B 上,而不是 A,只有 1% 的时间,该验证者将有资格在两个区块上抵押。因此,该验证者能以99%的效率,以概率的方式双重抵押:如果可能则抵押于A,如果可能则抵押于B,只有当 A 和 B 的选择都同时可用时才抵押于较长链上。仅在预先选择时,验证者选择是相同的,才能避免此情况,需在分叉发生前选好验证者。
这会存在自身的缺陷,包括要求节点频繁在线以获取区块链的安全视。但这会带来中等范围的验证者合谋风险(即在某些情况下,例如,连续30个验证者中的25个一起合谋并提前达成一致进行51%攻击前19个区块),但如果这些风险被认为是可接受的,则效果很好。
第二种策略是对在错误链上生成区块的验证者进行惩罚。即,假使存在两个竞争链,A和B,那么如果一个验证者在B上生成区块,他们将在B上获得 +R 奖励,但该块头也可以被包含到 A上(在 Casper 中称之为“dunkle”)然后在A上,该验证者将受到 -F(F = R的可能性)惩罚。这将经济计算改为:
直观上理解,我们可以在权益证明下重现工作量证明的经济学。在工作量证明中,错误链上生成区块也会受到惩罚,但是这种惩罚在外部环境中是隐性的:矿工需支出额外的电力并用额外的硬件进行挖矿。而在此方案中,我们只是将惩罚明确化。该机制的缺点是对验证者略微增加了风险(尽管效果随时间平滑),而且其优势是不要求验证者提前确定。
BFT 风格(部分同步)权益证明算法允许验证者通过发送一种或多种类型的签名消息“投票”区块,并指定两种规则:
为了说明惩罚条件的不同形式,我们将给出两个示例(后续提到的“2/3 的所有验证者”是指以存款币为权重的“2/3 的所有验证者”,其他分数和百分比满类推)。在这些示例中,“PREPARE”和“COMMIT”应理解为验证者可以发送的两种消息类型。
MESSAGES
包含形式为 ["COMMIT", HASH1, view]
和 ["COMMIT", HASH2, view]
的消息,但对于同一view
,其中HASH1
与HASH2
由同一验证者签名,则该验证者将受到惩罚。MESSAGES
包含形式为 ["COMMIT", HASH, view1]
的消息,则除非 view1 = -1
或同时存在形式为 ["PREPARE", HASH, view1, view2]
的消息,其中的 view2 < view1
,并且由2/3的所有验证者签名;否则触发“COMMIT”的验证者将受到惩罚。对于适用的惩罚条件集,我们有两个重要的愿望:
HASH1
和 HASH2
(即 HASH1
和 HASH2
不同且无一为其他的后代)被最终确定,则至少2/3的所有验证者必须违反了一些惩罚条件。如果我们具备一组满足这两条属性的处罚条件,则可以激励参与者发送消息,并从经济最终性中受益。
经济最终性的理念是,一旦区块最终确定,或者更一般而言,一旦某些类型的足够数量的消息被签署,那么未来在任何时间点,正当历史中包含冲突区块的唯一方法是相当数量的人愿意烧掉非常大的资金。如果某个节点看到此条件已满足给定块,那么他们便极其有经济把握,该块将永远是所有人一致同意的正当历史的一部分。
经济最终性有两种“风味”:
这两种最终性途径源于对“没有利益风险”问题的两种解决方案:惩罚不正确与惩罚矛盾的最终性。第一种方法的主要好处是它对于轻客户端更加友好,也更易于理解,第二种方法的主要好处是:(i) 更易于看出诚实的验证者不会受到惩罚,(ii) 骚扰因素对诚实验证者更加有利。
Casper 采用第二种模型,不过有可能将添加一个链上机制,在验证者自主选择加入签署第一种形式的最终性消息,借此实现更高效的轻客户端。
传统的拜占庭容错理论假定类似的安全性和活跃性愿望,除了某些细微差别。首先,传统的拜占庭容错理论仅要求如果2/3的验证者是诚实的,那么安全性就得以保障。这是一个相对容易的模型;传统容错尝试证明“如果机制M存在安全缺陷,那么至少1/3的节点是有缺陷的”,而我们的模型尝试证明“如果机制M存在安全缺陷,那么至少1/3的节点有缺陷,而你知道哪些节点,即使在故障发生时你可能处于离线状态”。从一个活跃性的角度看,我们的模型是更容易的,因为我们不要求证明网络_必然_达成共识,我们只要求证明它不会卡壳。
幸运的是,我们可以表明额外的可追责因素不是特别困难。事实上,通过正确的“协议护甲”,我们可以将_任何_传统部分同步或异步拜占庭容错算法转换为可追责算法。这一证明基本归结为故障可以被逐一分类为少数几种类别,并且每一类别要么是可追责的(即如果你造成那类故障你能被抓住,所以可以为其制定惩罚条件),要么难以区分于延迟(注意,即使是发送消息太早的故障也与延迟无异,因为可使用全体时钟加速,并将未发送无限早的消息赋予更大延迟进行建模)。
需要注意的是,使用存款确保“有利益风险”的机制确实导致了安全模型的变化。假设存款锁定4个月,之后可以提取。假设发起了一次 51% 攻击,使得10天的交易反转。攻击者创建的区块可以简单地重新导入主链作为不端的证明(或“dunkles”),然后验证者可以受到惩罚。然而,如果此攻击发生在六个月后,那么尽管这些区块肯定可以被重新导入,但到那时,恶意验证者将在主链上能够提取其存款,因此无法被惩罚。
为了解决此问题,我们引入一种“回滚限制”的规则 - 节点必须简单拒绝比存款长度更久的时间段进行回滚(例如,在本示例中为四个月),并且我们还要求节点每个存款长度的时间间隔至少登录一次,以对链具有安全的视角。请注意,该规则与协议中的其他共识规则不同,因为它意味着节点可能根据何时看到某些消息产生不同的结论。一个节点看到特定消息的时间在不同节点之间可能会不同;因此,我们认为该规则是“主体性的”(另外,熟悉拜占庭容错理论的人可以将其视作某种同步假设)。
然而,这里的“主体性”非常弱:节点要想上“错误”链,则必须在接收到原始消息的情况下延迟到四个月后。这只有在两种情况下发生可能:
我们可以通过使用户自行负责的方式处理(1) ,以非链式环境认证最新状态。用户可以通过询问朋友、块流量、与之互动的商家等方式获取符合其认知的链中的最近块哈希。在实践中,此类块哈希可能不过是作为他们用于验证该区块链软件的一部分而提供的;能够污染软件中检查点的攻击者同样可以轻易地去污染该软件,而任何纯加密经济的验证方法都无法解决这个问题。尽管(2) 确实为节点增添了额外的安全要求,但是请再度注意硬分叉和安全漏洞的可能性,及时了解它们需安装任何所需的软件更新,这在工作量证明中也是存在的。
需要注意的是,这一问题仅在较为有限的情况下发生:即从某个时间点起的大多数先前利益相关者合谋攻击网络创建替代链;大多数时候,我们期望只有一个规范链可供选择。
一种方法是将其纳入自然用户工作流程:类似于 BIP 70 的支付请求可以包括最近的块哈希,用户的客户端软件将确保在批准付款(或者任何链上交互)之前到达与供应商的相同链。另一种方法是采用杰夫·科尔曼的通用哈希时间。如果使用UHT,则需要秘密生成的成功攻击链必需与合法链同时生成,需要大多数验证者秘而不宣进行共谋。
与回滚不同,审查更为复杂难以证明。区块链本身无法直接区分“用户A尝试发送交易 X 但却被不公平审查”、“用户 A 尝试发送交易 X,但因为交易费用不足而未被处理”以及“用户 A 从未尝试发送交易 X”。参见 关于数据可用性和纠删码的说明。然而,有几种技术可以用于缓解审查问题。
第一个是通过停顿问题抵抗审查。在这种方案的弱版本中,协议设计为具备图灵完备性,使得验证者无法判断给定交易是否会导致不良行为,而不需通过大量处理能力执行该交易,因此对其开放拒绝服务攻击。这正是 阻止 DAO 降级分叉 的原因。
在方案的强版本中,交易可能在不久的未来生成保证效果。因此,用户可以发送多个相互作用的交易,与预计的第三方信息一起触发某个未来事件,但验证者无法判断将会如何进行,直到交易被包含(并且经济最终化),再也为时已晚;即便所有未来交易均被排除,验证者希望阻止的事件仍会发生。请注意,在此方案中,验证者仍然可能试图阻止所有交易,或者干脆阻止所有未附带PROOF补充说明的交易,但这将涉及到禁止非常广泛的交易类,直到完全破坏整个系统,这将导致验证者失去价值,因为以其存款计算的加密货币可能会贬值。
第二种策略是出于 亚当·巴克 而描述此交易需 时间锁加密 (https://www.gwern.net/Self-decrypting%20files)。因此,验证者会包含这些交易而未知内容,而稍后这些内容将自动揭示,这时又为时已晚。尽管如果验证者非常恶意,他们可能仅同意包含带有明文证明(例如 ZK-SNARK)已被解密内容的交易;这会迫使用户下载新客户端软件,但对手可能方便地提供这种客户端软件以供下载,而在博弈论模型中,用户会有激励进行配合。
在权益证明背景下,可以说用户还可以安装包含硬分叉的系统更新,以删除恶意验证者。这并不比安装软件更新来使其交易“审查友好”难。因此,总之该方案也具有中等效果,尽管确实减缓了与区块链的交互节奏(请注意,方案必须强制执行才有效;否则恶意验证者将更容易简化地过滤加密交易而不干预更快速的明文交易)。
第三种选择是将审查检测嵌入到分叉选择规则中。思想很简单。节点监控网络中的交易,如果看到在内容中包含某次有效交易的可预期费用时间较长,则将较低的“得分”指派给不包含该交易的区块链。如果所有节点遵循这一策略,最终相对少的主链会自动形成,这包括了交易,并且所有诚实在线节点会选择此链。此类方案的主要弱点是离线节点仍将跟随主流分支。如果审查是临时的,并且一旦解除其审查便重新上线,则可能会与在线节点结束在不同的分支上。因此,该机制应更多作为促进紧急自动协调的工具,而不是在日常分叉选择中起到积极的作用。
在任何基于链的权益证明算法中,必须有某种机制随机选择在当前活动验证者集中,谁可以创建下一个区块。例如,如果当前活动验证者集中包含 Alice 40 个以太币、Bob 30 个以太币、Charlie 20 个以太币和David 10 个以太币,你会希望 Alice 成为下一个区块创建者的概率约为 40%、Bob 30% 等(在实践中,你希望随机选择的不只一个验证者,而是一个无限序列的验证者,使得如果 Alice 不出现则在一定时间后会有人替代她,但这并不改变基本问题)。在非链算法中,随机性也常必要,但原因不同。
“利益操控”是一类攻击,其中验证者执行某些计算或采取其他措施以试图将随机性向有利于其自身的方向倾斜。例如:
和 (2) 易于解决;一般方法是要求验证者提前存款他们的币,并且不使用容易操控的信息作为随机性的源数据。解决(3) 的主要策略之一是使用基于秘密共享或确定性分布式签名方案,并让验证者共同生成该随机值。这些方案对于所有操控都很健壮,除非大多数验证者合谋(在某些情况下,根据实现的不同,上限在33%-50%的验证者均可干扰协议操作,导致协议具有67%的活跃性假定)。第二个方法是使用加密经济方案,验证者需要提前提交信息(即发布 sha3(x)
),然后必须在区块中发布 x
;x
然后被加入到随机性池中。对此存在两个理论攻击向量:
在承诺时间操纵 x
。这不切实际,因为随机性结果将考虑多个参与者的值,如果其中有一个参与者是诚实的,那么输出将是均匀分布。一个均匀分布与任意多个任意偏见分布的异或运算仍然给出一个均匀分布。
选择性地避免发布区块。然而,这种攻击的机会成本是一个区块奖励,由于该方案防止任何人看到除下一个验证者之外的未来验证者,这几乎从来不会提供超过一个区块奖励的收入。唯一的例外是这样一种情况:如果一个验证者跳过了,下一个排队的验证者和该验证者的第一个子验证者将都是同一个验证者;如果这些情况是严重的问题,我们可以通过明确的跳过惩罚进一步惩罚跳过行为。
第三种方法是使用 Iddo Bentov 的“多数信标”,该方法通过获取之前 N 个随机数(通过某个其他信标生成)中的比特多数来产生一个随机数(即,如果源数中大多数第一个比特是 1,则结果的第一位是 1,否则为 0;结果的第二位是 1 如果源数中的大多数第二个位是 1,否则为 0,以此类推)。这提供了 ~C * sqrt(N)
的利用成本,其中 C
是基础信标的利用成本。因此,总体来说,存在许多已知的解决方案来解决权益打磨问题;这个问题更像是 差分密码分析,而不是 停顿问题 - 这是一个麻烦的事情,权益证明设计者最终理解并现在知道如何克服,不是一种根本性的不可避免的缺陷。
有四种基本类型的 51% 攻击:
在第一种情况下,用户可以进行社交协调以达成共识,确定哪个最终确定的区块先到,并偏向于该区块。第二种情况可以通过 欺诈证明和数据可用性证明 解决。第三种情况可以通过对权益证明算法的修改来解决,即如果不参与共识,则逐渐减少(“泄露”)不参与节点在验证者集中的权重;Casper FFG 论文 包含了这个的描述。
第四种情况是最困难的。可以通过“少数软分叉”来恢复这一点,其中一小部分诚实的验证者同意大多数正在对他们进行审查,并停止在他们的链上构建。相反,他们继续自己的链,最终上面描述的“泄露”机制确保这个诚实的少数在新链上成为 2/3 的超级多数。此时,市场预计将偏向于由诚实节点控制的链,而不是由不诚实节点控制的链。
对 Casper 的攻击成本极高;正如下文所示,对 Casper 的攻击成本与在工作量证明链中购买足够的算力以无限次进行 51% 攻击的成本相当,因此,以上描述的恢复技术只能在极端情况下使用;事实上,工作量证明的支持者通常也表示愿意在类似情况下进行社交协调,比如 更改工作量证明算法。因此,权益证明中对社交协调的需求是否比工作量证明中的需求更大尚不清楚。
事实上,我们预计所需的社交协调量接近于零,因为攻击者会意识到,花费如此巨额的资金仅仅是为了让一个区块链离线一两天并不在他们的利益之中。
这是许多人提出的一个观点,或许可以通过 Paul Sztorc 在这篇文章中 进行最好的解释。基本上,如果你创造了一种方式让人们挣钱 100 美元,那么人们愿意花费最多 99.9 美元(包括他们自己劳动的成本)来获得这笔钱;边际成本接近边际收益。因此,这个理论认为,任何具有给定区块奖励的算法在试图获取奖励所进行的社会无效活动的数量上都是同样“浪费”的。
对此有三个缺陷:
M + S * sqrt(2 * log(N))
其中 M
是均值,S
是标准差。因此,进行额外试验(即增加 N)的奖励会急剧下降,例如,在 0 次重试时你的预期奖励是 100 美元,重试一次是 105.5,美金,重试两次是 108.5 美金,重试三次是 110.3 美金,重试四次是 111.6 美金,重试五次是 112.6 美金,重试六次是 113.5 美金。因此,在进行了五次重试之后,就不值得了。结果,一个经济激励的攻击者将花费 5 美元以获得 13 美元额外收益,尽管总收入是 113 美元。如果可利用机制只暴露出小机会,则经济损失将很小;显然,一个单独的可利用性下降并不会导致整个 PoW 级别的经济浪费大量涌回。这个观点在我们下面关于资本锁定成本的讨论中也将非常相关。将 X 以太锁定在存款中并不免费;这会牺牲以太持有者的选择权。现在,如果我有 1000 以太,我可以随心所欲地使用它;如果我将其锁定在存款中,那么它将被困在那里几个月,我也将失去例如支付突发意外费用的资金保险效用。我还会在这一时间范围内失去某些改变我的代币配置离开以太的自由;我可以通过在交易所做空等于存款的以太来模拟出售以太,但这本身就带来了包括交易所费用和支付利息的成本。一些人可能会争辩:难道这种资本锁定低效不是另一种高度间接的方式来实现与工作量证明中存在的完全相同程度的经济低效?答案是否定的,因为上面提到的两个原因和第三个原因。
让我们首先从(3)开始。考虑一个模型,其中权益证明存款是无限期的、ASIC 永久有效、ASIC 技术是固定的(即没有摩尔定律)且电力成本为零。假设均衡利率为 5% 每年。在工作量证明区块链中,我可以拿 1000 美元,把它换成一个矿工,而该矿工将永远支付我每年 50 美元的奖励。在权益证明区块链中,我会买 1000 美元的代币,将它们存放(即永远失去),并每年获得 50 美元的奖励。到这里为止,情况看起来完全对称(技术上,即使在权益证明的情况下,我对代币的销毁也并不是完全社会性的,因为这使得其他人的代币更有价值,但我们可以暂时不讨论这一点)。“马济诺线”51% 攻击的成本(即购买超过剩余网络的硬件)在这两种情况下都增加了 1000 美元。
现在,让我们逐步对我们的模型进行以下更改:
上述包含了大量的简化建模,然而它证明了多个因素是如何显著支持 PoS 的方式,使 PoS 在安全性方面的收益更大。关于为什么这个 或许看起来可疑的多因素论证 强烈倾斜于 PoS 的元论证很简单:在 PoW 中,我们直接与物理定律打交道。在 PoS 中,我们可以设计协议,使其具有我们想要的确切属性——简而言之,我们可以 优化物理定律以对我们有利。给我们 (3) 的“隐藏门”的变化是安全模型的改变,特别是引入弱主观性。
现在,我们可以谈谈边际/总成本的区别。在资本锁定成本的情况下,这一点非常重要。例如,考虑一个你拥有 100,000 美元以太的情况。你可能打算长时间持有其大部分;因此,锁定即使 50,000 美元以太也应该是几乎免费的。锁定 80,000 美元会稍微不方便,但 20,000 美元的活动空间仍然给你留了较大的余地。锁定 90,000 美元则更麻烦,锁定 99,000 美元则非常麻烦,锁定所有 100,000 美元则是荒谬的,因为这意味着你甚至没有一毫克以太用于支付基本交易费用。因此,你的边际成本迅速增加。我们可以展示这种情况与工作量证明中的情况的不同,如下所示:
因此,权益证明的 总 成本可能远低于系统中再存入 1 以太的边际成本乘以当前存入的以太数量。
请注意,论点的这一部分不幸无法完全转换为“安全发行水平的减少”。这对我们有帮助,因为它表明即使在我们将发行量保持在非常低的水平下,我们仍然可以获得大量的权益证明参与,但这也意味着大部分收益将由验证者作为经济剩余享有。
从中心化的角度来看,在 比特币 和 以太坊 中,协调 51% 攻击大约需要三个矿池(比特币中需要 4 个,以太坊在撰写本文时需要 3 个)。在 PoS 中,如果假设 30% 的参与率包括所有交易所,那么 三个交易所 就足以发动 51% 攻击;如果参与率上升到 40%,那么所需的数量增加到 8。然而,交易所无法使用它们所有的以太进行参与;原因是它们需要容纳提款。
此外,PoS 中的池化是不被鼓励的,因为它具有更高的信任要求 - 一个权益证明池可以假装被黑客攻击,摧毁其参与者的存款并声称获得奖励。另一方面,能够在不自己运行节点的情况下赚取利息,即使需要信任,这也是许多人可能觉得有吸引力的;总体而言,中心化的平衡是一个经验问题,直到系统实际运行一段时间之后才会有不清楚的答案。随着分片,我们预计池化激励进一步减少,因为 (i) 关于方差的担忧更少,以及 (ii) 在分片模型中,交易验证负载与一个投资的资本数量成正比,因此从池化中没有直接的基础设施节省。
最后一点是,在权益证明中,中心化的危害性低于工作量证明,因为从成功的 51% 攻击中恢复的成本更低;不需要切换到新的挖矿算法。
Vlad Zamfir 建议的一种策略是只部分摧毁受到削减的验证者的存款,将摧毁的百分比设定为与最近受到削减的其他验证者的百分比成比例。这确保在实际攻击发生时,验证者失去他们所有的存款,但在一次性错误情况下只有一小部分存款会被摧毁。这使得低安全性质押策略成为可能,并且特别激励验证者使他们的错误尽可能不相关(或者理想情况下,反相关)于其他验证者;这涉及到不在最大的矿池中,将自己的节点放在最大的虚拟私人服务器提供商上,甚至使用次要的软件实现,所有这些都增加了去中心化的程度。
通常是可以的;任何权益证明算法都可以用作私有/联盟链设置中的共识算法。唯一的变化是,验证者集的选择方式将不同:它将首先作为一组所有人都认可的受信任用户,然后由验证者集投票决定新增验证者。
对用户可以质押任何货币或多种货币的权益证明协议非常感兴趣。然而,这些设计不幸引入了经济挑战,这将使得它们带来的麻烦远远超过任何潜在的好处。关键问题包括:
https://github.com/ethereum/wiki/wiki/Casper-Proof-of-Stake-compendium
- 原文链接: vitalik.eth.limo/general...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!