當前位置:
首頁 > 最新 > 區塊鏈的對手:粉塵攻擊

區塊鏈的對手:粉塵攻擊

一、初識粉塵攻擊

小白:東哥,隨著互聯網的高速發展,網路安全也變得越來越重要了。

大東:不錯,國家越來越重視網路安全方面的問題,區塊鏈的出現就說明了這一點。

小白:區塊鏈?這是什麼?

大東:區塊鏈(Blockchain),是比特幣的一個重要概念,它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一批次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。

小白:哇,這樣網路的安全就有保障了!太厲害了!

大東:非也,世界上沒有完美的事物,現在也有很多手段能夠威脅到區塊鏈項目,比如說粉塵攻擊。

小白:粉塵攻擊又是什麼?難道是把一堆粉塵揚到臉上來攻擊別人嗎?

大東:你還真是個小白呀!其實這個粉塵攻擊是區塊鏈攻擊中的術語。

小白:怪不得我猜不對呢,原來是術語呀,突然感覺自己知道的好少,東哥能不能給我講講它的定義。

粉塵(圖片來源於網路)

二、了解粉塵攻擊

大東:粉塵攻擊(Dusting Attack),是一種新型的惡意攻擊活動,黑客和詐騙者將通過向用戶私人錢包中發送極少量的代幣以此來試圖破壞比特幣和加密貨幣用戶的匿名性。

小白:不太懂……

大東:簡單來說,黑客會使用這項攻擊來獲得用戶身份,然後通過用戶隱私來威脅用戶,一些不願意暴露出自己正在使用加密貨幣的人只得為此交付高額贖金。

小白:粉塵攻擊的原理是不是通過混入少量的代幣來得到用戶隱私的意思?

大東:可以這麼簡單地理解。

小白:那這裡的粉塵是指很少的錢嗎?到底少是一個什麼樣的概念呢?

小白:那這麼少的代幣能起什麼作用?

大東:你可不要小看它,粉塵在加密貨幣領域裡的大量使用是件不妙的事。小白,你試想想,如果有人意圖在區塊鏈網路上大量的使用少量代幣交易會發生什麼事情?

小白:嗯……那他肯定會損失慘重,畢竟比特幣轉賬是需要手續費的。

大東:一般不太了解比特幣轉賬規則的人都會下意識的這麼想,但是比特幣轉賬中存在著免手續費的情況,而且有人頻繁惡意地進行小額交易,會造成比特幣網路的擁堵。因為,比特幣的交易區間只有1M的大小,所以,那麼多手續費極低甚至免費的小額交易,擁擠在比特幣網路,必然會導致比特幣網路的擁堵,而粉塵攻擊最大的危害就是導致比特幣網路擁堵。

小白:免手續費?這怎麼可能!

大東:是的,如果按著傳統記賬方法,也就是轉賬數額大,需要的手續費就多。但是,比特幣的記賬方法不同,它是按照交易位元組數來收取手續費的。

小白:那怎樣才可以免手續費呢?這肯定需要條件的吧!

大東:不錯,在比特幣交易手續費的設計中,每一個交易都會分配一個優先順序,這個優先順序是由幣齡、交易的位元組數和交易的數量來決定的,交易數量越大、幣齡(這些幣在區塊中存在的時間)越高優先順序就越高,就越有機會免交易手續費。如果你需要大量的小額比特幣轉賬,又想免費轉出,這時候你可以加一個數額大的、幣齡高的比特幣金額,就會將平均優先順序提高,從而可以免費轉出比特幣。

小白:粉塵攻擊簡直魔鬼!用少量的代幣就可以將交易網路擁堵。真是用最少的錢干最厲害的事!

大東:粉塵攻擊的危害不僅如此,還記得剛開頭我說的粉塵攻擊可以竊取用戶的隱私嗎?

小白:主要通過什麼方式竊取呢?

大東:黑客們向用戶的錢包地址發送「粉塵」,一旦用戶使用這些「粉塵」,這些微小金額就和用戶未花費的的交易輸出(UTXO)混合在一起,黑客就可以追蹤用戶的錢包地址,以獲得用戶的身份,然後通過用戶隱私來威脅用戶。

小白:如果這些用戶不接受這些「粉塵」,這樣的話隱私也就不會被竊取了吧?

大東:事實證明,很多用戶根本不在意這些微小金額的「粉塵」,並極有可能以後將這些「粉塵」與UTXO混合在一起,這導致粉塵攻擊的成功率相當高。

小白:東哥,這個粉塵攻擊只能針對用戶未花費的的交易輸出(UTXO)嗎?

大東:沒錯,粉塵攻擊只針對UTXO模型的幣種進行,比特幣使用的交易模型就是UTXO模型。

小白:東哥,能不能詳細的講解一下上邊的竊取隱私的過程?

大東:舉個例子你就明白了,加入有個比特幣愛好者叫大黃,他在錢包的一個BTC地址上存了500 BTC,其它地址上還有一些較小數額的BTC,用來平時轉到交易所交易、購物等。

