新消息:Helius 收购 Light Protocol
罚没机制横幅
博客/研究

将罚没机制引入 Solana

研究员X 上的 Lostin
阅读需 21 分钟

衷心感谢 0xIchigo 和 Ashwin Sekar 审阅本文的早期版本。

简介

罚没是一种网络安全执行机制,通过惩罚恶意或疏忽的验证者行为来保障网络安全。一旦违规行为得到确认,与违规验证者相关的部分委托质押将被销毁。

这是 Solana 等权益证明(PoS)网络的一项独特功能,在工作量证明(PoW)中没有对应机制,因为它依赖协议销毁质押资产,从而直接执行经济处罚的能力。PoW 没有类似机制,因为区块链无法没收或销毁不诚实参与者的实体挖矿硬件。

罚没机制具有以下几项主要优势:

  • 直接从经济上遏制恶意活动
  • 激励质押者将质押分散到信誉良好的验证者,从而改善去中心化程度
  • 激励大型运营商构建异构基础设施,降低共同故障风险(例如,将质押分配到 Firedancer 和 Agave 客户端)
  • 为验证者提供另一项差异化和声誉积累指标,即避免罚没违规并发现其他参与者的恶意活动。

我的看法是,罚没是大棒,通胀是胡萝卜,两者都应当促进去中心化。

Anatoly Yakovenko
Anatoly Yakovenko
Solana 联合创始人

纵观历史,Solana 一直依赖由社区推动的人工共识方法,即社会罚没。在这种模式下,如果验证者存在恶意行为,例如破坏网络活性或安全性,诚实参与者可以在链下协调发起硬分叉,重启网络并罚没违规者的质押。尽管这种方法支持按具体情况灵活判断,但协调成本很高,并且本质上是一种事后响应。

截至目前,Solana 尚未罚没过任何验证者。Solana 最接近罚没的一次事件发生在 2020 年 5 月,即主网上线两个月后。当时,社区对未披露的做市商代币借贷提出质疑,Solana Foundation 自愿从自己的代币分配中销毁了 1136 万枚 SOL。这使代币总供应量减少 2.3%,从 5 亿枚降至 4.8864 亿枚 SOL。虽然这并非正式的罚没事件,但此次销毁相当于一种自我惩罚,旨在恢复信任,并解决早期社区提出的透明度问题。

多年来,不断有人呼吁 Solana 采用更正式的罚没机制。该机制通常被称为程序化罚没,通过内置程序直接在链上执行。在这一体系下,如果验证者违反特定协议规则,系统便可生成违规行为的密码学证明并将其提交给专用程序,随后自动触发罚没。这种模式减少了对人工协调的依赖,并能在不中断网络运行的情况下处理轻微违规,为可扩展、去中心化的问责机制铺平道路。

即将激活的功能门控 SIMD-0204:可罚没事件验证,标志着 Solana 朝着在主网上实现正式程序化罚没迈出了第一个重大且切实的步伐。正如本报告后文将讨论的那样,区块链网络中的程序化罚没事件所幸十分罕见,处罚通常也较轻。然而,即使只是存在验证者质押被协议自动销毁的可能性,也会带来所有利益相关方都必须谨慎权衡的新风险。关于 Solana 执行程序化罚没的最佳方式,仍有许多悬而未决的问题。与所有经济机制变更一样,罚没相关参数和处罚需要经过社区充分讨论,并最终通过正式治理投票批准。

罚没相关 SIMD

有多个 SIMD 与 Solana 程序化罚没的推出有关,最初的两个 SIMD-180 和 SIMD-204 计划在未来几个月内于主网上线。

首先是必要的前置提案 SIMD-0180:使用投票账户地址作为领导者调度表的键。该 SIMD 将领导者调度表所使用的键从验证者身份地址改为其投票账户地址。这一变更对于准确确定罚没归属至关重要,因为它在验证者的区块生产职责与其委托质押之间建立了直接且明确的关联。

SIMD-0204:可罚没事件验证提出了一项新的罚没程序。它引入了一种链上机制,允许任何人提交并记录可罚没行为的证据,从而创建可验证且不可篡改的验证者违规记录。

最后,SIMD-0212:罚没概述了在 Solana 协议中实现罚没的方式。它基于 SIMD-0204 奠定的基础,对已确认的违规行为施加处罚。该提案仍处于开放和积极讨论阶段。

故障检测与归属判定

罚没程序被设计为纯观察层。它不会修改质押或奖励;唯一功能是验证并记录违规行为。一个早期原型已在测试网上线,示例提交(如 DuplicateBlockProof 交易)展示了如何记录违规行为。

重复区块生产

