前言
Zengo报告称,它在主流加密货币钱包(如ledger、BRD和edge)中发现了一个漏洞(名为“bigspender”)。该漏洞可能导致未确认的事务包含在用户的总余额中。在这种情况下,攻击者可以在确认事务之前取消事务。攻击者利用比特币协议中的费用替换“按费用替换”功能。此功能可以通过支付更高的手续费来取代以前的交易。攻击者可以使用此函数连续多次攻击bigspender。接下来,slow fog安全团队将基于此事件分析比特币协议的RBF特性对交换机和钱包的影响。
什么是RBF
RBF,全名替换为费用,是比特币内存池中的一种协议,允许使用其他事务替换未确认的事务
1完全径向基函数:用更高的手续费取代以前的交易
2初见安全RBF:初始替换,即替换事务本身的输出量必须大于或等于被替换事务
3Opt-in RBF:有选择地替换事务,通过增加服务费替换旧事务。节点可以选择打开或关闭此功能
4延迟RBF:当网络中的一个节点第一次接收到一个旧事务时,如果在给定的块数之后旧事务没有打包,则允许新事务无条件地替换旧事务
目前比特币核心采用opt-in-RBF方案,即通过声明一个事务为可替换事务,其他事务可以用来替换该事务。有关选择性加入RBF的详细说明,请参阅比特币核心的说明
https://bitcoincore.org/en/faq/optin径向基函数/
如何利用RBF进行攻击
RBF主要针对0个已确认的事务,即替换内存池中未确认的事务。当交易所或钱包在处理0笔已确认交易时未正确处理交易相关状态,将导致双花和虚假充值问题。具体攻击方法如下:
1攻击者发送交易,输出地址指向交易所或钱包,并支付低费用,以防止交易打包过快;
2在交易所检索到0确认的交易后,攻击者立即发送一个替换交易,并将输出地址更改为攻击者控制的另一个地址,以替换之前发送给交易所或钱包的交易;
3由于交易所或钱包在处理0确认交易时出现问题,不检查交易是否为RBF交易及交易的确认状态,直接进入账户不确认RBF交易,导致兑换或钱包被冒充、双花、欺诈攻击和拒绝服务攻击钱包的;
攻击流程图如下:
目前,慢雾安保团队已经对市场上的几款去中心化钱包进行了检测,在部分钱包中发现了此类问题,并将问题同步到相应的项目方并协助修复。
防御计划
1交易所或钱包不得采用0确认的方式记录特殊货币的价值;
2如果需要记录0确认的事务,则必须检测到该事务不能是RBF事务。具体来说,事务输入中的nsequence字段值必须是0xFFFFFF,未确认事务中包含非0xFFFFFF值的任何nsequence都应该被拒绝;
3检查交易状态,如比特币交易是否已打包或已达到相应的确认数(如3);
4钱包应显示相应的交易确认状态,防止欺诈攻击;
5慢雾安全小组已经支持了这次袭击的发现。如果钱包或交易所不确定其记账方式是否有问题,可以联系慢雾安检组进行检测。
文章标题:如何规避比特币RBF的虚假充值风险
文章链接:https://www.btchangqing.cn/183003.html
更新时间:2021年01月22日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。
只有比特币才有投资价值
奥莉给!
嗯,看来是韭菜上的时候了
比特币真可爱
币安厉害了