3月19日凌晨,有社区用户反馈Filecoin主网存在双花风险,币安、OKex等交易所均已关闭Filecoin主网代币FIL的充值功能,CoboCustody也第一时间暂停了FIL的充值和提币。
CoboCustody技术团队对此次Filecoin安全事件保持高度关注并进行了详细复盘:
Filecoin「双花」始末
据Filfox和FileStar的Filecoin矿工反馈,周三币安遭遇了价值数百万美元的FIL双花充值攻击。
起因为有一笔61,000FIL的交易所入账花费了太长时间,于是Filfox和FileStar矿工为了加速而发起了一笔RBF交易。而该笔RBF交易导致币安账户两次入金,最终入账120,000FIL。事后,Filfox和FileStar开发者回应称,Filecoin的RPC代码里存在“严重的漏洞”。该漏洞导致币安在看到两笔有冲突的交易后,选择了同时入账。?
FilDA 宣布与 Glide Finance 达成深度战略合作:10月21日, FilDA 宣布与 Glide Finance 达成深度战略合作,双方将通过产品形态,在资产流动性、清算机制和技术互通层面展开深度合作,加强借贷及衍生品合作为用户提供更丰富的产品体验和更广阔的应用场景,并帮助用户获取更好的 DeFi收益。
FilDA 是部署在 HECO 网络的借贷项目,存借款总额高峰值突破21亿美元。Glide Finance 是一个基于 Elastos 生态系统构建的去中心化交易所(DEX)协议。[2021/10/22 20:48:11]
FilFox和FileStar开发者已经第一时间联系了币安,并在第一时间通知了Filecoin官方。
欧易OKEx将于4月29日13时暂停FIL的充提:4月28日消息,据欧易OKEx公告,由于FIL主网升级 ,欧易OKEx将于2021年4月29日13:00(HKT)暂停FIL的充提,待升级完成后开放。[2021/4/28 21:07:10]
币安、OKex等交易所均已关闭Filecoin主网代币FIL的充值功能,CoboCustody也第一时间暂停了FIL的充值和提币。
技术细节复盘
交易所和中心化钱包等中心化托管机构会依据链上的转账行为给用户入账,因此如何高效、准确、及时的解析链上的转账行为是非常关键的,常见的做法是先获取某个区块内的所有交易ID,然后基于交易ID获取对应的交易内容和交易执行结果。
Lido将在Aave V3、以太坊、Arbitrum和Optimism流动性池中分配LDO奖励:2月7日消息,根据Aave社区通过的一项提案,Lido将在Aave V3、以太坊、Arbitrum和Optimism流动性池中分配LDO奖励。Lido流动性挖矿委员会(LMC)决定提供LDO奖励的排释放率和持续时间。去年,Lido表示将奖励Arbitrum和Optimism上的stETH流动性提供者累计15万枚LDO代币。[2023/2/7 11:52:56]
Filecoinlotus节点提供了多个API用于链上交易的获取,例如ChainGetBlockMessages可以获取指定区块内的所有交易内容,StateGetReceipt可以获取指定交易ID对应的执行结果,此次被攻击的交易所就是采用这两个API来进行链上转账行为的解析,并基于此为用户入账。
FTX请求法院让BitGo在破产期间保护其资产:金色财经报道,FTX 通知一位联邦法官,它希望BitGo在破产程序结束时保护其剩余的数字资产。与BitGo的托管服务协议于11月13日签署,大约一天后,有人完成了“未经授权的转账”,从FTX账户中转移了价值3.72亿美元的资产。?该公司及其关联公司在转移资产之前必须向监督其破产的法官提出要求。FTX 昨天告诉法庭,它对持续的网络威胁和盗窃感到担忧。
FTX 已同意向BitGo支付500万美元的预付费用,该公司将向FTX收取相当于所持有数字资产平均美元价值乘以1.5个基点的月费。在宣布该交易的文件中,该公司的律师估计,根据截至11月16日向BitGo初始转移价值7.4亿美元的资产,FTX 每月将花费大约100,000美元。[2022/11/24 8:02:50]
不过他们没有注意到,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??
CoboCustody技术团队在对接Filecoin的过程中已经发现了上述问题,因此没有采用ChainGetBlockMessages和StateGetReceipt来获取链上的转账行为,而是采用ChainGetParentMessages和ChainGetParentReceipts来获取已经成功上链的交易,从而从根本上避免了被双花充值的风险,因此未受此次双花充值攻击的影响。
在使用ChainGetParentMessages和ChainGetParentReceipts的过程中,CoboCustody技术团队发现lotus节点的一些返回值也并不是很符合常规逻辑思维,例如对于空块的处理是有一些问题的。CoboCustody技术团队对此做了妥善的安全处理,在此也提示其他中心化托管机构需要仔细检查相关的对接代码,避免其他的双花充值攻击行为。
双花即使用上一次交易的代币,再次进行交易,进而导致产生虚假交易。
2018年比特币黄金(BTG)就曾受到一名矿工的恶意攻击,该矿工临时控制了BTG区块链,在向交易所充值后迅速提币,再逆转区块,成功实施双花攻击。此次攻击者窃取超过388200个BTG,价值高达1860万美元,也是区块链史上最著名的双花攻击之一。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。