作者Ayahuasca (Accurate dosage)
看板DigiCurrency
標題Re: [閒聊] 不是很懂加密幣塵埃攻擊??
時間Thu Aug 22 00:19:50 2019
(借個標,前文恕刪,thx)
這陣子常看到粉塵攻擊的新聞,google到動區[1]跟Atomic wallet[2]的解釋
稍微理解比特幣系統跟以太坊還有我們一般人習慣的Account model不太一樣
Account model以這些文章的解釋就是每個帳戶有個餘額,我們就是對這餘額加加減減,
不管是1塊錢還是2塊錢,進來就是"溶"在一個總餘額中
而比特幣這類的UTXO(Unspent Transaction Output)模型,
則是錢堆的概念,1塊錢、2塊錢傳到一個錢包,不會立刻加總變成3塊錢,
而是在花掉之前仍然分兩堆堆著。
平常使用者用錢包感覺不到是因為錢包應用軟體都已經幫我們掃描鍊上資訊加總了
UTXO適合在避免雙花的架構下,在同一個區塊切分多組數量做傳輸
以我的理解可能是因為去中心化,新的區塊都要經過一些堆疊確認,很可能重組,
鏈上傳輸要避免雙花,勢必還要新增時間序列或是扣押等等程序增加系統複雜度?
---
但話說回來,這對我而言還是沒有解釋粉塵攻擊為什麼可以解匿名?
更進一步說,我們在比特幣區塊鏈瀏覽器上都看得到誰傳給誰多少,
還有很多解析全網金流的應用,明明超級公開的,何必動用粉塵來解匿名?
這問題困擾我一陣子,爬文爬半天看了很多高手回答還是看不懂,
觸動那種台上教授滔滔雄辯台下眾鴨如聽雷的痛。
我嘗試講一下自己對於粉塵攻擊的理解,請各位高手看看是否合理:
---
首先,現在很多用戶不管是用錢包還是交易所,
許多狀況下私鑰都是掌握在中心化的手上服務端手上
這些服務端可能會搭配數個較大的冷/熱主錢包收集貨幣,
利用合約定期或在特定條件下調用/收藏屬於使用者的入金錢包中的貨幣到主錢包
再用主錢包出金或保管
所以在Account model下,若沒有入侵交易所取得對照資料或是服務方根本沒有身分認證,
交易所跟某些錢包服務就像是一個天然的混合交易器匿名化輸入用戶跟輸出點的關聯
畢竟輸出後看到的都是XX cold wallet => 某某地址
但在比特幣這種UTXO model下,因為分了錢堆,所以有心者可以用特定的數字額標定
例如: 用戶A 用戶B 用戶C
原本有 3 5 4
輸入粉塵 0.123 0.223 0.333
↓ ↓ ↓
(系統自動轉入冷錢包 D)
冷錢包中 3, 0.123, 5, 0.223, 4, 0.333
(裡面一堆unspent,除了服務方資料庫,看不出是誰的)
當三個用戶都想轉出到自己的錢包保管時,
假設他們都看都不看就選了100%領出
區塊鏈上就會看到
D > E : 3 & 0.123
D > F : 5 & 0.223
D > G : 4 & 0.333
然後因為給了不同用戶特定的數額,所以就可以把A跟E連起來,以此類推
若是Account model只能看到 D > E : 3.123,就認不出來了,
因為說不定是其他用戶身上剛好有2+1.123
所以有心人士就可以拿著 A、E兩個地址,如果又剛好有A的郵件或電話,
就能去聯絡A,威脅曝光他想要的匿名途徑,或是騙他已經駭了交易所
這比直接攻擊交易所還容易一點
---
請問以上對於粉塵攻擊的理解算正確嗎? 謝謝回應~
[1]
https://www.blocktempo.com/transaction-of-eth-btc/
[2]
https://atomicwallet.io/bitcoin-dust-attack
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.253.133 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/DigiCurrency/M.1566404392.A.C6F.html
1F:→ DarkerDuck: 其實你的解釋有點反了,account model才是最沒隱私的 08/22 00:30
2F:→ DarkerDuck: 只要任何一個人轉錢給我,他之後的所有轉帳行為我都知 08/22 00:30
3F:→ DarkerDuck: 但用UTXO model就沒辦法,因為他只要這個錢堆花完 08/22 00:31
4F:→ DarkerDuck: 我就無法知道他下一個錢堆的事情了,那是另外一個地址 08/22 00:31
5F:→ DarkerDuck: 而用粉塵攻擊,可以把UTXO的隱私性弱化成account model 08/22 00:32
6F:推 DarkerDuck: 因為在預設狀態下,很多UTXO加密貨幣的錢包會從最小 08/22 00:33
7F:→ DarkerDuck: 金額的錢堆開始挑,因為這樣才能避免UTXOs set膨脹 08/22 00:33
8F:→ DarkerDuck: 所以對於一個被粉塵攻擊過後的錢包地址而言 08/22 00:34
9F:→ DarkerDuck: 他下一次的轉帳很有可能就會把所有地址的粉塵一次轉出 08/22 00:34
10F:→ DarkerDuck: 那這樣不就變成跟account一樣知道這個錢包下面的 08/22 00:35
11F:→ DarkerDuck: "所有"地址 08/22 00:35
12F:→ DarkerDuck: 而UTXO錢包慣用的,每收一次錢就產生新地址的手段 08/22 00:36
13F:→ DarkerDuck: 就無法再達到一定保護隱私的目的 08/22 00:36
14F:→ Ayahuasca: 哇!感謝版主很快回應! 對,關於"之後所有轉帳行為都 08/22 00:49
15F:→ Ayahuasca: 知道"這點,實在是不太能理解...因為我即使不用轉錢給 08/22 00:49
16F:→ Ayahuasca: 任何人,也可以在Scan類的服務看到所有的來往 08/22 00:50
17F:→ Ayahuasca: 好像不需要轉帳 這部分有沒有什麼更容易的解釋呢? 08/22 00:50
18F:→ Ayahuasca: 原來UTXO其實預設是每收一次錢產生新地址...我一直 08/22 00:53
19F:→ Ayahuasca: 以為地址是配私鑰固定的說 Orz 08/22 00:53
20F:推 DarkerDuck: 我的意思是我透過交易行為知道這個人是誰 08/22 00:58
21F:→ DarkerDuck: 那他之後只要繼續用那個account,他的交易隱私全沒了 08/22 00:58
22F:→ DarkerDuck: 但用UTXO model的錢包沒有這個問題 08/22 00:59
23F:→ DarkerDuck: 因為他後來收的錢和交易行為可能在新地址進行了 08/22 00:59
24F:推 ssd860505da: 每次看到塵埃攻擊都讓我聯想到: 08/22 01:08
25F:→ ssd860505da: 星塵遠征軍出埃及,替身攻擊!!!Ora! 08/22 01:08
26F:推 bvckk: 原來是替身攻擊!?(歪樓中) 08/22 01:51
27F:→ comment: 小明曾公開A位址 發現小明的B位址(+A粉塵)的支付行為 08/22 02:27
28F:→ comment: 雖然小明沒有公開B位址 但仍將小明與後續支付行為做連結 08/22 02:29
29F:→ Ayahuasca: 嗯....我再思索一下....><” 08/22 08:27
※ 編輯: Ayahuasca (36.229.225.55 臺灣), 08/22/2019 22:16:10
31F:→ Ayahuasca: 找到一篇參考資料,感覺有懂一點點... 08/22 22:16
32F:推 ECZEMA: 感謝深入 08/22 23:48
33F:→ ECZEMA: 404 Not Found (咦? 08/22 23:50
34F:推 Ayukawayen: 粉塵攻擊就像放一枚墨水硬幣到你的零錢包,然後你下次 08/23 00:24
35F:→ Ayukawayen: 付帳要把這枚硬幣花掉的時候,一起付出去的鈔票就會沾 08/23 00:26
36F:→ Ayukawayen: 上墨水 08/23 00:26
37F:→ Ayahuasca: 阿結果我上面打錯網址 08/23 16:40