大黃HD錢包的快照(圖片來源於網路)

小白:那接下來UTXO是如何運作的?

大東:假如大黃要發送3.2 BTC到交易所,(UTXO-2) (UTXO-4)= 3.3 BTC將被發送。交易的找零(找零 = 實際發送的UTXO總和 -(實際發送需求 交易費))將會返回到大黃HD錢包里的全新地址上。比如交易費為0.005BTC,找零=3.3 -(3.2 0.005)=0.095 BTC將會被返回到大黃錢包新生產的地址-4中。

(圖片來源於網路)

小白:為什麼不選那個有500BTC的轉賬呢?

大東:只有最接近發送金額的UTXO會被選中發送。如果大黃想要交易的始終都是小數額的BTC,那麼500 BTC(UTXO-1)始終不會被花費,存儲500 BTC的地址-1不會被關聯到其他有UTXO被花費的地址。

小白:那粉塵攻擊是怎樣發揮作用的呢?

大東:假如有個叫小黑的人,盯上了大黃存有500 BTC的地址-1,想要找到大黃的真實身份,於是她往地址-1發了一筆粉塵交易(0.000005 BTC,通常一百聰以內的交易我們視為粉塵)。即使是粉塵,它也是一筆UTXO!

(圖片來源於網路)

小白:然後呢?

大東:如果大黃沒有察覺到粉塵交易,並繼續與交易所交易、購物、向朋友支付數字貨幣。只要粉塵UTXO-6沒有被選中發送,實際上沒有什麼大問題。可是不同的HD錢包是可以定義不同的UTXO排序規則的,一旦粉塵UTXO-6隨某筆交易被選中並廣播到區塊鏈,事情就不可小看了。

小白:如果粉塵被廣播到區塊鏈,會發生什麼嚴重的事情?

大東:假設粉塵UTXO-6和地址-2 的UTXO-3一起被選中發送到交易所,那麼小黑就能夠推斷,地址-1和地址-2的所有活動都是同一人(大黃)所為,然後小黑可以從地址-2在鏈上的所有歷史交易、訪問的商店、付款記錄、與交易所的交易記錄等信息中確認大黃的真實身份。

(圖片來源於網路)

小白:歸根結底這是利用了用戶不關心自己錢包出現的微小代幣心理,從而竊取用戶隱私。

大東:多年來,計算機科學家們奉獻大量的時間研究如何檢測和預防粉塵攻擊,各個研究成果具備不同程度性的有效性。

小白:快講講怎麼破解!

粉塵攻擊原理圖(圖片來源於網路)

三、應對粉塵攻擊

大東:一種方法為每筆交易使用不同的地址。每個BCH錢包都可以創建很多的地址,每個錢包上的餘額是輸入和UTXO的總和。這意味著你的2個BCH可以用1、0.5、0.25和0.25這樣的增量來表示,以得到總金額。如此一來輸入地址和輸出地址就已經混淆,割裂兩者的關係,在具體的使用過程中,一次交易可能包含多個輸入和輸出,輸入和輸出之間不再存在一對一的對應關係。

小白:這樣的話就沒有辦法通過「粉塵」追蹤用戶的資金流動從而獲取用戶的隱私了!

大東:只是這樣一來操作上有一定的複雜性,如今應用廣泛的混幣服務就是基於此原理的服務,只是大大簡化了用戶操作,用戶只需要點擊服務選項,即可一鍵混幣,後台會自動進行。

小白:有沒有比較簡單的方法?

大東:現在還有一種簡單的方法是將這些受到污染的粉塵金額標記並隔離起來。自交易初,用戶就能發現這些來路不明的小額資金,並且不去使用它,徹底隔離它。

小白:但是這種操作應該對用戶來說很難吧?畢竟很多用戶難以甄別攻擊,並且難以將他們與UTXO隔離開來。

大東:不錯,所以現在市面上很多錢包商提供服務允許你在隨機發送的幾「聰」BCH中添加描述或「標記」,你可以選擇不去理會這些粉塵,這樣粉塵攻擊就與未受污染的金額隔離開來。

參考文獻:

1.名詞解釋第六十講:粉塵攻擊http://www.sohu.com/a/260426663_100180371

2.粉塵攻擊(Dusting Attack)是什麼http://www.qukuaiwang.com.cn/news/14532.html

3.對抗粉塵攻擊--CashShuffle正在保護BCHer隱私https://www.360kuai.com/pc/9fd9d8028c0c82a2f?cota=4sign=360_57c3bbd1refer_scene=so_1

5.區塊鏈安全篇——關於粉塵攻擊的那些事兒

https://baijiahao.baidu.com/s?id=1650542008485859965wfr=spiderfor=pc

來源:中國科學院計算技術研究所

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 中科院之聲 的精彩文章:

樹木發芽物候的適應機制研究獲進展
東北黑土區切溝侵蝕過程研究獲進展