-

一文读懂若何规避比特币 RBF 假充值风险

来源: 数字货币 时间:2021-01-22 08:11:14
导读: 加密钱包 ZenGo 发布报告称其在 Ledger、BRD 和 Edge 等主流加密货币钱包中发现了一个漏洞(命名为「BigSpender」)。


USDT等美元稳固币已成美国金融结算基础设施?一文说透稳固币进化史

最近一条圈内新闻,引起了人们的热议。我相信等到年底回看,这条新闻的重要程度,绝对可以位列圈内 2021 十大新闻之一。

前言

加密钱包 ZenGo 公布讲述称其在 Ledger、BRD 和 Edge 等主流加密钱币钱包中发现了一个破绽(命名为「BigSpender」)。该破绽可能会使未确认的买卖计入用户的总余额中,而此时,攻击者可在买卖确认之前打消该笔买卖。攻击者行使了比特币协议中的一项用度替换「Replace-by-Fee」功效。该功效可通过支付更高的手续费来替换此前的一笔买卖。攻击者可以延续多次使用该功效举行 BigSpender 攻击。下面,慢雾平安团队将基于此次事宜剖析比特币协议 RBF 特征对买卖所和钱包所发生的影响。

什么是 RBF

RBF,全称 Replace-by-fee,是比特币内存池中的一种协议,允许使用其他买卖将未确认买卖举行替换的方式,RBF 的方案主要有以下几种:

1、Full RBF :使用更高的手续费替换前一笔买卖

2、First-seen-safe RBF:初见替换,即替换买卖自己的输出金额必须大于即是被替换买卖

3、Opt-in RBF:选择性替换买卖,通过追加手续费的形式将旧买卖替换,节点可选择开启或关闭此功效

4、Delayed RBF:当旧买卖首次被网络中节点吸收,如果在给定数目的区块数之后,旧买卖仍然未被打包,则允许新买卖无条件地替换旧买卖

现在 Bitcoin Core 接纳的是 Opt-in RBF 的方案,即通过声明一笔买卖为可替换的形式,后续可使用其他买卖替换这笔买卖。关于 Opt-in RBF 的详细说明可参考 Bitcoin Core 的说明

https://bitcoincore.org/en/faq/optin_rbf/

若何行使 RBF 举行攻击

RBF 主要针对的是 0 确认买卖,即对内存池中的未确认买卖举行替换,当买卖所或钱包在处置 0 确认的买卖时,没有正确处置买卖相关的状态时,就会导致双花和假充值的问题,详细攻击手法如下:

1、攻击者发送一笔 RBF 买卖,输出地址指向买卖所或钱包,并支付低额手续费,防止买卖过快被打包;

2、在买卖所检索到这笔 0 确认的买卖后,攻击者马上发送一笔替换买卖,并将输出地址改为攻击者可控的其他地址,替换先前的发送给买卖所或钱包的买卖;

3、由于买卖所或钱包在对 0 确认买卖的处置存在问题,没有校验买卖是否为 RBF 买卖和买卖的确认状态,直接在未确认的情况下入账 RBF 买卖,导致买卖所或钱包被假充值、双花、敲诈攻击及对钱包举行 DoS 攻击;

攻击流程图如下:

现在,慢雾平安团队对市面上的几款去中央化的钱包举行测试,已在部门钱包中发现此类问题,并将问题同步给响应的项目方以及协助修复。

防御方案

1、买卖所或钱包应克制接纳 0 确认的方式对比特币充值举行入账;

2、如需要对 0 确认买卖举行入账,必须检测该买卖不能为 RBF 买卖,详细为买卖 Input 中的 nSequence 字段值必须为 0xffffff,随便未确认买卖中包罗非 0xffffff 值的 nSequence 应拒绝入账;

3、检查买卖状态,如检查比特币买卖是否被打包,或已达到响应的确认数(如 3 个);

4、钱包应展示对应的买卖确认状态,防止敲诈攻击;

5、慢雾平安团队已支持该攻击的检测,如钱包或买卖所不确定自己的入账方式是否存在问题,可联系慢雾平安团队举行检测

加入新手交流群:每天早盘分析、币种行情分析

添加助理微信,一对一专业指导:chengqing930520

加入新手交流群:每天早盘分析、币种行情分析,添加助理微信

一对一专业指导:chengqing930520