编译|Paradigm研究合伙人:Nomad遭攻击后近2亿美元迅速撤出,到底发生了什么?

免责声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表MarsBit官方立场。

小编:记得关注哦

来源:MarsBit News

编者注:跨链解决方案 Nomad 于 2022 年 4 月宣布完成 2200 万美元种子轮融资,Polychain 领投,投后估值为 2.25 亿美元。Nomad 旨在通过 Optimistic 机制实现一种不依赖大量外部验证的非传统跨链通信。据链上数据分析网站 DefiLlama 显示,跨链解决方案 Nomad被攻击后, TVL 中超过 1.9 亿美元的加密货币在几小时内被撤出,钱包中目前仅剩 4502 美元。

1.Nomad 刚刚在 Web3 有史以来最混乱的黑客攻击之一中,被榨干了超过 1.5 亿美元。这究竟是如何发生的,根源是什么?请让我带你一探究竟。

2.这一切都始于@officer_cia在 ETH安全Telegram 频道中分享@spreekaway的推文。虽然我当时不知道发生了什么,但离开桥的资产数量之多显然是不好的迹象。

3.我的第一个想法是代币的小数点配置有误。毕竟,桥上似乎正在运行“发送 0.01 WBTC,返还 100 WBTC”的促销活动。

4.然而,在 Moonbeam 网络上进行了繁琐痛苦的手动挖掘之后,我确认虽然 Moonbeam 交易确实桥接了 0.01 WBTC,但不知何故,以太坊交易桥接了 100 WBTC 。

https://moonscan.io/tx/0xcca9299c739a1b538150af007a34aba516b6dade1965e80198be021e3166fe4c…

https://etherscan.io/tx/0xa5fe9d044e4f3e5aa5bc4c0709333cd2190cba0f4e7f16bcf73f49f83e4a5460

5.此外,在 WBTC 中桥接的交易实际上并没有证明什么。它只是直接调用了`process`。可以说,能够在不首先验证的情况下处理消息,是非常不好的。

6.在这一点上,有两种可能性。要么是在较早的区块中单独提交了证明,要么是 Replica 合约存在严重错误。但是,绝对没有迹象表明,最近有什么东西被验证。

7.这只剩下一种可能性——副本合约存在致命缺陷。但是怎么做?快速浏览表明提交的消息必须属于可接受的根。否则,第 185 行的校验将失败。

8.幸运的是,有一种简单的方法可以检查这个假设。我知道没有被证明的消息的根是 0x00,因为消息[_messageHash] 将是未初始化的。我所要做的就是检查合同是否会接受它作为根。

9.尴尬的是

10事实证明,在例行升级期间,Nomad 团队将可信根初始化为 0x00。需要明确的是,使用零值作为初始化值是一种常见做法。不幸的是,在这种情况下,它具有自动验证每条消息的微小副作用。

11.这就是被黑客攻击得如此混乱的原因——你不需要了解 Solidity 或 Merkle Trees 或类似的东西。你所要做的就是找到一个有效的交易,用你的地址找到/替换对方的地址,然后重新广播它。

12.一言概之,团队在例行升级将零哈希标记为有效根,这埋下了允许在 Nomad 上欺骗消息的恶果。攻击者滥用它来复制/粘贴交易,并在疯狂的混战中迅速耗尽了桥协议资产。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章