比特幣 RBF 假充值風險分析

2021-03-01 17:03:59

前言

加密錢包 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 攻擊;

攻擊流程圖如下:

比特幣 RBF 假充值風險分析

目前,慢霧安全團隊對市面上的幾款去中心化的錢包進行測試,已在部分錢包中發現此類問題,並將問題同步給相應的項目方以及協助修復。

防御方案

1、交易所或錢包應禁止採用 0 確認的方式對比特幣充值進行入账;

2、如需要對 0 確認交易進行入账,必須檢測該交易不能為 RBF 交易,具體為交易 Input 中的 nSequence 字段值必須為 0xffffff,任意未確認交易中包含非 0xffffff 值的 nSequence 應拒絕入账;

3、檢查交易狀態,如檢查比特幣交易是否被打包,或已達到相應的確認數(如 3 個);

4、錢包應展示對應的交易確認狀態,防止欺詐攻擊;

5、慢霧安全團隊已支持該攻擊的檢測,如錢包或交易所不確定自己的入账方式是否存在問題,可聯系慢霧安全團隊進行檢測

By : yudan@慢霧安全團隊

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

btc日內再次下跌 短线應當如何處理?

盡管以太坊現貨ETF獲批是個好消息,但市場反應卻不如預期。在消息公布後,以太坊價格出現了小幅下跌,...

加密蓮
67 1個月前

7月23日、BTC(合約)ETH(合約)行情分析及操作策略

昨日收益還是不錯的,日內給出的現價空單分別止盈我們目標點位,恭喜跟上的朋友喫肉。時間一晃到月底了,...

倪老師
67 1個月前

幣圈院士:血與淚的教訓!交易者為何總是撞死在同一棵樹上?

幣圈院士談。交易市場中的幾種“死法” 在幣圈市場鱗次櫛比的海洋,風起雲湧,時常讓人感到驚手不及。在...

幣圈院士
59 1個月前

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...

168超神
66 1個月前

悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤

一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...

我是周悅盈
57 1個月前

btc完美盈利 晚間波動較大注意

昨日btc空單完美給到,最大化走出一千七百點空間~ btc: 日內开盤下跌繼續測試66000一线,...

加密蓮
60 1個月前