跳到正文

粉塵攻擊

粉塵攻擊會向選定地址傳送未經請求的低價值輸出或資產。轉帳本身不會洩露私鑰,但後續花費或互動可能暴露隱私或帶來網路釣魚風險。

更新於

僅供教育用途,不構成投資建議。未經請求的資產可能帶來隱私、網路釣魚和交易風險,且鏈上操作可能無法撤銷。

直接回答

粉塵攻擊會向選定地址傳送未經請求的低價值輸出或資產。在 UTXO 鏈上,攻擊者可能觀察錢包之後是否將這些輸出與其他幣一同花費,並利用該證據對地址進行分群。在帳戶型鏈上,陌生代幣或 NFT 更常見的用途是傳送垃圾訊息,或誘使使用者造訪網站、核准合約或複製欺騙性地址。

僅僅收到粉塵不會洩露助記詞、私鑰或簽署權限。風險來自之後發生的操作:自動選幣可能在 UTXO 之間建立公開連結,而點擊、簽署、核准、兌換或退回陌生資產則可能造成安全或隱私後果。

「粉塵」在 Bitcoin Core 中有更狹義的政策含義。GetDustThreshold 會估算按 dustRelayFee 花費一個輸出的成本是否高於該輸出的價值。結果取決於輸出指令碼和預期的花費輸入,因此不存在適用於每條鏈或每種輸出類型的統一粉塵金額。

中繼政策與共識屬於不同層次。標準節點可能依據本機政策拒絕中繼粉塵輸出,但已納入有效區塊的輸出仍屬於 UTXO 集;如果後續交易支付了可接受的手續費,它仍然可以被花費。

運作方式

比特幣交易將先前的輸出作為輸入花費,通常還會建立找零輸出。共同輸入所有權啟發式規則把一同花費的輸入視為由同一方控制的證據。攻擊者可以向多個已知或疑似地址傳送小額輸出、監控鏈上活動;如果之後某筆交易同時選用了這些輸出,就能強化其地址分群推斷。

這個結論是機率性的,而不是協定事實。CoinJoin 等協作交易會刻意讓不同參與者向同一筆交易提供輸入,託管方也可能為許多客戶建構交易。因此,一筆交易可能削弱或推翻該啟發式判斷;它不能證明每個輸入的法律所有者或現實身分。

帳戶型鏈不會以這種方式合併 UTXO。任何人仍可傳送原生貨幣、轉移代幣、鑄造 NFT,或讓合約發出誤導性事件。錢包或索引器可能顯示結果,但代幣名稱、符號、圖示或顯示餘額既不能驗證合約真偽,也不能證明其經濟價值。防禦時應關注使用者是否授權了任何後續呼叫、簽署或額度。

請採用以下應對流程:

  1. 不要僅僅為了讓陌生項目從介面消失,就點擊其中的網址、回覆、退回、兌換、銷毀或核准它。
  2. 在進行任何變更前,記錄鏈、交易雜湊、輸出索引或資產合約、傳送方、金額以及錢包顯示內容。
  3. 區分 UTXO、原生幣轉帳、代幣、NFT、核准或僅有事件記錄的情況;它們的狀態和處置方式各不相同。
  4. 對於 UTXO,應檢查選幣情況,並使用可信錢包的幣控制或鎖定功能,避免自動選中該輸出。在 Bitcoin Core 中,lockunspent 可以排除指定輸出;能否持久保留取決於所用選項。
  5. 對於帳戶型錢包,應儘可能隱藏垃圾資產,並在對其定價或採取任何操作前核驗鏈和完整合約地址。
  6. 如果已使用過某個網站、簽名或合約,應檢查實際簽署的資料和目前額度,透過可信介面撤銷危險權限;只有在金鑰洩露或持續授權確實需要時,才轉移剩餘資產。
  7. 從經過驗證的來源取得每個付款地址,並在可信顯示裝置上核對完整地址;交易歷史不是通訊錄。

範例

  • 一名使用者透過地址 A 接收公開捐款,並在地址 B 中存放儲蓄。觀察者已知 A 屬於該使用者,但不知道 B 由誰控制。
  • 攻擊者向 A 傳送 600 sats,也向 B 傳送 600 sats。之後,錢包在一筆支付 60,000 sats 加手續費的交易中,選用了 A 的 20,000 sats、B 的 50,000 sats 和兩個小額輸出。
  • 共同輸入模式為觀察者提供了 A 和 B 可能受同一方控制的證據,從而暴露與 B 相關的儲蓄歷史。但它仍不能從密碼學上證明一個人同時擁有這兩個地址。
  • 如果錢包支援幣控制,使用者可以改為標記並鎖定兩個 600 sats 輸出。凍結不會抹去交易;只要鎖定仍然有效,它就能阻止錢包自動選中這些輸出。

風險

  • 自動選幣把公開使用的地址與私人儲蓄地址連結起來。
  • 重複使用地址會讓後續分群更容易,並擴大可見的交易歷史。
  • 退回粉塵會證實接收方能夠花費目標輸出。
  • 使用者把機率性的分群誤認為確定的身分歸屬。
  • 錢包缺少幣控制功能,或暫時鎖定在重新啟動後失效。
  • 協作交易或託管交易產生錯誤的地址分群。
  • 陌生代幣名稱或 NFT 圖片包含網路釣魚目的地。
  • 使用者在嘗試領取、出售或隱藏垃圾資產時授予額度或簽署不透明資料。
  • 假冒代幣使用與公認資產相同的名稱或符號。
  • 索引器為未知合約定價,污染投資組合或會計報告。
  • 一筆微額交易植入相似地址,之後使用者從歷史記錄中複製該地址。
  • 事件應變過於倉促地轉移資金,並再次簽署惡意操作。

資金管理和會計系統應按鏈和合約地址識別同質化資產,而不能只看代號。未知資產預設不應定價;應將觀察到的事件與已確認的餘額變化分開,並要求審核後才能把新合約納入估值、路由或抵押品系統。

僅僅被動收到資產並不能證明錢包已經失陷。應根據實際權限或行為決定是否升級應變:未知簽名、額度、合約呼叫、裝置變更、復原短語洩露或未經授權的轉出交易,與未經請求的轉入記錄有實質區別。

常見誤解

  • 收到粉塵會自動盜走錢包資產。 轉入交易不會洩露私鑰;相關風險來自之後的花費或被誘導的互動。
  • 每個小額輸出都低於比特幣的粉塵門檻。 該門檻是一種中繼政策計算,會隨指令碼和手續費假設而變化;「粉塵攻擊」也被更廣泛地用於描述未經請求的低價值轉帳。
  • 移動或銷毀垃圾代幣總比忽略它安全。 任何操作都可能呼叫不可信合約、建立額度或暴露更多關聯。隱藏項目通常是互動更少的應對方式。
  • 一同使用的輸入必然屬於同一個人。 共同輸入所有權是一種有用的啟發式規則,但 CoinJoin 和託管方建構的交易是明確的反例。

相關主題

來源

導覽

搜尋知識庫...