原文:《The cryptoeconomics of slashing》by Sreeram Kannan、Soubhik Deb
编译:隔夜的粥
为权益证明(PoS)协议设计的机制中,没有哪一种像 Slashing (罚没)一样具有争议。罚没提供了一种方法,以有针对性的方式对不采取协议一致行动的任何特定节点进行经济惩罚。它通过拿走部分或全部验证器质押权益来实现这一点,而不会对按照协议行事的其他节点施加外部性。Slashing (罚没)是权益证明(PoS)协议所独有的,因为它需要区块链能够执行惩罚。这种强制执行在工作量证明(PoW)系统中显然是不可行的,这类似于烧掉行为不端的节点所使用的挖矿硬件。这种应用惩罚性激励的能力,在区块链机制设计中开辟了一个新的设计空间,因此值得仔细考虑。
尽管它以「业力」的形式带来了明显的好处,但对罚没的主要反对意见是,由于运行过时的软件等无心之失,节点可能会被过度罚没。因此,很多协议都避免采用 Slashing (罚没),而是依赖于所谓的代币毒性(即如果协议被成功攻击,底层代币将失去价值)。很多人认为,质押者会将这种毒性视为对损害协议安全性的威胁。在我们的评估中,代币毒性不足以阻止某些典型场景中的对抗性攻击。事实上,在这种情况下,对手攻击和破坏协议所产生的成本(称为贿赂成本)基本上为零。
在本文中,我们将展示如何将 Slashing (罚没)纳入 PoS 协议的机制设计中,从而大大增加任何对手可能招致的贿赂成本。在存在贿赂的情况下,对于去中心化协议以及不满足代币毒性假设的协议(中心化或去中心化),罚没保证了高且可衡量的贿赂成本。
可能导致贿赂以及缺乏代币毒性的情况无处不在。很多 PoS 协议通过拥有一个紧密结合的社区来避免落入这两个类别之一,这只有在规模较小时才可行。(1)通过依靠强大的领导力引导他们朝着正确的方向前进,将验证委托给一小部分知名且受法律监管的节点运营商;(2)或者依靠在一个小组内集中质押代币。这些解决方案都不能完全令人满意地发展大型和去中心化的验证节点社区。如果 PoS 协议的特点是只有几个验证者(或者,在极端情况下,只有一个验证者),那么最好有一种方法来惩罚这些大型验证者,以防他们参与敌对行为。
在本文的其余部分,我们:
- 提出一个模型来分析复杂的贿赂攻击;
- 表明没有罚没机制的 PoS 协议容易受到贿赂攻击;
- 表明带有罚没机制的 PoS 协议对贿赂攻击具有可量化的安全性;
- 以及讨论了罚没的一些缺点,并提出了缓解措施。
一、模型
在介绍罚没案例之前,我们首先需要一个模型,我们将在该模型下进行分析。目前分析 PoS 协议的两个最流行的模型(拜占庭模型和博弈论均衡模型),未能捕捉到一些最具破坏性的真实世界攻击,而罚没对这些攻击起到了强大威慑作用。在本节中,我们将讨论这些现有模型以了解它们的缺点,并提出第三个模型(我们称之为贿赂分析模型)。尽管贿赂分析模型能够模拟大量攻击,但它尚未用于分析很多协议。
现有模型
在本节中,我们将简要描述拜占庭和博弈论均衡模型以及它们的缺点。
拜占庭模型
拜占庭模型规定,至多一定比例(?)的节点可以偏离协议规定的动作并执行他们选择的任何动作,而其余节点仍然遵守协议。证明一个特定的 PoS 协议能够抵抗敌对节点可以采取的拜占庭式行动,这是一个非常重要的问题。
例如,考虑最长链的 PoS 共识协议,其中活性(liveness)优先于安全性。对最长链共识安全性的早期研究,侧重于展示针对一种特定攻击的安全性(即私密双花攻击,所有拜占庭节点私下串通构建一条替代链,然后在它比最长链更长的时候才公开它)。不过,nothing-at-stake 现象提供了一个机会,可以使用相同的质押权益来提议很多区块,并使用独立的随机性来增加构建更长私有链的可能性。直到很久以后,人们才进行了广泛的研究,以表明最长链 PoS 共识协议的某些结构可以针对某些 ? 值来抵御所有攻击。(有关更多详细信息,请参阅《Everything is a Race and Nakamoto Always Wins》以及《PoSAT: Proof-of-Work Availability and Unpredictability, Without the Work》)
整个拜占庭容错(BFT)共识协议类别,优先考虑安全性而不是活性。他们还需要假设一个拜占庭模型来证明,对于 ? 的上限,这些协议对于任何攻击都是确定性安全的。(有关更多详细信息,请参阅《HotStuff: BFT Consensus in the Lens of Blockchain》、《STREAMLET》、《Tendermint》。)
尽管拜占庭模型很有用,但它没有考虑任何经济激励因素。从行为角度来看,这些节点中的 ? 部分在本质上是完全对抗的,而 (1-?) 部分节点完全符合协议规范。相比之下,PoS 协议中的很大一部分节点可能会受到经济收益的驱动,并运行有利于自身利益的协议修改版本,而不是简单地遵守完整的协议规范。举一个突出的例子,考虑以太坊 PoS 协议的情况,今天大多数节点并没有运行默认的 PoS 协议,而是运行 MEV-Boost 修改协议,这是因为参与 MEV 拍卖市场会产生额外的奖励,而运行确切的规范协议则没有这额外的奖励。
博弈论均衡模型
博弈论均衡模型试图通过使用纳什均衡等解决方案概念,来研究当所有其他节点也遵循相同策略时,理性节点是否具有遵循给定策略的经济激励,从而解决拜占庭模型的缺点。更明确地说,假设每个人都是理性的,该模型调查两个问题:
- 如果所有其他节点都遵循协议规定的策略,那么我执行相同的协议规定策略是否会带来最大的经济利益?
- 如果每个其他节点都在执行相同的协议偏离策略,那么对我来说,仍然遵循协议规定策略是否最具激励性?
理想情况下,协议的设计应确保两个问题的答案都为「是」。
博弈论均衡模型的一个固有缺点,是它排除了外生代理可能影响节点行为的场景。例如,外部代理可以设置贿赂来激励理性节点按照其规定的策略行事。另一个限制是,它假设每个节点都有独立的机构,可以根据其意识形态或经济激励因素,自行决定采取何种策略。但这并没有涵盖一组节点勾结形成卡特尔的场景,或者规模经济鼓励创建一个基本上控制所有质押节点的中心化实体的场景。
将贿赂成本与贿赂利润分开
一些研究人员提出了贿赂分析模型来分析任何 PoS 协议的安全性,尽管没有人使用它来进行更深入的分析。 该模型首先提出两个问题:(1) 任何对手成功对协议执行安全或活性攻击所需的最低成本是多少? (2) 对手能够从成功执行协议安全或活性攻击中获得的最大利润是多少?
而问题中的对手可能是:
- 单方面偏离协议规定策略的节点;
- 一组积极相互合作以破坏协议的节点,或者
- 试图通过贿赂等外部行为影响许多节点决策的外部对手。
计算所涉及的成本,需要考虑贿赂产生的任何成本、执行拜占庭策略产生的任何经济处罚等。同样,计算利润是包罗万象的,包括通过成功攻击协议获得的协议内奖励、从位于 PoS 协议之上的 DApp 获取的任何价值,在二级市场上持有与协议相关的衍生品,并从攻击带来的波动中获利,等等。
将任何对手发起攻击的最低成本(贿赂成本)的下限与对手可以提取的最大利润(贿赂利润)的上限进行比较,表明攻击协议在经济上是有利可图的(注:该模型已用于分析 Augur 和 Kleros),这给了我们一个简单的等式:
贿赂利润–贿赂成本=总利润
如果总利润是正的,那么对手就有发动攻击的动机。在下一节中,我们将考虑如何通过罚没来增加贿赂成本,减少或消除总利润。(请注意,贿赂利润上限的一个简单示例,是 PoS 协议保护的资产总值。可以建立更复杂的界限,将限制一段时间内资产转移的断路器考虑在内。降低和限制贿赂利润方法的详细研究,超出了本文的范围。)
二、罚没(Slashing)
罚没是 PoS 协议经济惩罚一个节点或一组节点执行可证明与给定协议规范不同的策略的一种方式。 通常,要实施任何形式的罚没,每个节点必须事先承诺了一定数量的权益来作为抵押品。在深入分析罚没(Slashing)之前,我们将首先研究具有内生代币的 PoS 系统,这些代币依赖代币毒性作为罚没(Slashing)的替代方案。
我们主要关注安全违规行为的罚没机制研究,而不是活性违规。我们提出这一限制有两个原因:(1)安全违规完全可归因于一些基于 BFT 的 PoS 协议,但活性违规不可归因于任何协议,以及(2)安全违规通常比活性违规更严重,这会导致用户资金损失,而不是用户无法发布交易。
没有罚没会有什么问题?
考虑一个由 N 个理性节点(没有拜占庭或利他节点)组成的 PoS 协议。让我们假设,为了计算简单,每个节点都存入了等量的质押权益。我们首先探讨代币毒性如何无法保证显著的贿赂成本。为了在整个文档中保持一致,我们还假设所使用的 PoS 协议是一个具有 ⅓ 对手阈值的 BFT 协议。
代币毒性是不够的
一种普遍的观点是,代币毒性可以保护质押协议免受任何对其安全性的攻击。代币毒性暗示这样一个事实,即如果协议被成功攻击,那么用于在协议中质押的基础代币将失去价值,从而抑制参与节点攻击协议。考虑 1/3 质押者联手的场景:这些节点可以合作来破坏协议的安全性。但问题是这样做是否可以不受惩罚 ?
如果已存入权益的代币总估值严格取决于协议的安全性,那么任何对协议安全性的攻击,都可能将其总估值降至零。当然,在实践中,它不会直接降至零,而是下降到某个更小的值。但是为了展示代币毒性的最强大的可能案例,我们将在这里假设代币毒性完美地发挥作用。对协议的任何攻击的贿赂成本,是攻击系统的理性节点持有的代币,他们必须愿意失去所有这些价值。
我们现在分析在没有罚没的的情况下具有代币毒性的 PoS 系统中勾结和贿赂的动机。假设外部对手设置贿赂条件如下:
- 如果节点按照对手指示的策略执行但对协议的攻击不成功,则该节点从对手那里获得奖励 B1。
- 如果节点按照对手指示的策略执行并且对协议的攻击成功,则该节点从对手那里获得奖励 B2。
对于存入权益 S 的节点,我们可以得出如下收益矩阵,R 是参与 PoS 协议的奖励:
假设对手将贿赂收益设置为 B1>R 和 B2>0。在这种情况下,无论其他节点采取何种策略(主导策略),从对手处接受贿赂的回报,都高于该节点可以采取的任何其他策略。如果 1/3 的其他节点最终接受了贿赂,他们就可以攻击协议的安全性(这是因为我们假设我们使用的是 BFT 协议,其对手阈值为 ⅓)。现在,即使当前节点不收受贿赂,由于代币毒性(矩阵中右上角的单元格),代币无论如何都会失去其价值。因此,节点接受 B2 贿赂是激励相容的。如果只有一小部分节点接受贿赂,则代币不会失去价值,但节点可以从放弃奖励 R 中获益,取而代之的是获得 B1(矩阵中的左列)。如果 1/3 的节点同意接受贿赂,攻击成功,则对手支付贿赂的总成本至少为 ?/3 × B2,这就是贿赂的代价。然而,B2 的唯一条件是它必须大于零,因此,B2 可以设置为接近于零,这意味着贿赂成本可以忽略不计。 这种攻击被称为「P+ε」攻击。
总结这种影响的一种方式是,代币毒性是不够的,因为不良行为的影响是社会化的:代币毒性完全贬值代币的价值,对好节点和坏节点的影响相同。 另一方面,受贿的利益被私有化,并仅限于那些实际受贿的理性节点。 对于那些接受贿赂的人来说,没有一对一的后果,也就是说,这个系统没有“业力”的有效版本。
代币毒性是否始终有效?
生态中流行的另一个误导说法是,每个 PoS 协议都可以通过代币毒性获得一定程度的保护。但事实上,代币毒性的外生激励不能扩展到某些类别的协议,在这些协议中,用作质押面值的代币估值不取决于安全运行的协议。一个这样的例子,是像 EigenLayer 这样的重质押( re-staking )协议,其中重新使用以太坊协议使用的 ETH 来保证其他协议的经济安全。考虑使用 EigenLayer 重新质押 10% 的 ETH 以执行新侧链的验证。即使 EigenLayer 中的所有质押者都通过攻击侧链的安全而合作行为不端,ETH 的价格也不太可能下降。因此,代币毒性不可转移到重质押服务,这意味着贿赂成本为零。(推荐阅读:《新项目 | EigenLayer:通过再质押(Re-Staking)打造以太坊上的共识中枢》)
罚没有什么帮助?
在本节中,我们将在两种情况下解释罚没如何显著增加贿赂成本:
- 贿赂下的去中心化协议;
- 代币毒性不可转移的 PoS 协议。
防止贿赂
协议可以使用罚没来大幅增加尝试贿赂攻击的外部对手的腐败成本。为了更好地解释这一点,我们考虑了一个基于 BFT 的 PoS 链的示例,它需要链原生代币的质押,并且必须至少破坏总质押的 ⅓才能对其安全性进行任何成功的攻击(以双重签名的形式)。 假设外部对手能够贿赂至少 ⅓ 的总质押权益来执行双重签名。双重签名的证据可以提交给规范分叉,该分叉会罚没从对手处接受贿赂并双重签名的节点。假设每个节点质押 S 个代币并且所有被罚没的代币都被销毁,我们得到以下收益矩阵:
通过罚没,如果节点同意接受贿赂并且攻击不成功,那么它的质押权益 S 在规范分叉(矩阵左下角的单元格)中被罚没,这与之前没有罚没机制的贿赂场景形成了对比。另一方面,即使攻击成功,节点也不会失去其在规范分叉中的质押权益 S(矩阵右上角的单元格)。如果需要 ⅓ 的总权益被贿赂才能使攻击成功,则贿赂成本必须至少为 ?/3 × S,这大大高于没有罚没机制的贿赂成本。
针对代币毒性不可转移情况的保护
在一些代币估值不受协议安全性影响的 PoS 协议中,代币毒性是不可转移的。 在很多此类系统中,PoS 协议位于另一个基础协议之上。然后,基础协议通过在基础协议上部署争议解决机制来解决争议,并赋予基础协议代理权,以可证明的方式罚没与 PoS 协议相关的节点,从而与 PoS 协议共享安全性。
例如,如果 PoS 协议中的拜占庭动作在基础协议中客观地归因于敌对节点,那么它在 PoS 协议中的权益将在基础协议中被罚没。这种 PoS 协议的一个例子是 EigenLayer,它的特点是重质押(restaking),使不同的验证任务能够从以太坊基础协议中获得安全性。如果在 EigenLayer 上的验证任务中,节点重质押采用了拜占庭策略,其中拜占庭行为可以被客观地归因,那么可以证明该节点在以太坊上是敌对的,其质押权益将被罚没(无论质押有多大)。假设每个节点重质押 S, 所有被罚没的代币都被销毁,并从参与中获得奖励 R,我们构建了如下的回报矩阵:
由于我们正在考虑任何拜占庭行为都可以客观归因的验证任务,因此即使节点行为诚实但攻击成功,该节点也不会在以太坊上被罚没(矩阵中右上角的单元格)。另一方面,一个同意接受贿赂并表现出敌对行为的节点,将在以太坊上被客观地罚没(矩阵中的底部一行)。如果需要 ⅓ 的总权益被贿赂才能使攻击成功,则贿赂成本至少为 ?/3 × S。
我们还考虑了极端情况,即 PoS 协议的所有质押权益都集中在一个节点手中。这是一个重要的场景,因为它预示着权益最终会集中化。考虑到我们的假设,即对重质押的代币没有代币毒性,如果不存在罚没,中心化节点可以以拜占庭方式运行而不会受到惩罚。但有了罚没,这个拜占庭式的中心化节点可以在基础协议中受到惩罚。
归因攻击的罚没 VS 非归因攻击的罚没
对归因攻击进行罚没,与对非归因攻击进行罚没之间存在一个重要的微妙差别。考虑拜占庭容错协议中出现安全故障的情况。通常,它们源于双重签名的拜占庭行为,旨在削弱区块链的安全性——这是归因攻击的一个例子,因为我们可以查明哪些节点攻击了系统的安全性。另一方面,审查交易以削弱区块链活性的拜占庭行为,则是不可归因攻击的一个例子。在前一种情况下,通过向区块链的状态机提供双重签名的证据,可以在算法上实现罚没。
相比之下,由于无法用算法证明节点是否在主动审查,因此无法用算法来完成用于审查交易的罚没。在这种情况下,协议可能不得不依靠社会共识来执行罚没。一定比例的节点可以执行硬分叉,以指定对那些被指控参与审查的节点进行罚没。只有当社会共识出现时,这种硬分叉才会被认为是规范分叉。
我们将贿赂成本定义为执行安全攻击的最低成本。然而,我们需要 PoS 协议的一个属性,称为问责制,这意味着如果协议失去安全性,应该有一种方法将责任归咎于一小部分节点(BFT 协议的 ⅓ 节点)。事实证明,对哪些协议负责的分析是微妙的(请参阅关于 BFT 协议取证的论文)。此外,事实证明,动态可用的最长链协议(例如PoSAT)是不可问责的(有关动态可用性和问责制之间的权衡,以及解决这些基本权衡的一些方法,请参阅这篇论文。)
三、罚没的陷阱与缓解措施
与任何技术一样,如果不小心实施,罚没也会带来自身的风险:
1、客户端配置错误 / 密钥丢失。罚没的的陷阱之一是无辜的节点可能会因为非故意的错误(例如错误配置的密钥或丢失密钥)而受到不成比例的惩罚。为了解决有关因疏忽错误而过度罚没诚实节点的担忧,协议可以采用某些罚没曲线,当只有少量质押权益的行为与协议不一致时,这些罚没曲线会从轻处罚,但当在与协议冲突的策略上执行的质押权益超过阈值比例时,将予以严重处罚。比如以太坊 2.0 就采用了这种方法。
2、可信的罚没威胁作为一种轻量级的替代方案。如果一个 PoS 协议没有实现算法罚没,它可以转而依赖社会罚没威胁,也就是说,在安全故障的情况下,节点将同意指向一个硬分叉,在那里,行为不端的节点会失去资金。与算法罚没相比,这确实需要显著的社会协调,但只要社会罚没的威胁是可信的,上面提出的博弈论分析就继续适用于没有算法罚没而依赖于承诺的社会罚没的协议。
3、对活性故障的社会罚没是脆弱的。 社会罚没对于惩罚不可归因的攻击是必要的,例如像审查制这样的活性故障。 虽然理论上可以针对不可归因的故障实施社会罚没,但新加入的节点很难验证这种社会罚没是出于正确的原因(审查)还是因为该节点被错误指控而发生。 当对可归因故障使用社会罚没时,即使没有罚没的软件实现,也不存在这种歧义。 新加入的节点可以继续验证这种罚没是合法的,因为他们可以检查他们的双重签名,即使只是手动的。
四、被罚没的资金怎么办?
有两种可能的方法来处理被罚没的资金:销毁和保险。
1、销毁:处理被罚没资金的直接方法是简单地销毁它们。假设代币的总价值没有因为攻击而改变,那么每个代币的价值都会按比例增加,并且会比以前更有价值。销毁不会识别因安全故障而受到伤害的各方,并仅对其进行补偿,而是不分青红皂白地惠及所有非攻击代币持有者。
2、保险:一种尚未被研究过的更复杂的罚没资金分配机制涉及针对罚没发行的保险债券。在区块链上进行交易的客户可能会事先在区块链中获得这些保险债券,以保护自己免受潜在的安全攻击,为其数字资产提供保险。当发生危及安全的攻击时,对质押者的算法罚没会产生一笔资金,然后可以按照债券比例分配给保险者。
五、生态中的罚没现状
据我们所知,Vitalik 在 2014 年的这篇文章中首次探讨了罚没的好处。 Cosmos 生态在其 BFT 共识协议中构建了第一个有效的罚没实现,该协议在验证者不参与提议区块或对模棱两可的区块进行双重签名时强制进行罚没。
以太坊 2.0 也在其 PoS 协议中加入了罚没机制,以太坊 2.0 中的验证者可能会因为做出模棱两可的证明或提出模棱两可的区块而受到惩罚。罚没行为不端的验证者是以太坊 2.0 实现经济终结性的方式。验证者也可能由于缺少证明,或者如果它没有在应该这样做的时候提出区块而受到相对温和的惩罚。
没有罚没机制的 PoS 协议极易受到贿赂攻击。我们使用一种新模型(贿赂分析模型)来分析复杂的贿赂攻击,然后用它来说明带有罚没机制的 PoS 协议具有可量化的反贿赂安全性。虽然将罚没纳入 PoS 协议存在缺陷,但我们提出了一些可能的方法来减轻这些缺陷。我们希望 PoS 协议将使用此分析来评估罚没在某些情况下的好处——潜在地提高整个生态系统的安全性。