Nomad因为一个低级漏洞损失1.9 亿美元
跨链通讯协议 Nomad 被曝遭遇黑客攻击,代币桥内的 1.9 亿美元资金几乎全空
Nomad因为一个低级漏洞损失1.9 亿美元
一、大量资产从Nomad代币桥币桥
具体来说,Nomad是以太币,Avalanche,Milkomeda和Moonbeam跨链转移的代币桥梁的特点是不依赖大量的外部方来验证跨链通信,可以通过一个名字来验证“optimistic”该机制允许用户安全地发送信息和桥接资产。
最初注意到的错误是一个推特用户@spreekaway:“Nomad代币桥变得非常崎岖???看起来很不寻常。”从他提供的截图来看,当时正有大量资产从他提供的截图来看。Nomad转移代币桥显然不寻常。
对此,Paradigm研究合伙人兼安全主管Samczsun第一反应:也许是Token小数点的配置是错误的。从他的角度来看,跨链桥似乎正在进行中“发送0.01WBTC,退还100WBTC”营销活动。
最初Samczsun不信,但在Moonbeam经过一些手动发掘,他确认了这一事实:“尽管我在Moonbeam只转出了0.01WBTC,但不知道为什么以太币收到了100WBTC。”换句话说,这不是Token错误配备小数点。
但同时,Samczsun发现了更糟糕的一点:WBTC事实上,中桥接的交易并非如此“证明(prove)”这一步,但直接进行,“process”操作。这显然不合逻辑。
二,Replica合同中存在致命错误
基于此,Samczsun总结有两种概率:要么在之前的块中独立提交证明,要么在之前的块中独立提交证明Replica合同中有严重的错误。然而,没有迹象表明最近有任何信息被提前证明,这只剩下一个概率,那就是,Replica合同中存在致命错误。
快速浏览代码后,Samczsun推断出了问题。正在进行中。process在操作过程中,客户提交的信息必须来自可接受的根(将来自可接受的根)prove第185行中设定)“acceptableRoot”它是用来检查根是否被证明或确定。一般在进行中。Replica合同布局初始化时,可靠根设置为0,再改为非0数据新根,旧根设置为故障——Samczsun怀疑,可能是旧根“0”仍处于起效状态。