在初始推出阶段,该程序将重点处理一种恶意行为:检测重复区块生产。当领导者为同一 slot 提交两个或更多不同版本的区块时,就会发生这种情况。这是一种明确且客观的共识违规行为。 

此前在 2022 年 9 月,一名验证者错误地在同一区块高度生成重复区块,导致网络中断。原因是该验证者的主节点和备用节点同时进入活跃状态,它们使用相同的节点身份,却提出了不同的区块。

此问题此后已经修复。如今,即使运营商运行热备节点,验证者客户端也内置了保护机制,一旦检测到多个实例便会关闭。因此,如果不对验证者软件进行蓄意的恶意修改,生成重复区块的可能性极低。

重复区块生产是一种难以实时检测、但事后验证非常直接的协议违规行为。若尝试协调同步响应,让网络暂停以确认大家共同观察到重复区块,将引入显著的复杂性。相比之下,事后进行检测和罚没要实用得多。

针对重复区块提交的证明包括同一 slot 的两个冲突 shred,且均由同一验证者签名。罚没程序通过以下方式验证证明:确保这些 shred 构成有效的重复区块证明,确认它们属于同一 slot,并由违规验证者正确签名。这一逻辑与 Solana gossip 协议在分叉选择过程中处理重复区块证明的方法一致。

代码
struct DuplicateBlockProofData {
  shred1_length: u32      // Unaligned four-byte little-endian unsigned integer,
  shred1: &[u8]           // `shred1_length` bytes representing a shred,
  shred2_length: u32      // Unaligned four-byte little-endian unsigned integer,
  shred2: &[u8]           // `shred2_length` bytes representing a shred,
}

报告者构建证明并将其存储在链上缓冲区账户中,然后向地址为 `S1ashing11111111111111111111111111111111111` 的罚没程序提交交易,并引用其缓冲区账户。证明成功验证后,结果会存储在罚没程序拥有的 `report_account` 程序派生地址(PDA)中,以供未来查询。只需对罚没程序运行 getProgramAccounts 调用,即可轻松构建展示罚没相关数据的仪表盘。验证者可以通过这些仪表盘检查自己是否因违规而遭到举报,并根据需要采取纠正措施。

预计 Anza 将发布工具,用于观察这些事件、创建证明并将证明提交到链上。届时可能会有多个实现,包括嵌入验证者软件的版本。每个唯一的违规者与 slot 组合只能举报一次,因此只需一名诚实参与者在一个 epoch 内举报违规行为即可。程序会验证是否已存在针对相同 slot 和违规者的报告。如果发现匹配报告,新的提交将被拒绝。违规发生后最多一个 epoch 内均可提交报告,时间以违规发生的 slot 为准(即最晚可在 432,000 个 slot 后提交,由 `Clock` sysvar 追踪)。

举报者奖励

罚没机制设计中的一个常见问题是,是否应奖励举报违规行为的人(即举报者)。虽然奖励举报者看似是一种直接的激励机制,但也会带来明显挑战。

在 Solana 上,领导者控制交易是否被纳入区块,因此举报奖励会带来抢跑风险。假设验证者向当前区块领导者提交有效的罚没证明,领导者只需复制该证明、以自己的名义提交,并审查原始交易,就能在未付出劳动的情况下领取奖励。这会破坏激励模型,并为滥用行为打开大门。

Ethereum 提供少量举报者奖励,即被罚没验证者有效余额的 1/512。对于有效余额达到上限 32 ETH 的验证者,这相当于 0.0625 ETH。奖励以新铸造的 ETH 支付,但会被从遭罚没验证者质押中销毁的更多金额抵消。奖励价值较低是有意为之,目的是促进诚信与诚实参与,而不是鼓励利益驱动的投机行为。

投票违规

未来版本的罚没程序预计将扩展支持多种投票违规,例如锁定违规和切换证明违规。

如果验证者在等待其 tower 锁定到期所需的适当时间之前,对两个不同分叉投票,就会构成锁定违规。在 Solana 当前的共识算法 TowerBFT 下,一旦验证者在某个 slot 对特定分叉投票,就会在一段时间内被“锁定”,无法对竞争分叉投票。如果该验证者之后在锁定期结束前为另一个分叉投票,就违反了锁定规则。

由 Solana 联合创始人 Michael Vines 开发的 Votalizer 机器人目前运行在 Solana Tech Discord 中,追踪整个网络内发生的锁定违规。实际上,验证者很少会无意中出现此类违规,因为这通常需要刻意修改验证者客户端。内置保护机制会确保客户端获取其最近的链上投票,并阻止可能导致锁定违规的操作。

