Filecoin「双花」疑云事件始末

创宇区块链安全实验室
创宇区块链安全实验室 机构得得号

Mar 19, 2021 专注构建区块链安全生态,致力于让人类进入安全的区块链世界。

该文章已上链

摘要: Filecoin双花疑云揭晓,竟然只是一次RBF交易。

根据 FioinCoin 团队消息,Lotus 团队从一家交易所收到了一份报告,报告称不正确地使用 lotus API 来处理 Filecoin 网络中的转账 / 存款存在重复入账问题。

知道创宇区块链安全实验室 对相关信息分析发现,这是一起 Filecoin Lotus 的 RBF 假充值攻击事件。

Filecoin「双花」疑云事件始末

Filecoin lotus 节点提供了多个 RPC API 用于链上交易的获取,例如 Filecoin.ChainGetBlockMessages 可以获取指定区块内的所有交易内容,Filecoin.StateGetReceipt 可以获取指定交易 id 对应的执行结果。

攻击者预先 发送一笔交易低 Gas 的交易 tx_1,对应的交易 id 为 tx_1_id,随后攻击者通过提高 Gas 实现交易加速 对 tx_1 进行 RBF,生成 tx_2,对应的交易 id 为 tx_two_id2,tx_2 上链成功,然而,Filecoin.StateGetReceipt 接口 RPC 有一个特性,就是在获取指定交易 id 的执行结果时,如果这笔交易已经被 RBF,则会返回最终 RBF 成功的那笔交易的执行状态,导致交易所对两笔 tx_1, tx_2 交易重复入账。关于所谓的“双花问题”,早在 1.21 日,比特币就出现了”双花“疑云,最终竟然也是一次 RBF 交易。

什么是「双花」问题?

「双花」(double spending),即双重支付,指的是在数字货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况。

如果没有合适的机制,仅凭借协议是无法彻底解决双花问题的,用户无法验证是否自己所接收的资金没有同时在其他地方被支付。

 

什么是 按费用替换(RBF)?

即允许用户创建一个替换交易,该交易至少花费一个与被卡住交易相同的输入,但需要支付额外的费用。(如果它没有花费相同的输入,那将完全是一个单独的交易。)

除了在卡住的交易上增加费用外,交易替换对于像迭代付款批量处理之类的用例非常有用。虽然常规批量处理将许多支付合并到同一笔交易中,然后再发布,但同样可以先发布交易,然后在交易广播之后,但在一个矿工将其包含在区块之前,通过添加更多的输入和输出来迭代该交易。

安全提醒

知道创宇区块链安全研究实验室提醒交易所及相关钱包方,在充值入账时,应采用 Filecoin.ChainGetParentMessages 和 Filecoin.ChainGetParentReceipts 来获取已经成功上链的交易,从而从根本上避免了被双花充值的风险。密切关注 RBF 交易带来的风险,必要时可请安全审计公司协助检测。

作者:创宇区块链安全实验室;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 创宇区块链安全实验室 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信