AuditFL:面向开放联邦学习的合约支撑清算层 AuditFL: A Contract-Backed Clearing Layer for Open Federated Learning
用智能合约清算层让开放联邦学习的轮次协调可审计、可重放且受经济约束
前置知识
联邦学习(FL)与其中心化控制平面
联邦学习是一种分布式机器学习范式:多个客户端在本地用自有数据训练模型,只把模型更新(梯度或权重差)发给协调者,协调者聚合(典型如 FedAvg 加权平均)得到全局模型。原始数据始终留在本地,适合医疗、金融等数据敏感场景。代价是引入了一个集中式控制平面:挑选客户端、分发检查点、收集更新、聚合并记账发奖全由单一协调者完成。
本文的改造对象正是这个控制平面,理解 FL 的标准流程才能看清 AuditFL 把哪些环节搬上链、哪些留在链下。
智能合约与 EVM Gas
智能合约是部署在区块链上、由全网节点确定性执行的程序,其状态由账本保证一致。以太坊虚拟机(EVM)用 gas 计量每笔交易的计算与存储开销,每个操作有固定的 gas 消耗,因此执行成本可精确度量。gas 反映合约的计算复杂度,但不直接等于法币成本——后者还取决于具体网络的 gas 单价。
AuditFL 用 Solidity 合约在本地 Anvil 链上实现清算层,并用 gas 作为执行成本的核心度量(N=200 时 829.7M gas)。
内容标识符与链下制品存储
内容标识符(CID)是对数据字节做密码学哈希(如 SHA-256)得到的地址,数据本体存放在链下系统(如 IPFS 这类内容寻址存储)。验证者只需重新哈希取回的字节即可核对与链上承诺一致,从而把大文件从共识路径中剥离;链下数据不可用时,链上仍保留承诺凭证与经济状态。
AuditFL 链上只存标识符与经济状态,模型张量全部留在链下(144.9 MiB 制品仅对应 0.163 MiB 标识符),这是其最小共识设计的前提。
部分同步与确认深度
部分同步网络模型假设消息延迟有界但界限生效时刻未知:稳定化之前消息可任意延迟,之后诚实消息在已知界内送达。PoS 链上写账并非即时最终,应用通常等待 k 个区块确认以降低链重组(reorg)推翻历史的风险;k 越大越安全但轮次延迟越高。
论文的安全/活性论证与轮次延迟模型 $L_{round}\approx(B_r+k)\Delta/p(n,\tau)$ 都建立在部分同步与确认深度之上。
Sybil 攻击与押金机制
Sybil 攻击指攻击者伪造大量身份以获得不成比例的协议影响力,是开放无许可 P2P 系统的经典威胁。防线通常是资源或权益绑定:PoS 中提议权按质押量加权($\Pr[i\ 提议]\approx\tau\cdot st_i/ST$),同一份质押拆成多个身份不会提高总提议概率;应用层则用押金让滥用预约、发布无效更新等行为付出经济代价。
AuditFL 的票券押金与 PoS 权益加权正是抵抗开放准入下女巫攻击的两大支柱。
研究动机
标准联邦学习虽然把原始数据留在本地,但控制平面高度中心化:协调者挑选参与客户端、分发全局检查点、收集更新、执行聚合并记账发奖。一旦协调者被入侵或存在偏向,它可以审查参与者、隐藏某些更新、操纵聚合结果,或发布一个输入、检查点与账目都无法独立重构的轮次结果。已有的区块链辅助 FL 工作大多聚焦激励机制、隐私或应用框架,共识假设与轮次级状态机细节往往含糊其辞:若把每个模型张量都存上链或在链上执行,账本会沦为缓慢的存储与计算瓶颈;若采用许可链,又无法支持任何客户端自由加入的开放市场;而共识协议若不明确,开放 P2P 系统经典的身份增殖(Sybil)攻击、抗女巫性与最终性假设都不成立。这些缺口在区块链辅助 FL 的多篇综述中被反复确认为存储压力、可扩展性与对抗性参与的未解问题。
本文的目标是本文要为开放(无许可准入)的联邦学习构建一个合约支撑的清算层 AuditFL,把链上协调与结算和链下训练、聚合、制品存储清晰分离。具体目标有四:其一,定义轮次清算状态机,覆盖任务上架、奖池注资、押金票券预约、更新发布、全局最终化、退款、奖励权益与申领;其二,给出在部分同步假设下的分层安全性与活性论证,使协调者与客户端的每轮动作可重放、可审计、可追责;其三,保证区块验证不依赖 ML 库、GPU 内核或链下存储取数,即最小共识;其四,在本地以太坊兼容链上实现原型,量化交易数、gas 成本、链下制品规模以及故障注入下的行为,并验证开销可由闭式模型精确预测。
与已有工作不同的是,已有的可问责、可审计、可验证 FL 工作审计的是贡献质量或聚合正确性:例如 BlockFLA 用哈希、押金与罚没追责后门攻击,BlockFLow 按贡献质量发可问责奖励,VerifBFL 用 zk-SNARK 验证聚合,可审计的拜占庭鲁棒 FL 审计鲁棒聚合层。AuditFL 的独特切入点是审计每轮周围的清算层本身:票券化准入、更新承诺、对协调者提交的最终化记录的确定性结算、退款与申领,以及可度量的合约执行成本。它不试图证明聚合结果最优,而是让沉默的历史改写、隐藏更新和任意铸币在公开账本上不可能发生。同时它坚持三条被既有系统忽视的约束:开放准入(不预批客户端)、经济押金(浪费发布槽位或扣留内容必须付出代价)与最小共识(区块验证不碰张量),并用 Table I 把这组特征作为一揽子目标首次对照提出。
核心方法
可以把 AuditFL 想象成金融市场的清算所:交易(学习)发生在场外,清算所只按公开规则登记、对账和结算。技术上,任务协调者先把初始检查点上传到链下内容寻址存储,提交 ListingTx 将 modelID 与初始内容标识符及不可变规则集(截止时间、押金额、聚合/评分策略)绑定,再用 FundingTx 给奖池注资。客户端读取当前轮次,用 UpdateIntentTx 锁定押金预约一个更新发布槽位(票券),本地训练后把更新字节放进 SHA-256 内容寻址制品库,并通过 UpdatePublishTx 把票券绑定到更新内容标识符。截止时协调者取回可检索的已揭示更新,过滤形状非法者,按规则评分并用与 Plain FL 基线相同的 FedAvg 式规则聚合成新全局模型,上传后提交 GlobalUpdateTx;账本推进轮次、按分数记奖励权益、把可退押金记为权益,客户端最后用 ClaimTx 提现。在 N=200、R=12 的完整运行中,该流程共产生 5,026 笔链上交易和 2,413 个链下制品。
核心创新是把'排序与结算'和'学习'彻底分离,并让账本只执行确定性结算算术而非判断评分策略是否正确。所有验证器执行同一状态机:发布必须引用同模型同轮的活跃未揭示票券,全局更新只能引用已揭示票券且轮次匹配,这些不变量阻止了隐藏更新、重复发布、过期最终化和未预约的更新垃圾。区块有效性由从父状态重放有序交易决定(严格重放规则),因此同一区块内的竞争交易无法蒙混过关;nonce 与幂等检查防止重复状态效果。经济上,票券押金为两类行为定价:预约后不发布标识符则没收押金,发布的制品不可取回或不合法同样没收,但合法制品即使不得奖也可退押金。由此协调者虽未被移除,其每轮动作却变为可归因、可重放、可审计且受经济约束——信任被'收窄'而非消除:安全主张是可检测性与可追责,而不是聚合正确性的密码学强制;协调者对同一轮的态两签(equivocation)还可用冲突签名证据做成可罚没行为。
方法步骤详情
一轮的完整流程如下。(1) 上架:协调者上传初始检查点到链下存储,提交 ListingTx,输出为绑定了 modelID、初始 CID 和不可变规则(截止时间、押金、评分与聚合策略)的任务状态。(2) 注资:FundingTx 校验签名、余额与金额后向奖池转入 $R_r$。(3) 预约:客户端调用 UpdateIntentTx,锁定押金并受每账户上限约束,获得当轮票券。(4) 训练与发布:客户端本地训练,序列化更新,写入内容寻址库,UpdatePublishTx 把活跃未揭示票券绑定到更新 CID。(5) 截止与聚合:协调者从 k 深确认视图读取已揭示票券、按标识符排序、带界重试取回制品,把可用者记入退款,把形状合法且分数为正者加入 included,按 $s_j=\max(0,\Delta_j)w_j$ 评分($\Delta_j$ 为相对上一全局模型在验证集上的提升,$w_j$ 为样本量的有界代理),链下聚合并上传新全局检查点。(6) 结算:GlobalUpdateTx 校验票券有效性、数组对齐与未决票券清算,推进轮次,按 $pay_j=R_r\, s_j^{\gamma}/\sum_{u\in I_r} s_u^{\gamma}$($\gamma\in[1,2]$)记奖励权益。(7) 申领:ClaimTx 把权益转入余额。
技术新颖性
与最近工作的区别可由 Table I 概括:BlockFL 只研究区块生成延迟;Biscotti 侧重隐私安全的 P2P FL;FedCoin 用 Shapley 值做支付;ChainFL 把模型存储/聚合放上链;BlockFLA 用混合链哈希押金追责后门;BlockFLow 做可问责奖励;VerifBFL 用零知识验证聚合。AuditFL 是对照表中唯一同时具备开放准入、密码学承诺、参与押金、合约结算与故障/成本测量的系统,且其审计对象是清算层而非模型质量。方法学上的新颖点还包括:把故障分层为共识层故障(延迟、审查、分叉、重排,均在共识界内)与清算层故障(非法标识符、低质更新、制品不可用、选择性遗漏),后者只影响纳入与结算而不影响区块有效性;以及给出闭式开销模型 $T_{round}=2N+2$、$T_{app}=1+R(2N+2)+N$、$P_{put}=1+R(N+1)$ 与 PoS 轮延迟近似 $L_{round}\approx(B_r+k)\Delta/p(n,\tau)$,使系统开销可先验预测、实测可对账。
实验结果
实验在完整 MNIST(70,000 样本,经 OpenML 加载)上进行,分层切分为 42,000 训练/10,500 验证/17,500 测试,客户端数据按 Dirichlet α=0.4 非 IID 划分,R=12 轮,N 从 1 到 200。(1) 交易数:实测从 N=1 的 51 笔增长到 N=200 的 5,026 笔,每个规模都与解析模型 $2+R(2N+2)+N$(外加一次合约部署)精确吻合。(2) 制品数:从 25 个增至 2,413 个,匹配 $1+R(N+1)$。(3) gas 成本:N=200 时共消耗 829.7M gas,其中 publishUpdate 408.7M、reserveTicket 314.3M,合计占 87.1%,finalizeRound 每轮仅一次故占比较小,符合协议结构预期。(4) 存储压缩:链下制品 144.9 MiB,而链上 SHA-256 标识符仅 0.163 MiB,约 887 倍之比,支持'张量不上链'的设计选择。(5) 学习轨迹:AuditFL 与 Plain FL 在相同划分、相同规则下纳入相同更新,最终测试准确率完全一致——N=1 时 89.65%,N=200 时 89.21%,跨规模差异完全来自非 IID 划分本身。(6) 故障压力:N=50、3 个种子、注入率 0–50%,客户端掉线、非法更新、制品不可用三种模式都使每轮纳入数近似线性下降(50% 注入时仍约 25 个更新/轮),但轮次始终能最终化,最终准确率相对 Plain FL 的偏差保持在正负零点几个百分点内,偶有正值源于非 IID 下剔除噪声更新的偶然收益。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 开放FL清算(MNIST, N=200, R=12) | 链上交易数 | 5,026 | 解析模型 2+R(2N+2)+N = 5,026 | 全部客户端规模下 100% 吻合 |
| 合约执行成本(N=200) | EVM gas | 829.7M(publish 408.7M + reserve 314.3M) | Plain FL 无链上成本 | reserve+publish 占 87.1%,成本结构符合协议模型 |
| 链上承诺 vs 链下制品 | 存储字节 | 标识符 0.163 MiB | 制品 144.9 MiB | 约 887 倍压缩 |
| 学习轨迹保持(非IID MNIST) | 最终测试准确率 | 89.21%(N=200)/ 89.65%(N=1) | Plain FL 89.21% / 89.65% | 差异为 0(执行相同学习规则与更新集) |
| 故障压力(N=50, 注入率50%) | 每轮纳入更新数 / 准确率差 | ≈25 个更新/轮;准确率偏差 ±0.3pp 内 | Plain FL 无故障运行 | 三种故障模式下轮次均能最终化 |
局限与改进
作者明确承认的局限:评估在本地 Anvil 链上做,测的是应用层清算逻辑与执行成本,而非公网共识行为与网络延迟;gas 只是代理指标,法币成本取决于具体网络的 gas 价格;链下存储被假设为可靠分布式层,压力测试刻意放松该假设但未实现真实复制存储;账本只强制结算算术而不验证评分策略正确性,只有当上架时公开验证集或提交了评估程序时,审计者才能重算分数与奖励权益;隐私与投毒防御不在范围内,更新仍可能经梯度泄露成员信息,恶意张量仍可影响模型。我自己的补充观察:其一,仅在 MNIST 一个小模型上评估,144.9 MiB 的制品量在百兆级大模型下会显著放大链下存储与取回压力;其二,压力实验仅 3 个种子,作者自认不宜据此比较三种故障模式的相对危害;其三,协调者是'指定但可审计'的,评分 $\Delta_j$ 的可信度完全依赖验证集是否公开,这留下一个真实的信任缺口。
独立分析的弱点
第一,评分可操纵性:$s_j=\max(0,\Delta_j)w_j$ 中的提升由协调者用(可能私有的)验证集计算,除非上架时公开验证集,否则协调者可以系统性压低某些客户端的分数实现选择性歧视,而账本仍会一致地结算这些错误分数。改进方向是把验证评估做成承诺-揭示协议,或用零知识证明分数计算的执行。第二,gas 线性扩展瓶颈:每客户端每轮需要 reserve+publish 两笔链上交易,200 客户端即 829.7M gas,扩展到数千客户端时成本与状态膨胀将不可行。改进方向是用 Merkle 承诺批量提交票券状态,或把发布合并进轮级聚合承诺。第三,押金惩罚误伤:制品不可用可能由网络故障而非恶意导致,但结算一律没收押金,把存储可用性风险转嫁给诚实客户端。改进方向是引入可用性证明宽限期或由任务方注资的存储保证金。第四,Sybil 公平性:PoS 权益加权只防提议权垄断,不保证奖励公平;攻击者可拆分本地数据以塑形 $\max(0,\Delta)$ 获取更高奖励份额。改进方向是按去重后的唯一信息量评分。第五,单一制品库是可用性单点,与开放系统的目标不完全匹配。
未来方向
作者提出的方向包括:在公共网络上实测延迟与成本,而非本地 Anvil;扩展到更大的 FL 工作负载以观察制品量与聚合计算的变化;实现复制式制品存储以兑现可靠性假设;接入更强或可验证的聚合机制——Krum、坐标级中位数、截尾均值等鲁棒聚合可以不改账本状态机直接插入。基于本文成果还可延伸:其一,把协调者对同一轮签名冲突的罚没(slashing)具体化为链上可执行的证据规则;其二,结合安全聚合与差分隐私,使链上可见的更新标识符无法被用于成员推断或梯度反演;其三,把确认深度 k 与轮延迟的权衡做成自适应参数——论文已给出 $L_{round}\approx(B_r+k)\Delta/p(n,\tau)$ 的近似,可据此按网络拥堵动态调 k;其四,在真实 PoS 公链上部署,实证押金额与 $\gamma$ 指数等经济参数对参与率、投毒成本与奖励集中度的影响。
复现评估
复现条件较好。作者提供了匿名制品库 https://anonymous.4open.science/r/AuditFL-6BE3,包含 Solidity 合约(BCFLCoordinator,暴露 createListing、fundRound、reserveTicket、publishUpdate、finalizeRound、claim 六个接口)、实验运行器、绘图脚本与论文结果 CSV。技术栈全部开源:Anvil 本地以太坊兼容链、Python 客户端与协调者进程、OpenML 加载的完整 MNIST、本地 SHA-256 内容寻址制品库;另有确定性内存状态机后端用于快速调试与受控故障注入。算力需求低:MNIST 级模型与最多 200 客户端、12 轮在单机即可完成。复现难度中低,主要工作量在于搭建 Anvil 环境并校准 gas 计量;交易数有闭式对账清单 $T_{measured}=1+R(2N+2)+N+1$(含一次合约部署),制品数有 $1+R(N+1)$,可直接核对实现正确性。
论文图表
展示各故障注入率下最终测试准确率相对 Plain FL 的差值(百分点):偏差保持在正负零点几个百分点内,负值略占多数,偶有正值,来自非 IID 划分下剔除噪声更新的偶然收益。
说明故障注入对学习质量的影响被限制在极小范围内,支撑'清算层不损害学习轨迹'的核心结论。
按六个特征维度(开放准入、密码学承诺、参与押金、合约结算、故障/成本测量、主要侧重点)对照 BlockFL、Biscotti、FedCoin、ChainFL、BlockFLA、BlockFLow、Auditable BR-FL、VerifBFL 与 AuditFL。
一图定位论文的差异化贡献:AuditFL 是唯一同时具备开放准入、承诺、押金、合约结算与成本测量的系统,且审计对象是清算层而非模型质量。
列出六类交易对象(ListingTx、FundingTx、UpdateIntentTx、UpdatePublishTx、GlobalUpdateTx、ClaimTx)各自的主要效果与校验:从创建任务与不可变规则、奖池注资、押金预约与每账户上限、票券-标识符绑定,到轮次最终化与权益结算、余额提现。
它是状态机的接口规范,理解每类交易的检查逻辑才能理解协议如何阻止隐藏更新、重复发布与未预约垃圾更新。