前言
加密钱包ZenGo发布报告称其在Ledger、BRD和Edge等主流加密货币钱包中发现了一个漏洞。该漏洞可能会使未确认的交易计入用户的总余额中,而此时,攻击者可在交易确认之前撤销该笔交易。攻击者利用了比特币协议中的一项费用替代「Replace-by-Fee」功能。该功能可通过支付更高的手续费来替换此前的一笔交易。攻击者可以连续多次使用该功能进行BigSpender攻击。下面,慢雾安全团队将基于此次事件分析比特币协议RBF特性对交易所和钱包所产生的影响。
什么是RBF
RBF,全称Replace-by-fee,是比特币内存池中的一种协议,允许使用其他交易将未确认交易进行替换的方式,RBF的方案主要有以下几种:
摩根大通评价以太坊:三个方面表现优于比特币:摩根大通在4月27日的一份报告中认可了以太坊的价值,并表示以太坊自4月初以来表现明显优于比特币,随后在报告中给出以太坊表现优于比特币的3个原因:摩根大通认为,首先,以太坊的流动性更具有弹性。加密衍生品市场的流动性震荡引起了巨额清算,在震荡中,比特币期货市场受到的影响远大于以太坊期货市场。在市场恢复阶段,以太坊交易深度恢复迅速。其次,以太坊现货换手率远高于比特币,这也意味着以太坊多头头寸更倾向于持有现货而非期货及永续合约。最后,以太坊网络的交易活跃度展现出其链上活动的丰富,包括不断发展的DeFi及生态中其他领域。
摩根大通表示,以太坊和比特币之间有很大区别。比特币比货币更像是一种加密商品,并与黄金挂钩,属于价值存储类资产。而以太坊是加密货币生态经济的支柱,并在生态中充当交换媒介的角色。[2021/4/29 21:10:21]
1、FullRBF:使用更高的手续费替换前一笔交易
分析 | 区块链相关股票和比特币的回报率之间相关性并不显著:据分析,从历史上看,与区块链相关的股票和比特币的回报率之间的相关性一直很小。这些股票在2018年经历了略微升高的相关系数,但此后有所下降。2017年末至2018年间,Overstock发行STO,与比特币的相关性最高。迅雷有限公司是唯一一家在2019年经历显著相关性增长的公司。[2019/7/9]
2、First-seen-safeRBF:初见替换,即替换交易本身的输出金额必须大于等于被替换交易
3、Opt-inRBF:选择性替换交易,通过追加手续费的形式将旧交易替换,节点可选择开启或关闭此功能
行情 | 比特币价格短时间上涨超过100美元,涨幅达到2%:根据huobipro数据显示,目前BTC价格6491美元,在短时间内价格大幅上涨,自6360美元上涨了131美元,涨幅达到2%。[2018/7/16]
4、DelayedRBF:当旧交易首次被网络中节点接收,如果在给定数量的区块数之后,旧交易仍然未被打包,则允许新交易无条件地替换旧交易
目前BitcoinCore采用的是Opt-inRBF的方案,即通过声明一笔交易为可替换的形式,后续可使用其他交易替换这笔交易。关于Opt-inRBF的详细说明可参考BitcoinCore的说明
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、检查交易状态,如检查比特币交易是否被打包,或已达到相应的确认数;
4、钱包应展示对应的交易确认状态,防止欺诈攻击;
5、慢雾安全团队已支持该攻击的检测,如钱包或交易所不确定自己的入账方式是否存在问题,可联系慢雾安全团队进行检测。
By:?yudan@慢雾安全团队
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。