如何核验已部署合约仍运行审计过的 commit
原标题
Checking that a deployed contract still runs the audited commit
内容摘要
作者 Zealynx 在 Ethereum Magicians 发文,说明如何核验可升级合约仍运行其审计覆盖的代码。浏览器 verified 徽章只证明源码能编译出地址上的字节码,不指明来自哪个 commit。方法是按相同 solc 版本、optimizer runs、viaIR 和 evmVersion 重建审计 commit 并比对 runtime bytecode,有 immutables 时需用 evm.deployedBytecode.immutableReferences 将对应区段清零再比对。尾部 32 字节是元数据 IPFS 哈希,改一行注释只改这 32 字节,对应 Sourcify 的 exact match 与 match 区别。代理需读 EIP-1967 implementation 与 admin 槽位,旧代理如 ZeppelinOS 与 EternalStorage 用不同存储位置和事件主题;Diamond 通过 facets() 查看,EIP-7702 账户代码为 0xef0100 加委托地址且无变更事件。作者引用 Arbitrum 10 月 30 日冻结事件称,在区块 26301885 与 26301886 之间,一笔交易曾两次将 Inbox 指向其他代码再改回,仅四个 Upgraded 日志可见,因此监控需同时读日志和状态,读取失败应记为 unknown。
字节码比对需区分 exact 与 match,尾部 32 字节 IPFS 元数据哈希不同说明源码已变而逻辑未变。
来源:Ethereum Magicians · 标准与升级讨论 · ethereum-magicians.org
打开原文所属事件
如何核验已部署合约仍运行审计过的 commit
读懂这条消息
来自 Learn 的概念与核对方法,帮助理解新闻中的机制和口径。
如何核对 Meme 币?先确认链、合约地址和交易池
名称和 ticker 不能唯一识别代币。核对 Meme 币时,应使用链与代币合约地址(Solana 上为 mint 地址)确定对象,再核对交易池和官方出处;分类确认、数据新鲜和安全评估是三件不同的事。
阅读完整说明 →原生 USDC 与桥接 USDC 有什么区别?先核对发行与兑付路径
同样显示 USDC 的资产可能由 Circle 在该网络原生发行,也可能通过桥包装而来。网络与合约、发行方和兑付路径需要逐项确认,名称相同不代表权利与风险相同。
阅读完整说明 →储备证明能证明什么?有资产不等于知道全部负债
储备证明核验特定时点和范围,不能单独证明全部负债、资产无负担、未来提款能力或完整审计结论。Merkle 路径支持集合包含关系,也不证明负债集合完整。先读报告对象、截止日、程序、覆盖与排除事项,再引用资产负债比例。
阅读完整说明 →