By: Kane & Blackk @ Safeheron Team
事件细节
具体的细节分析可以参考
-
慢雾的分析文章:2000 万 OP 代币被盗关键:交易重放
-
Cobo Global 发布的文章:《深度解析 Optimism 窃取事件:Layer2 网络合约部署重放攻击》
文章地址:
https://www.techflow520.com/news/920
截止发稿,黑客已将 1700 万枚 OP 代币归还 Optimism。
整个事件总结下来
攻击者之所以有机可趁主要因为两个问题:
-
Gnosis 开发者在 2019 年部署 Proxy Factory 1.1.1 时发送的交易不符合 EIP-155 规范,导致任何人都可以在任意 EVM 网络中通过重放攻击的方式部署 Proxy Factory 1.1.1,并且该合约地址都和 Ethereum 主网中 Proxy Factory 相同,给攻击者带来了可乘之机。
-
Wintermute 犯了低级错误,错误地认为他们的合约多签钱包地址在 Optimism 上应该与 Ethereum 中相同,并且在小额测试时只测试了收款,忽略了测试关键的转账操作。
Gnosis 等合约钱包介绍
Gnosis 等合约多签钱包通过 EVM 链上多签合约的方式解决了 EVM 资产多人管理问题,在大额资金管理和多人资产管理的场景下提供了优秀的解决方案,但是现有的解决方案也存在一些问题:
-
合约多签钱包地址不同于 EOA 地址, EOA 地址的同一个私钥在不同 EVM 链上对应同一个地址,而合约多签钱包地址是否一致取决于合约的设计,比如,本次事件中 Gnosis 在创建钱包 Proxy 时,疏忽了相同钱包创建者在不同 EVM 链上无法创建同一个 Proxy 地址所带来的潜在安全问题。
-
合约钱包需要在每一个 EVM 链上单独完成对应的部署后才可以使用,并且相同的资产管理策略(签名人员、签名门限)在不同 EVM 链上都要配置一次,每次配置都需要消耗手续费,操作相对繁琐。
-
转账手续费取决于策略复杂度。如果参与管理的人数较多,每次转账都要消费较多的 Gas,造成转账手续费贵等问题。
由于多签机制基于 EVM 合约实现,这些问题受限于 EVM 特性,后续也很难有比较完善的解决方案。除了合约多签之外,安全鹭团队也推荐使用 MPC 技术进行多人管理资产。
Safeheron 解决方案
Safeheron 采用 MPC 签名算法,在链下签名算法层面实现了多签机制(MPC-ECDSA、MPC-Ed25519、MPC-BLS),基于 MPC + TEE 技术构建了更加安全和高效的资管工具。
Safeheron 实现的 MPC 钱包具有以下特性:
-
MPC 私钥分片在生成、签名、刷新、验证过程中可用但不可见,安全性十足。
-
MPC 钱包地址属于 EOA 地址,通用型更强,同一个地址在任意 EVM 链上都掌握绝对控制权。
-
一个钱包可以多人管理不同链上的资产,包含 EVM 链和非 EVM 链(BTC、TRON 等)。
-
相同的策略只需配置一次。一次配置,在不同 EVM 链和非 EVM 链均适用,操作安全高效。
-
MPC 钱包更节省手续费。由于链下多签属于 EOA 地址发起交易,相对于合约多签方案最高可节省 90% 的手续费。
除此之外,安全鹭在转账过程中还增加了许多安全检查项,比如:
-
目标地址和来源地址的 AML 检查
-
每个钱包都应该视作标配的所见即所签
-
转账地址多人审批,添加为白名单之后才可以转出
-
目标地址是否是合约提醒
-
……
写在最后
通过本次事件,Safeheron 团队也再次提醒钱包用户和服务商:
-
选择钱包工具或者构建钱包系统时,一定要支持 EIP-155 规范,否则将可能带来严重的重放攻击安全问题。
-
大额转账前一定要充分检查目标地址,通过小额转账验证目标地址的正确性,并且接收方收款之后尝试转出,验证是否具有钱包的控制权限。
-
发现潜在安全风险应在第一时间完成对资金的转移或控制,避免错过最佳抢救时机。
官网:https://www.safeheron.com/
Twitter:https://twitter.com/Safeheron
原文始发于微信公众号(安全鹭):2000 万 OP 代币被盗复盘:合约多签 VS MPC