Hoskinson分享币安清库合约分析,引50笔EIP-7702签名
Charles Hoskinson分享分析师CyberSatoshi的拆解,指EIP-7702委托机制与币安热钱包被盗有关,并警告危险代码;规范则要求每笔授权必须附有效签名。
AI 摘要AI
- Hoskinson于星期五在X转发CyberSatoshi对EIP-7702清库合约的分析
- 该清库合约扫走余额时特意在钱包留下1枚ETH以避免Gas警报
- 被攻破的钱包Binance 14据称可调用存有8.23亿美元USDC的外部金库
- 50笔预签名授权覆盖连续nonce,让攻击者趁交易计数变动时执行
Hoskinson的清库合约警告
Cardano创始人Charles Hoskinson卷入了围绕Ethereum(ETH)EIP-7702委托机制的争论。他分享了一份分析,将一项功能指为帮攻击者迅速清空币安热钱包的推手,并警告市场上存在「相当危险的代码」。而Ethereum规范本身的立场不同:该规范写明,没有有效的加密签名,委托无法附加到任何账户上,至于签名凭据如何到手,规范并未说明。星期五,Hoskinson在X帖子中写道:「小心,市面上有相当危险的代码」,其上方附有匿名分析师CyberSatoshi的拆解。该帖子重构了所谓EIP-7702清库合约的字节码,并主张这份合约专为币安的钱包基础设施量身打造。Hoskinson的帖子止步于警告,没有点出具体漏洞,也没有说明他认可分析的哪一部分。CyberSatoshi的重构则细得多。所谓清库合约在扫走原生余额时,特意在钱包里留下了整整1枚ETH。发帖人解释,这一安排是为了让币安的热钱包自动队列不会因Gas不足而切换失败、触发警报。合约中的代币处理循环用底层调用逐一查询余额,单笔转账失败也继续运行,因此即便某个被拉黑的代币挡住了一步操作,合约仍能把其余资产转走。这项分析最引人注目的主张涉及覆盖范围:据称,一个自定义执行函数让被攻破的钱包(即Binance 14)能够调用一个存有8.23亿美元USDC的外部金库,等于越过了钱包自身余额,直接触及交易所在以太坊储备中的资金。我们的相关报道记录了币安被盗后出现的Aave预言机价差,一名套利者借此净赚347万美元;此前币安热钱包还因向一个由Tornado Cash注资的地址转移20亿美元加密资产而受到关注。发帖人把这份合约定性为针对币安架构的定制产物;其关于内部警报和储备防御的叙述仍是该帖子自己的说法。在目前已公布的材料中,看不到Ethereum开发者或币安的任何反驳。
50笔授权与nonce规则
按照EIP-7702的设计,一个通常靠私钥签名操作的外部账户,可以把执行权委托给部署在其他地址的代码。这一设计支持把多笔操作打包进一笔交易,并允许另一个账户代付手续费,钱包服务商和Layer 2网络正是这类模式的用户。每条授权都会指定一条链、一个委托地址和一个nonce,并附带加密签名;协议从签名中还原授权账户,在应用委托之前核对其nonce。CyberSatoshi承认这道门槛:所谓攻击需要拿到原始私钥,或获得对Binance 14安全基础设施的不受限签名权限。允许盲签的钱包,即在未完整查看内容的情况下签署数据,正处在这种审计暴露范围之内。这批签名之所以成立,靠的是nonce运算:50笔预签名的授权覆盖了连续的nonce,让攻击者趁Binance 14的交易计数变动之际下手。规范按顺序处理授权,某条未通过检查就继续下一条,每条有效授权都会使账户nonce递增,因此后续授权可随nonce推进而依次生效;当存在多条委托时,最后一条有效的委托决定账户使用的代码地址。CyberSatoshi主张,委托机制把资产转移压缩成单一操作,压缩了干预窗口,否则交易所防御本可在第三笔交易后拦下失窃。发帖人将这一反事实表述为其个人评估。规范的安全章节说得直白:被授权的代码对账户拥有不受限的访问权,钱包必须对其严格审计,防护措施包括防重放,以及覆盖金额、Gas、目标和调用数据的签名。委托在安装它的交易结束之后依然存在,执行失败不会撤销已处理过的委托指示,只有指向零地址的有效授权才能清除委托。这份拆解连同链上授权轨迹都可以直接核验,我们的专业级以太坊区块链阅读指南演示了具体做法。
现有的记录留下了两种读法。Hoskinson的帖子把委托功能本身当作危险因素,而规范原文表明,该功能没有有效签名就无法附加到账户上,CyberSatoshi的叙述也承认这一点。真正能终结争论的,是披露Binance 14的签名权限如何被获取,这一事实无论EIP文档还是重构分析都没有确立。在得到确认之前,警告与规范之间的分歧悬而未决,任何一方的概括都盖棺不了。
本文由人工智能辅助生成、经 AI 审核,并在 COINOTAG 编辑监督 下发布。

