Filecoin「双花」始末及复盘_币世界+COBO钱包

2021-03-19 17:30 栏目:行业动态 来源:网络整理 查看()

科博托管的技术团队密切关注此次Filecoin安全事件,并进行详细审查。3月19日凌晨,部分社区用户举报filcoin主网存在双花风险,币安、OKex等所有交易所已关闭filcoin主网令牌FIL充值功能,Cobo托管也暂停FIL充值和取款。

科博托管技术团队密切关注此次Filecoin安全事件,并进行详细审查:

Filecoin「双花」始末

据Filfox和FileStar的Filecoin矿工透露,周三,比安遭遇FIL数百万美元充值攻击。

由于61,000非洲法郎(约460万美元)的兑换记录耗时太久,费尔福克斯和文件星矿业公司启动了一项径向基函数交易,以加快速度。然而,这笔RBF交易导致了在平安账户的两笔存款,最终入账12万FIL。事后,Filfox和FileStar开发者回应称,Filecoin的RPC代码存在“严重漏洞”。这个漏洞导致科安在看到两笔冲突的交易后,选择同时入账。

FilFox和FileStar开发者第一次联系了毕安,第一次通知Filecoin官方。

bi 'an、OKex等交易所关闭了Filecoin令牌FIL的充值功能,Cobo托管也首次暂停FIL的充值和取款。

技术细节复盘

,交易所、集中钱包等集中托管机构会根据链内转账行为为用户记账,因此如何高效、准确、及时地分析链内转账行为至关重要。通常的做法是先获取某个块中的所有事务ID,然后根据事务ID获取相应的事务内容和事务执行结果。

Filecoin lotus节点为获取链上事务提供了多个API。例如,链获取块消息可以获取指定块中的所有事务内容,状态获取接收可以获取指定事务标识对应的执行结果。这两个应用编程接口被被攻击的交易所用来分析链上转移行为,并基于此对用户进行说明。

但是他们并没有注意到StateGetReceipt接口有一个不符合常规逻辑思维的设计,就是在获取指定事务ID的执行结果时,如果事务已经被RBF替换,则返回最终被RBF成功的事务的执行结果,返回值中并没有暗示这个事务是RBF之后的事务的执行结果。

假设攻击者首先发送TX1,对应事务ID为TXID1,然后攻击者对TX1进行RBF运算,生成TX2,对应事务ID为TXID2,最后TX2成功清盘。此时通过StateGetReceipt分别查询TXID1和TXID2,可以得到正确的结果。

攻击结束后,Filecoin的官方开发者对API进行了补充,明确了StateGetReceipt的返回逻辑,并在v1之后放弃了这个API

https://github.com/filecoin-project/lotus/pull/5838/files

Filecoin「双花」始末及复盘_币世界+COBO钱包

Cobo托管的技术团队在对接Filecoin的过程中发现了上述问题,所以ChainGetBlockMessages和StateGetReceipt不用于获取链上的转移行为。而是使用ChainGetParentMessages和ChainGetParentReceipts来获取已经成功清盘的交易,从根本上避免了被双花充值的风险,因此不受这种双花充值攻击的影响。

在使用ChainGetParentMessages和ChainGetParentReceipts的过程中,Cobo托管技术团队发现lotus节点的一些返回值不符合常规的逻辑思维,比如空块的处理出现了一些问题。Cobo托管的技术团队对此处理得当,也建议其他集中托管机构认真查看相关对接代码,避免其他双花充值攻击。

双消费就是用上一笔交易的代币再次交易,导致虚假交易。

2018年,比特币黄金(BTG)遭到一名矿工的恶意攻击,这名矿工暂时控制了BTG区块链,在给交易所充值后迅速提取硬币,然后逆转区块,成功实施双花攻击。攻击者窃取了38.82万多BTG,价值1860万美元,这也是区块链历史上最著名的双花攻击之一。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发