【文献阅读】BunnyFinder:探寻以太坊共识机制中的激励机制漏洞 BunnyFinder: Finding Incentive Flaws for Ethereum ConsensusBunnyFinder探寻以太坊共识机制中的激励机制漏洞会议NDSS(Network and Distributed System Security Symposium) 2026原文链接https://www.ndss-symposium.org/wp-content/uploads/2026-s281-paper.pdf一、背景以太坊于2022年9月升级至权益证明PoS共识机制高度依赖激励机制保障系统稳定诚实验证节点获得区块奖励、交易手续费及证明奖励拜占庭验证节点则面临罚没与证明处罚。该机制虽已取得巨大成功超过99%的验证节点正常运行但并非完美。现有问题已有多种针对激励机制的攻击被发现如阶梯攻击、重组攻击等即便不直接威胁安全性不合理的激励也会打击诚实节点参与积极性降低系统稳健性。核心挑战发现激励漏洞难度大主要依赖专家知识与大量人工原因有二尚无共识机制在安全定义中纳入激励因素难以彻底排除漏洞攻击策略极为复杂如拜占庭节点勾结、精准控制消息释放时机穷举所有恶意行为在技术上不可行。研究问题能否在减少人工的前提下找出以太坊中的激励机制漏洞BunnyFinder方法受软件测试故障注入启发的半自动框架聚焦设计缺陷尤其是激励缺陷。由四大组件构成策略生成器SG、策略执行器SE、状态分析器SA、策略优化器SO。主要发现在Prysm和Teku两种以太坊实现上生成并执行了9,354个攻击实例识别出10个有用攻击——5个已知重组攻击、3个新激励缺陷攻击、2个Prysm实现缺陷。以太坊PoS权益证明和激励机制工作流程该协议以周期为单位运行每个周期包含32个时隙。在时隙t起始时刻提议节点viv_ivi​生成区块b(PROPOSE,t,vi,H(head),atts,txs)b (\text{PROPOSE}, t, v_i, H(\text{head}), \text{atts}, \text{txs})b(PROPOSE,t,vi​,H(head),atts,txs)其中head为分叉选择规则的输出结果atts是一组证明消息txs为交易批次第1至7行。时隙t开启满4秒后所有具备证明资格的节点viv_ivi​生成证明消息att(ATTEST,t,vi,H(head),H(cp1),H(cp2))\text{att} (\text{ATTEST}, t, v_i, H(\text{head}), H(\text{cp1}), H(\text{cp2}))att(ATTEST,t,vi​,H(head),H(cp1),H(cp2))并将该证明消息发送给同委员会内所有验证节点。其中head同样为分叉选择规则输出cp1与cp2为两个检查点区块第8至14行。验证节点viv_ivi​收到其他验证节点发来的消息m后会将m存入自身本地区块树T中第15至18行本地区块树仅服务于分叉选择规则。激励机制The incentive mechanism以太坊的激励机制包含奖励与惩罚两部分。奖励分为区块奖励、交易手续费以及证明手续费。惩罚分为削减惩罚和证明惩罚。区块奖励block rewards是每个区块提议者所提议的区块完成最终确认后能够获得的奖励。交易手续费transaction fees是用户为完成一笔交易额外支付的费用。证明手续费attestation fees每个证明者在其证明完成最终确认后能够获得的奖励。削减惩罚slashing condition惩罚出现双重作证行为的验证者。证明惩罚Attestation penalties对未完成证明最终确认的证明者进行惩处。证明奖励和证明惩罚都称为证明激励attestation incentives此项目主要关注证明激励和区块奖励。二、方法一概述BunnyFinder由4个部分组成策略生成器SG、策略执行器SE、状态分析器SA、策略优化器SO,分2个阶段运行。攻击识别Attack identification:策略生成器SG生成攻击实例集合策略执行器SE将这些攻击引入本地部署的以太坊测试网让一部分验证节点执行这些攻击状态分析器SA收集日志并分析攻击实例是否揭示了激励缺陷。这三个组件是自动执行的。攻击优化Attack optimization发现激励漏洞后人工核查日志区分已知类型或全新类型。针对新型攻击提取通用攻击手段运行SO算法进行优化让攻击更易实施或收益更高。优化手段过程中会采用强化学习RL。此项工作需要专业领域知识支撑无法完全自动化。难点和解决办法核心研究难点是从海量攻击实例空间中挖掘有效的攻击策略并对攻击参数进行微调。拜占庭验证者存在两类恶意行为顺序操纵Order manipulation拜占庭验证者篡改各验证者向其他验证者发送消息的顺序与内容操纵篡改消息本身的内容。恶意行为虽仅两类但具体攻击场景数量极多1.攻击者可随意篡改、延迟消息2.掌控不同比例拜占庭验证节点掌控节点越多需篡改的消息队列规模越大无法穷举所有攻击方案必须缩减攻击场景范围3.即便找到存在激励漏洞的攻击也无法确定其收益最高微调一下就可能造成更大破坏。为此对策略生成器SG、状态分析器SA、策略优化器SO三大模块进行精心设计。SG减少攻击实例的空间为生成有效攻击实例提出几条规则。不得提前发布消息在以太坊的实现机制中验证节点不会处理槽位编号高于自身当前本地槽位编号的消息。因此提前发布消息毫无意义。设置离散延迟时长离散化设置延迟时长单个slot的1/3为1个单位比如4秒。采用该优化方案主要有两点原因1.每个验证节点会在每个单位时间执行若干操作比如每位证明节点attestor会在每个时隙走完4秒后生成对应的证明信息2.本文采用同步网络假设所有消息均可准时送达。相较于其他时序模型该假设的约束条件实际上更为宽松。即若某种攻击在同步网络环境下能够实施那么在异步网络环境中实施该攻击会更加容易。审慎选取可篡改内容字段针对性筛选区块与证明数据结构中可供修改的字段以此保证各类攻击策略能够生效。采用上述原则后攻击实例的数量大幅减少。共生成9354个攻击实例有3121个被认定为激励缺陷。SA评估攻击实例首先对激励缺陷进行规范定义。完善的激励机制通常需满足1遵守协议的诚实验证节点应当获得奖励2违背协议规范的拜占庭验证节点应当受到惩罚。目前已知的绝大多数研究都聚焦于会触发条件(1)的激励缺陷因此还需考量条件(2)是否会被触发并分析以下可能情形若诚实验证节点获得的奖励低于其应得份额拜占庭验证节点的奖励是否也会低于其应得份额甚至遭受处罚若诚实验证节点受到处罚拜占庭验证节点是否会面临更重的处罚设fsf_sfs​为诚实验证节点的公平分配奖励fair share of rewards。RBR_BRB​与RhR_hRh​分别代表拜占庭验证节点、诚实验证节点的净收益net payoffs。为正代表获得净奖励为负代表遭受净惩罚。当RhfsR_h f_sRh​fs​时此次攻击具备实际影响即诚实验证节点所得收益其公平分配奖励。我们根据(RB,Rh)(R_B, R_h)(RB​,Rh​)将各类场景划分如下场景一两者均获得奖励。此时仅当诚实验证节点的net payoffs fair share时攻击具备实际影响满足条件RB0R_B 0RB​0、Rh0R_h 0Rh​0且RhfsR_h f_sRh​fs​。场景二两者均受到惩罚。此时攻击本身即具备实际影响原因是诚实验证节点严格遵守协议却仍遭受惩罚满足条件RB0R_B 0RB​0且Rh0R_h 0Rh​0。场景三拜占庭验证节点获取奖励诚实验证节点遭受惩罚。此类攻击会对系统稳定性造成严重冲击攻击者掌控的质押份额会持续增长最终可能突破33.3%的临界阈值满足条件RB0R_B 0RB​0且Rh0R_h 0Rh​0。场景四拜占庭验证节点遭受惩罚诚实验证节点获得奖励。同理仅当诚实验证节点的奖励低于fair share时攻击具备实际影响满足条件RB0R_B 0RB​0、Rh0R_h 0Rh​0且RhfsR_h f_sRh​fs​。为量化攻击带来的影响我们定义拜占庭优势BARB−Rh\text{BA} R_B - R_hBARB​−Rh​。拜占庭优势数值越大代表攻击者净收益越高、诚实验证节点净收益越低拜占庭优势越大攻击效果越强RB−fsR_B - f_sRB​−fs​数值越大则攻击的获利空间越高。SO用RL优化攻击在识别出缺陷后需要判断通过小幅调整攻击策略并微调攻击参数是否能够找到收益更高的攻击方案。论文采用强化学习RL构建攻击优化方案SO。但需要解决的核心难点在于系统运行过程中验证节点的收益会发生动态变化因此难以直接确定“收益函数”。为解决该问题本文选用延迟奖励强化学习模型并在执行强化学习算法的过程中对验证节点的收益进行仿真模拟。后续将证明借助RL-based SO对两种新发现的攻击策略完成优化分别是自私挖矿攻击与阶梯式二类攻击。针对阶梯式二类攻击经过优化后其攻击效果大幅提升。相较于原始攻击方案可获得近乎两倍的收益。除此之外成功概率也从35.0%提升至97.0%。二框架细节1. 策略生成器SG主要的策略包括操纵顺序和内容。顺序操纵使用消息队列表示每个验证节点应该相互发送的消息攻击者会任意修改自身消息队列并决定每条消息发送至其他验证节点的时机。攻击者无法操控诚实验证节点的消息队列内容操纵区分几个可生成有效攻击样本的字段。图3详细展示了区块与证明的数据结构Blockslot字段代表slot编号proposer字段代表区块proposer身份这两个字段无法篡改。parent字段记录父区块哈希值该字段能够被篡改现有多种已知攻击均利用了该手段。transactions字段存储一批交易与证明激励机制无关。attestation字段包含一组证明极其重要——每个验证节点都会依据该字段在分叉选择规则中判定区块树各分支的权重。综上可对区块的parent与attestation字段实施篡改。Attestationhead字段为各证明节点主链的哈希值source与target字段代表两个校验节点。这三类字段均可篡改多款已知攻击均采用该篡改方式。例子以事前重组攻击ex-ante reorg attack为例攻击中仅需1名proposer为拜占庭节点但所有拜占庭验证节点都会篡改并延迟其证明信息。该攻击同时需要篡改顺序与内容两类操作所有拜占庭证明节点均执行同一套攻击策略。相关攻击策略汇总于图4。图6a汇总了未发起攻击时验证节点的消息队列情况图6b汇总了发起攻击后的消息队列情况。图5所示图例适用于图6及后续所有附图。在实现时定义了一种基于JSON格式的策略规范格式SSFSSF在每个slot中定义3要素slot代表执行攻击操作的时隙actions则记录各类攻击策略,用于明确每条消息需要延迟的具体时长以及针对拜占庭验证节点需修改的消息内容。该策略规范格式文件包含两类JSON模板分别用于时序调整与内容篡改。程序会根据具体攻击策略填充对应模板。单个SSF文件包含1个周期内全部时隙对应的攻击策略。2. 策略执行器SESE主要包含两大组件攻击调度器AS与拜占庭模拟器BS。攻击调度器包含两个子组件策略转换器ST和指令分发器ID。ST会依据策略规范格式SSF解析对应的攻击策略转换为以太坊实现代码库中可执行的代码。ID与BS交互在攻击执行过程中向其下发进一步操作指令。BS会在自身客户端中预设一组注入点运行时从ID获取对应指令在各注入点执行指令并将执行结果广播至网络。此外还搭建了策略池用于存储可执行代码从而能够依据指令发起各类复杂攻击策略。示例:攻击注入流程如下:①当拜占庭节点BS的探测点被触发时触发位置为.BlockBeforeBroadcast该探测点向指令调度器ID发送请求同时将拜占庭模拟器的当前线程置为挂起状态。②指令调度器ID收到后续指令后先解析请求再检索策略池判断是否需要为BlockBeforeBroadcast执行本地指令存在两种结果无需执行本地指令时指令调度器直接向拜占庭节点返回远程空指令CMD_NULL检索到对应本地指令时指令调度器执行该本地指令例如delayWithDuration随后向BS下发远程指令。指令执行完毕后③BS接收来自ID的指令.④BS执行远程指令恢复此前挂起的线程。3. 攻击优化器SO论文将研究问题形式化为延迟奖励强化学习任务delayed-reward reinforcement learning task并采用PPO算法训练actor-critic模型,奖励函数为诚实验证节点获得的奖励与其fair share之间的差值。在以太坊权益证明PoS协议中验证节点的奖励会随时间变化且仅当若干区块完成最终确认后才能确定。即时反馈会产生误导甚至起到反作用因此无法在每一步计算奖励。因此选用actor-critic框架其中actor网络学习动作选择策略critic网络预估状态价值以支撑基于优势函数的学习。此外还在网络结构中增设循环记忆模块长短期记忆网络LSTM建立动作与未来才可观测结果之间的关联。LSTM能够保存多slot攻击序列的时序上下文信息追踪proposer职责、链权重以及证明进度。PPO算法通过约束策略更新幅度、保障高效学习进一步提升训练过程的稳定性。在此系统中Agent为掌控所有拜占庭验证节点的对手。环境则模拟最简以太坊2.0区块链系统实现与验证节点奖励相关的核心组件。具体而言重点研究两大模块Hybrid LMD-GHOST分叉选择规则与Casper FFG确定性工具。从概念层面来说环境代表由所有诚实验证节点构成的以太坊2.0网络并规定区块提议、证明发送以及奖励计算的相关规则。我们对以太坊权益证明协议的运行流程进行抽象处理以实现与RL框架的融合。首先将以太坊中的slot概念映射为RL中的时间步step。该协议不再基于时间驱动而是基于动作驱动每一个RL step对应一个完整slot。在每一步环境从agent收到一个动作更新链的内部状态并根据上文给出的规范计算输出结果。其次针对对环境进行攻击定制化修改。通过这些改动我们能够重点分析调整后的攻击策略如何优化输出结果。状态与动作空间依据各攻击实例进行定义。总之SO算法能够提升自私挖矿攻击与阶梯式二代攻击的成功率减少所需的质押筹码并提升收益。BunnyFinder可适配采用提案-投票propose-vote机制的其他区块链。具体而言只需重新定义攻击空间即可调整SG模块而SE模块仅需更新注入节点这类修改需要额外的工程开发工作量。SA模块与SO模块不依赖特定区块链通用性更强。三、结果一实验设置硬件环境AWS EC2最多3个c5.4xlarge实例每个16 vCPU 32GB内存测试网络本地部署Ethereum 2.0测试网含beacon节点、execution节点、validator节点三层架构部分beacon节点被修改为拜占庭节点实验实现Prysm和Teku两种以太坊实现优化措施将slot时间从12秒缩短至3秒单次实验时间从19分钟降至4.8分钟不影响结果正确性代码开源https://doi.org/10.5281/zenodo.17042549二评估与验证流程攻击实例生成与执行SG生成9,354个攻击实例SE执行全部实例实验持续约145小时激励缺陷识别收集执行日志通过SQL查询提取验证节点激励数据按四类Metric分类。在9,354个实例中3,121个被认定为激励缺陷占比约33.4%人工分析每个Metric类别中选取前20%最有利可图的实例人工分析攻击策略。相似策略归为同类每类选最优策略应用RL优化后重新评估。共人工评估300个实例识别出3个新激励缺陷激励缺陷分布Table II编号Metric类别数量占比攻击示例1Metric-I2,58682.86%自私挖矿攻击2Metric-III20.64%阶梯攻击-II3Metric-II46617.07%惨胜攻击4Metric-IV67——三实验结果1. 复现5个已知重组攻击成功复现以下已知攻击部分在Deneb升级后已缓解在旧版本上复现攻击名称缺陷类型策略诚实节点拜占庭节点实现版本事前重组攻击I区块, head奖励减少获奖Prysm 5.2.0; Teku 25.6.0三明治重组攻击I区块, head, 修改parent奖励减少获奖Prysm 5.2.0; Teku 25.6.0未实现证明攻击IIIparent受罚获奖Prysm 4.0.5证明扣留攻击III区块, head受罚获奖Prysm 4.0.5阶梯攻击III区块, source, h, target, 证明受罚获奖Prysm 4.0.52. 发现3个新激励缺陷攻击1自私挖矿攻击— 以太坊PoS首个已知自私挖矿攻击攻击机制拜占庭验证者扣留区块在最优时机释放使延迟区块积累更大权重更多证明在HLMD-GHOST分叉选择规则下替换诚实节点的区块影响拜占庭与诚实节点均获奖但诚实节点奖励低于公平份额Metric-I最低质押要求仅需控制**13.4%**的质押份额即可获利β2/15\beta 2/15β2/15RL优化后成功率近100%质押需求降低超过20%缓解状态已在Prysm v4.0.6中通过REORG_PARENT_WEIGHT_THRESHOLD参数修复2阶梯攻击-II— 阶梯攻击的变体攻击机制需要两个连续epoch的第一个slot的proposer为拜占庭节点对手延迟slot 0的区块4秒使诚实节点证明的target不同所有拜占庭证明永久延迟在epoch末尾释放包含拜占庭证明的区块实现justification影响诚实节点受罚而拜占庭节点仍获奖Metric-III质押要求33.3%质押份额攻击概率1/9与阶梯攻击区别不能连续发起但若对手控制33%质押并在每次可发起时发起所有诚实节点将在对应epoch受罚缓解状态以太坊对阶梯攻击的缓解方案无法完全消除此变体目前未被修复3惨胜攻击— 双方均受罚但诚实节点损失更大攻击机制拜占庭验证者永久延迟所有证明降低参与率诚实节点奖励低于公平份额甚至受罚拜占庭节点也受罚基础版本诚实节点约获公平份额67%拜占庭损失率约180%不够有效最有效实例拜占庭损失5.1%激励诚实节点损失19.9%RL优化后有效攻击比例从60.78%提升至70.78%缓解状态未被修复RL优化效果对比Table III以阶梯攻击-II为例策略诚实节点收益拜占庭收益拜占庭优势(BA)成功率(ASR)默认策略-48.1-34.713.435.0%RL优化策略-56.1-28.927.297.0%BA Rate ≈ 2.03收益翻倍成功率从35%提升至97%诚实节点奖励最多比默认策略低30%对手成本从46.1%降至40.1%降低13%3. 发现2个Prysm实现缺陷1同步模块死锁触发条件发起阶梯攻击-II时所有诚实节点认为自己落后查询同步模块但无节点能完成同步根因同步模块的实现漏洞仅Prysm/Golang实现存在Teku因同步模块实现方式不同不受影响状态已确认未修复2日志错误表现reorg日志在不存在的重组发生时被触发产生虚假重组日志影响不影响协议正确性但影响状态分析器组件可能增加开发者维护复杂度状态已确认并修复4. 漏洞披露状态所有发现均已通过公开渠道、会议和邮件向以太坊基金会披露并获得确认漏洞已报告已确认已修复披露渠道自私挖矿✓✓✓社区网站阶梯攻击-II✓✓✗社区网站惨胜攻击✓✓✗会议报告同步模块问题✓✓✗社区网站日志错误✓✓✓会议、邮件5. 总结BunnyFinder框架通过模拟9,354个攻击实例其中32.9%属于激励缺陷成功覆盖5个已知攻击并发现3个新攻击和2个实现缺陷。新攻击均已验证并报告部分已被以太坊基金会确认并促成协议版本更新。