尽管罚没 SIMD 和早期文档明确将锁定违规列为罚没程序可能处理的一类投票违规,但计划中的 Alpenglow 共识更新将移除 Tower BFT,从而消除锁定概念。因此,投票违规预计只会在 Alpenglow 上线后引入。

罚没程序可以设计为检测较新的 Alpenglow 投票违规,其中可能包括为同一 slot 提交冲突投票,例如同时投出 `NotarVote` 和 `SkipVote`。

未来的违规类型

程序化罚没必须与可验证且明确无歧义的违规行为相关联。遗憾的是,这使得故意缓慢生产区块或有害的 MEV 提取方式等更主观或系统性的问题更难处理。

在其他同类区块链网络中,通常会触发罚没的行为因协议而异。常见示例包括:

  • 双重签名:在同一高度或 slot 生成两个冲突区块。
  • 停机:离线并无法参与共识。
  • 包围投票:投出与先前投票冲突的票,试图操纵或破坏网络稳定性。

去年,Helius 的 0xIchigo 提出了一项新颖的罚没提案,建议处罚超级多数中未参与正式治理投票的验证者,以激励更多参与。虽然这种方法满足客观可验证的要求,但多位评论者提出了担忧。一些人指出,法律限制可能阻止某些验证者投票。另一些人则认为,罚没应严格限定于直接威胁网络安全性或完整性的行为。

处罚执行

当 Solana 建立可靠的链上机制来举报和验证可罚没违规行为后,下一个重点就是在经济层面执行罚没,为不同类型的违规行为定义精确的参数和处罚公式。

相关准则仍在积极讨论中,本节内容反映的是当前提案,旨在提供信息、促进对话,并根据社区反馈持续演进。由于这些决策会直接影响 Solana 验证者的运营经济性,任何变更都将经过公开的社区辩论,并且必须通过正式治理流程批准。

在确定罚没处罚时,一项关键原则是避免对罕见的一次性运营失误惩罚过重。理想情况下,对于不影响共识的轻微事件,处罚体系应在适当保障措施下提供一定容错空间,而不是严厉惩罚无心之失。

目前为这一缓冲机制考虑的界线是中本聪系数(NC)线,其设定为超级少数中最小验证者的质押水平(即约占总质押的 1%)。 

根据拟议函数,它会确定每个投票账户下每笔委托的罚没金额。如果违规质押总量低于 NC 线,则不罚没任何质押。相反,如果共识面临风险,即超过总质押三分之一的质押涉及违规,协议就应果断响应,罚没 100% 的违规质押。

对于介于这两个极端之间的情况,当前提案引入了一种增长缓慢的二次处罚函数。用于计算每个投票账户罚没质押比例的公式如下:

slash⁡(v)=(3max⁡(0,TSS−NCline)TS)2\operatorname{slash}(v) = \left(\dfrac{3\max(0, TSS - NC_{line})}{TS}\right)^2

v = 可罚没的投票账户

TSS = 可罚没质押总量

TS = 总质押量

NC line = 中本聪系数线

根据该公式,可按以下方式计算从违规验证者处罚没的质押比例:

  • 当 4.66% 的质押违规时,罚没 1.2%(即 (3 * (0.0466 - 0.01) / 1)²)
  • 当 10% 的质押违规时,罚没 7.3%(即 (3 * (0.1 - 0.01) / 1)²)

下图展示了拟议曲线以及两个替代方案(激进型和线性)。

可罚没质押总量(TSS)根据违规类型的权重计算。投票违规的严重程度较低,处罚权重为 1。重复区块违规被视为更加严重,权重为 10。

当前拟议的二次相关性罚没处罚有一项关键优势:它会激励运行多个验证者的主体(例如交易所或质押即服务提供商)维护高质量且相互独立的基础设施,尽量降低大范围相关故障的风险。

传统罚没的替代方案

罚没委托质押会引出有关公平性和问责制的重要问题。在当前质押模型中,大多数非私有验证者的绝大部分乃至全部质押都来自委托。这意味着发生罚没时,承担主要处罚的通常是委托者,而不是实施违规行为的验证者运营商。即使是谨慎选择信誉良好验证者的质押者,如果验证者存在恶意行为或错误配置节点,也可能在自身没有过错的情况下遭到罚没。

为解决这种失衡,社区提出了几种替代罚没设计。其中一种方法是要求所有验证者维持最低自有质押。这可以确保运营商承担实际风险,无法将罚没的全部成本转嫁给委托者。更严格的版本是只罚没自有质押,同时自动解除与遭罚没验证者相关的所有委托者质押。委托者会损失奖励,但仍可保留本金,从而将质押重新分配给其他验证者,并将长期影响降至最低。

