FILE:Filecoin「双花」始末及复盘

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代码里存在“严重的漏洞”。该漏洞导致币安在看到两笔有冲突的交易后,选择了同时入账。?

Filecoin介绍与EVM兼容的Filecoin虚拟机,计划今年2季度引入可编程性:3月28日消息,Filecoin介绍与 EVM 兼容的 Filecoin 虚拟机(FVM),旨在为 Filecoin 网络引入智能合约的可编程性。FVM 原生代码语言为 WASM(WebAssembly),还将首先实现 EVM(以太坊虚拟机)兼容。借助 FVM,除了现有的存储功能外,Filecoin 网络还可以获得计算能力。此外 FVM 将分阶段上线,2022 年第 1 季度计划引入协议分叉,在开发者可编程之前引入准备性调整,包括 Gas 机制和架构调整,随后 2022 年第 2 季度将引入可编程性,重新设计系统角色和更深层次的协议更改,使其更容易针对系统角色进行编程。[2022/3/28 14:21:35]

FilFox和FileStar开发者已经第一时间联系了币安,并在第一时间通知了Filecoin官方。

Filecoin网络近24小时产出33.91万枚FIL:据IPFS100报道,Filfox浏览器数据显示,Filecoin网络当前区块高度为1121402,全网有效算力为11.024EiB,总质押量约为1.1159亿枚FIL,活跃矿工数为3241个,每区块奖励为23.9280FIL,近24小时产出339117枚FIL,24小时平均挖矿收益为0.0296FIL/TiB,目前FIL流通量为171891182。当前销毁28052768枚FIL。当前FIL最新价格为86.58美元。

目前有效算力排名前三的分别为:f0688165(MetaverseInfrastructure)以142.21PiB位居第一,f0127595(MetaverseInfrast)以132.70PiB暂居第二,f0142720(RRM-雅典娜)以124.10PiB位居第三。

注:根据Filecoin官方释放规则,Filecoin将于2021年10月15号迎来第二次减产。[2021/9/18 23:34:53]

币安、OKex等交易所均已关闭Filecoin主网代币FIL的充值功能,CoboCustody也第一时间暂停了FIL的充值和提币。

Filecoin当前全网有效算力为975.78PiB:据IPFS100.com报道,filfox浏览器数据显示,Filecoin网络当前区块高度为245888,全网有效算力为975.78PiB,总质押量约为1745.2009万枚FIL,活跃矿工数为676个,每区块奖励为13.2738FIL,近24小时产出量为177481FIL,24小时平均挖矿收益为0.1790FIL/TiB;

目前有效算力排名前三的分别为:F02770(时空云&灵动)以59.21PiB暂居第一,F01248(智合云zh)以57.11PiB位居第二,F01782(hellofil)以27.22PiB位居第三。[2020/11/18 21:12:15]

技术细节复盘

岑志科:主网上线后Filecoin币价不及预期的话,有利于更多矿机接入:金色财经报道,在8月11日举办的《家里有矿 | 布局Filecoin挖矿需要具备哪些条件?》的直播节目中,针对“主网上线后,如果币价不如预期,对Filecoin网络的发展会有什么影响?”的问题,矿无界科技联合创始人岑志科表示,Filecoin主网上线之后,按照Filecoin设定的这个经济模型来讲,包括现在目前Filecoin矿机销售市场出现的这个矿机量,它的币价会有比较好的一个走向的,万一Filecoin币价达不到理想中的预期情况,有利于更多的矿机接入。[2020/8/11]

交易所和中心化钱包等中心化托管机构会依据链上的转账行为给用户入账,因此如何高效、准确、及时的解析链上的转账行为是非常关键的,常见的做法是先获取某个区块内的所有交易ID,然后基于交易ID获取对应的交易内容和交易执行结果。

Filecoinlotus节点提供了多个API用于链上交易的获取,例如ChainGetBlockMessages可以获取指定区块内的所有交易内容,StateGetReceipt可以获取指定交易ID对应的执行结果,此次被攻击的交易所就是采用这两个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??

CoboCustody技术团队在对接Filecoin的过程中已经发现了上述问题,因此没有采用ChainGetBlockMessages和StateGetReceipt来获取链上的转账行为,而是采用ChainGetParentMessages和ChainGetParentReceipts来获取已经成功上链的交易,从而从根本上避免了被双花充值的风险,因此未受此次双花充值攻击的影响。

在使用ChainGetParentMessages和ChainGetParentReceipts的过程中,CoboCustody技术团队发现lotus节点的一些返回值也并不是很符合常规逻辑思维,例如对于空块的处理是有一些问题的。CoboCustody技术团队对此做了妥善的安全处理,在此也提示其他中心化托管机构需要仔细检查相关的对接代码,避免其他的双花充值攻击行为。

双花即使用上一次交易的代币,再次进行交易,进而导致产生虚假交易。

2018年比特币黄金(BTG)就曾受到一名矿工的恶意攻击,该矿工临时控制了BTG区块链,在向交易所充值后迅速提币,再逆转区块,成功实施双花攻击。此次攻击者窃取超过388200个BTG,价值高达1860万美元,也是区块链史上最著名的双花攻击之一。

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-7:699ms