3月18日23点左右,有用户向Binance(币安)交易所反馈在交易所内充入FIL,使用RBF交易后,一次充值账户中却出现了两笔相同数量的FIL。由于存在严重的“双花”风险,在大约30分钟内,Binance(币安)、MXC、Okex等各大交易所相继暂停了FIL的交易。
事件回顾
3月18日晚间,Filfox和FileStar挖矿团队透露,他们在周三(3月17日)意外发现了Filecoin主网存在“双花”漏洞,该团队表示:当时他们需要在交易所充值61,000 FIL(约合460万美元),由于花费时间太长,团队选择通过RBF交易来加快交易速度。但令他们没想到的是,这笔 RBF 交易导致他们的币安账户两次入金,最终入账 120,000 FIL。Filfox和FileStar技术团队声称:这应该是Filecoin 的 RPC 代码里存在“严重漏洞”,导致Binance(币安)在看到两笔有冲突的交易后,选择了同时入账。
众说纷纭
事件发生后,在极短的时间内迅速发酵,引起各方关注,众说纷纭。
Filecoin官方:
Filecoin开发人员第一时间进行了检查与修复,但他们否认RPC代码存在漏洞。Filecoin的团队表示:根本没有所谓的RPC错误,该问题是由于有关交易所对API的使用不正确造成的。我们暂时没有收到其他交易所出现出现相同问题的反馈。我们将会与交易所合作,加强交易所的审核存款机制,以免出现同样问题。
大矿工:
当然,作为Filecoin强有力的支持者,所有“大矿工“都一致认可官方的解释。纷纷在自媒体上表示:Filecoin官方团队已经进行了彻底调查,没有发现任何RPC代码相关问题。重复记账仅在有关交易所的账户上,而在Filecoin链上没有重复记录,造成该问题是由于有关交易所误解了Filecoin lotus 节点API的输出,导致记账系统将原始消息和替换消息都算作相同的发送者和接收者。
交易所:
目前,Binance(币安)交易所还没有发出任何正式通知。但有部分交易所比较认同Filfox和FileStar技术团队的说法。他们表示:Filecoin用于链上交易获取的API众多,交易所通常选择ChainGetBlockMessageshe和 StateGetReceipt这两个 API。但StateGetReceipt 接口存在不符合常规逻辑思维的设计,导致交易所在获取指定交易ID的执行结果时,如果这笔交易已经被 RBF,则会返回最终 RBF 成功的那笔交易的执行结果,并且在返回值里没有任何的提示表明这笔是 RBF 后的交易的执行结果。
安全公司:
慢雾安全团队直接认为这是一起针对 Filecoin RBF交易的假充值攻击事件,并非“双花“攻击。他们表示:攻击者预先发送一笔低 gas-feecap 的交易,然后通过提高 gas-premium 和 gas-feecap 替换原交易(RBF 交易),此时 RBF 交易优先被打包上链,旧交易被丢弃,但是由于 Filecoin节点RPC 有一个特性,在查询旧交易的执行状态时返回的是 RBF 交易的执行状态,导致交易所对两笔交易重复入账。
网安信说
网安信安全团队认为,无论是官方问题,还是交易所问题,都说明一个问题,攻击者的攻击无时无处不在,攻击的方式方法也是与时俱进,任何一些疏漏都有可能造成难以承受的损失,无论是Filecoin官方,还是交易所,或是Filecoin运营者,都必须时刻保持警惕,加强安全自检,Filecoin官方需对所有的API交易接口进行全盘检查,梳理所有API交易逻辑,检查是否存在问题,有则改之,无则加勉;所有交易所首先必须加强对FIL交易的审核机制,进行更多的安全比对,其次必须加强与Filecoin官方加强技术沟通,避免出现任何因沟通不到位造成的误解,从而引发安全事故;至于大矿工,应加强安全防护意识,及时掌握最新的安全情报,提前采取相应的安全措施。