另一种方法是在规定期限内冻结账户,使其无法赚取奖励、更改所有权或提取资金。冻结期限会随违规严重程度增加。协议也可以罚没未来奖励,在不触及质押本金的情况下,在指定期限内减少验证者及其委托者的收益。

有人提议不要销毁被罚没的质押,而是将其重新分配给诚实验证者,以此作为正向激励。不过,销毁 SOL 实际上可以实现类似结果,因为它会减少总供应量,从而提高每位持有者在网络所有权中的相对份额。

注意事项

在 Solana 引入罚没会产生多项重要影响。本节将探讨两个关键领域:冷却期,以及由此给生态参与者带来的风险、保险和运营负担。

冷却期

当前质押模型存在一个关键漏洞:验证者实施可罚没行为后,可能在违规被观察和举报前解除质押。如果没有延迟提取的机制,恶意参与者可能利用这一时间差逃避处罚。

可以设置冷却期,让质押在停用后仍可被罚没,从而缓解这一问题。冷却期必须超过验证者或外部观察者检测违规并协调罚没响应所需的最坏情况时间,尤其是在网络级 DDoS 攻击或恶意验证者串通等对抗条件下。实际上,这意味着冷却期应持续数天。

Solana 对预计算质押快照的依赖加剧了这一问题。多个关键协议组件(包括领导者调度表和分叉选择规则)依赖预先计算的质押值。因此,已停用乃至已完全提取的质押仍可能影响共识。

例如,领导者调度表基于前一个 epoch 边界提前一个 epoch 获取的质押快照生成。这会产生一个时间窗口:验证者可能已在上一个 epoch 停用质押,并在当前 epoch 开始时提取质押,随后再实施可罚没行为。当违规行为被发现时,已经没有活跃质押可供处罚。

一种解决方案是引入额外的冷却期,在此期间质押仍可被罚没,但不再计入协议的质押权重。质押者在 epoch N 停用质押,但只能在 epoch N+3 开始时提取。虽然这能提高安全性,但这种延迟会迫使质押者额外等待 ~2-4 天才能完全提取质押,导致糟糕的用户体验。一种应对方法是缩短 epoch,使解除质押的实际等待时间与当前标准相近。但对 epoch 时长的任何缩减都可能产生难以预见的协议影响,因此需要谨慎评估。

风险、保险与运营负担

在 Solana 引入罚没会影响广泛的生态参与者,尤其是托管、管理质押 SOL,或基于质押 SOL 构建金融产品的主体。即使只是存在罚没的可能性,也会带来财务风险、运营复杂性和声誉方面的担忧,对于受信义义务或监管约束的机构尤其如此。可以通过保险或保证金等保障措施应对这些风险。

可能受到影响的利益相关方包括:

  • 流动性质押协议
  • 质押池
  • 托管质押提供商
  • 再质押协议
  • DeFi 协议
  • 质押 ETF

对于其中一些实体,罚没事件可能引发连锁后果。例如,流动性质押代币(LST)的价值基于底层验证者能够安全运行这一假设。如果验证者遭到罚没,其 LST 可能大幅重新定价;在极端情况下,如果市场对底层 SOL 所质押的验证者失去信心,LST 甚至可能脱锚。如果该 LST 被用作借贷协议的抵押品,还可能触发清算。

其他生态系统中的质押提供商通常会提供罚没保险来缓解这些风险。例如,在 Ethereum 上,许多提供商提供价格合理的保障来防范罚没损失,保障水平因保险方案而异。

罚没风险还会给质押价值链带来新的运营责任。受影响的主体包括:

  • 质押服务运营商,现在必须监控验证者行为并主动降低风险
  • 托管平台和加密货币交易所,它们依赖第三方运营商,可能需要审核并分散其验证者集合
  • 机构资产管理公司,它们可能会寻求自身损失保障,以防范外部运营商造成的罚没相关损失

与同类网络的比较

本节将研究 Ethereum 和 Cosmos 等同类权益证明网络如何实施罚没。这些网络多年来一直执行程序化罚没,提供了宝贵的真实数据,可用于分析罚没事件的频率及其对网络安全和验证者行为的影响。

Ethereum

Ethereum 的权益证明协议于 2020 年 12 月随信标链一同推出,从第一天起便将罚没作为核心执行机制。Ethereum 定义了四种具体的可罚没行为,全部与一稿多投有关:

  • 为同一 slot 提出多个区块
  • 为同一目标检查点提交冲突的认证
  • 使用相同的源检查点和目标检查点,对不同的头部区块进行认证
  • 创建两个认证,其中一个在源投票和目标投票范围上“包围”另一个

这些违规行为采用相同的处罚结构。验证者遭到罚没时,会立即扣除其有效余额的 1/32。由于有效余额上限为 32 ETH,因此处罚上限为 1 ETH。随后,验证者会被强制移出活跃集合,并进入约 36 天的退出队列。

在此期间,验证者处于非活跃状态且无法提取资金。它还会持续损失原本在活跃状态下可以获得的奖励,实际承担稳定的机会成本。18 天后,系统还会施加额外的相关性处罚,其规模会随 36 天窗口内遭罚没的验证者数量按比例增加。如果只有少数验证者遭罚没,处罚很轻。但如果发生大规模罚没事件,无论原因是协调作恶还是共享基础设施故障,处罚都会大幅增加;在最坏情况下,验证者可能损失几乎全部质押余额。

尽管罚没机制在 Ethereum 协议中处于核心地位,但实际发生的情况极为罕见。截至 2025 年 5 月,仅有 484 名验证者在 131 起事件中遭到罚没,不到验证者总数的 0.05%。这些事件通常源于影响多个验证者的单一错误,并且往往由运营失误或软件缺陷造成,而非出于恶意。

最大规模的罚没事件发生在 2023 年 11 月,当时 Bitcoin Suisse 有 100 名验证者因与不活跃相关的违规行为遭到罚没,每名验证者损失 1 ETH。

截至目前,Ethereum 上没有任何罚没事件威胁到协议的整体完整性。这表明,尽管罚没是一项重要的威慑机制,但实际执行并不频繁,而且验证者生态基本已经内化了避免这些处罚所需的行为规范。

Cosmos

Cosmos 和基于 Cosmos SDK 的链(例如 Cosmos Hub)将罚没作为内置安全机制,主要针对两类故障:双重签名和长时间停机。这些罚没规则用于同时保障协议的安全性和活性。

如果验证者在同一高度为两个不同区块签名,将立即受到处罚。任何参与者都可以在链上提交违规证据。证据通过验证后,系统会自动罚没该验证者 5% 的质押代币,并将其置于墓碑状态。这意味着它将被永久移出活跃验证者集合,且无法重新加入。进入墓碑状态后,验证者及其委托者都必须等待解绑期结束,才能重新委托质押。虽然进入墓碑状态的验证者运营商可以使用新密钥重新启动,但必须从零开始重建声誉和委托。

Cosmos 还通过对长时间停机自动执行罚没来保障活性。如果验证者在最近 10,000 个区块中的签名比例低于 5%,就会被视为不活跃,并受到罚没 0.01% 质押的处罚。虽然相比之下处罚较轻,但执行严格且不可协商,可确保验证者保持在线,并可靠地参与共识。

有趣的是,一些验证者会主动接受这项轻微处罚,将其视为自愿停止运营的成本,因为他们认为损失微不足道。

虽然 Cosmos SDK 网络共享标准的默认罚没参数,但各条链可以修改或扩展这些规则,以体现自身的安全假设和风险模型。这种灵活性让每个网络都能根据验证者集合规模、去中心化目标或预期容错能力来调整罚没系统。57 个基于 Cosmos SDK 的主网中的罚没活动提供了更广泛的生态执行情况:

  • 12,143 起停机相关罚没
  • 111 起双重签名罚没
  • 326 起其他违规
  • 共计 12,580 起罚没事件

这些数据表明,双重签名虽然罕见,但会受到重罚;停机罚没则更常见,主要被视为常规运营成本。 

结论

罚没始终是区块链行业中争议最大、最容易引发情绪化讨论的话题之一。每当出现新型验证者违规行为或激励错配时,要求实施罚没的呼声很快就会出现。原因不难理解:从表面上看,罚没似乎是一种强有力的威慑手段,能够通过直接的链上机制惩罚不良参与者并维护网络完整性。

然而,正如本文所说明的,程序化罚没远非解决违规行为的万能方案。要使其有效,违规行为必须明确无歧义且可以证明,而在复杂的现实环境中,这些条件并不总是容易满足。如果在证据不明确或存在解释空间时执行罚没,就可能惩罚诚实参与者、动摇信任,甚至造成比其试图阻止的违规行为更严重的损害。

可以说,自动化罚没机制为网络带来的最大价值是它对利益相关方的心理影响。只要任何形式的违规行为存在造成经济损失的可能性,无论这种情况多么罕见,就足以促使规避风险的质押者将委托分散到多个验证者,同时激励运营商投资多样化且相互独立的基础设施。

延伸资源

订阅 Helius

及时了解 Solana 开发的最新动态,并在我们发布新内容时收到更新

放大图片