作者:Dan Gould
來源:https://payjoindevkit.org/2025/03/31/payjoin-probing-attacks/
以下內容是針對圍繞 Payjoin 的 UTXO 探測攻擊的最終解答,闡明瞭當前緩解措施的有效性,併為採用 Payjoin 提供了決定性的論據。Payjoin 作為基礎的交互式交易批處理協議,通過減小轉賬的實際大小來節省手續費,並通過干擾常用於監控區塊鏈的線索分析來增強隱私性。雖然探測攻擊在理論上存在,但實施成本高昂,在實踐中已得到緩解,並且不會對 Payjoin 的採用構成實質性障礙。
探測攻擊解析
在探測攻擊中,攻擊者先發起 payjoin,然後故意終止,以瞭解接收方錢包中的 UTXO。由於 Payjoin 接收方會向潛在的發送方回覆包含其 UTXO 的 payjoin 提議,因此發送方會了解到這些 UTXO 的信息。如果獲得 Payjoin 提議沒有成本,這種攻擊將為攻擊者提供他們原本無法獲得的關於接收方的新信息。
最早的 Payjoin 規範說明了處理這種攻擊的措施,詳見 BIP 79 和 BIP 78 中的相關章節。
當前的緩解措施
最低價值策略
最小价值策略設定了一個底價,只有當交易價值高於此底價時,接收方才會向發送方回覆包含其 UTXO 的 payjoin 提議。
最低費率
接收方可以選擇僅響應其 “回退交易(fallback transaction)” 的手續費率超過某個門檻的發送方。如果發送方中止交易,接收方可以廣播該回退交易,讓發送方損失為交易支付的手續費。
(譯者注:“回退交易” 是 payjoin 協議中的一個概念,指的是 payjoin 發起方第一次向接收者提供的、帶有發起方輸入的完整有效交易。)
最低轉賬金額
接收方可以選擇僅響應給自己的支付超過一定數值的回退交易的發送方。如果發送方中止交易,接收方可以廣播該回退交易,這將使發送方損失其轉賬金額外加手續費。
回退交易廣播
作為 Payjoin 接收方的支付處理商應該最關注探測攻擊,因為它們會自動響應創建 Payjoin 的請求。手動接收方需要為每次潛在的探測嘗試生成請求,這使得重複的攻擊請求不成問題,因為接收方必然會意識到許多次請求都是發起瞭然後又終止。
根據規範,作為 Payjoin 接收方的自動化支付處理商,如果在到期超時後未看到其 payjoin 交易被廣播,則必須廣播發送方的有效回退交易。這默認強制執行了最低中繼費率策略。
該機制也可以由手動的點對點接收方來實施,作為額外的預防措施。在經過適當的時間後(例如,在異步的 payjoin 會話過期後),可以手動或自動觸發回退交易的廣播。
輸入重放
自動化支付處理商在響應發送方的請求時,應基於回退交易的輸入來反饋己方的輸入;對相同的發送者輸入,總是反饋以相同的己方輸入。這樣可以確保實施上述緩解措施所設定的最低代價。
會話策略綁定
在異步 Payjoin 會話中,接收會話會跟用於請求它們的比特幣 URI 相綁定。接收方可以根據對發送方的信任程度,將特定策略綁定到該發送方的特定 URI 上。
反駁核心擔憂
觀點:探測攻擊沒有成本
事實:在回退交易被廣播的時候,攻擊者就必須支付手續費,還要冒給接收者支付最低價值的風險。
聲稱:當前的緩解措施無效
事實:正確的實施方案嚴格限制了信息洩露,並顯著提高了攻擊者的成本。目前尚無濫用探測攻擊的報告。
聲稱:攻擊者總是可以花費足夠的資源進行探測
事實:理論上,主動攻擊者無論如何都可以針對隱私進行攻擊(例如粉塵攻擊、女巫攻擊 ),但 Payjoin 迫使攻擊從被動(成本低廉、可擴展)轉變為主動(成本高昂、可被偵測)。
聲稱:為了安全應完全避免使用 Payjoin
事實:如果不使用 Payjoin,常規的資金整合過程中被動洩漏的信息,比遭遇探測攻擊時主動洩露的信息還要多。Payjoin 顯著減少了整體洩漏的信息量,即使對於那些尚未使用該協議的人也是如此。想象一個沒有 Payjoin 的世界:一旦你的 UTXO 被整合,給你發送過比特幣的人很可能會知曉你的其它UTXO。因為在沒有使用 Payjoin 時,“輸入來源同一性” 假設將成立。
聲稱:Payjoin 不允許你選擇 UTXO,而這本可以防止洩露
事實:Payjoin 是一種點對點的批處理機制。Payjoin 參與方可以根據本地標籤或任何其它偏好選擇使用任何 UTXO。然而,即便是完整的標籤信息本身,通常也不足以讓用戶保護其活動的隱私。UTXO 的選擇是一個與此無關的問題。
Payjoin 如何防止洩露
- 打破輸入來源同一性線索:打破了中本聰關於所有輸入均來自同一個發送方的假設。
- 干擾找零識別:使確定哪個輸出是支付、哪個是找零變得更加困難。
- 消除單獨的資金整合:接收方們會將收到的付款批量合併處理,這樣一來,打破線索分析的成本將比無所作為(從而洩露信息)還要低。
- 改善全局隱私:Payjoin 交易可以做到與非 Payjoin 交易別無二致,倍增了監控的難度。
邊緣案例與現實情境
理論上存在攻擊,尤其是在未遵循實現指南的情況下。這類情況屬於實現的問題,而非 Payjoin 協議本身的缺陷。“Payjoin 開發工具包(Payjoin Dev Kit)” 的指導能儘可能避免實施者的濫用。
雖然像粉塵攻擊這樣的微妙攻擊確實會發生在比特幣上,但大規模探測 Payjoin 的成本高昂,且在現實中也受到限制。
如何保護您的 Payjoin 實現
- 使用 Payjoin 開發工具包以默認遵循最佳實踐。
- 對於定製化的實現,請遵循本文中的 BIP 指南和緩解措施清單。
- 向 Payjoin 開發工具包團隊尋求幫助,以確保您的實現採取了適當的防護措施,例如請求持久性和回退交易廣播。
Payjoin 為何脫穎而出
Payjoin 帶來的經濟性和隱私性上的優勢遠遠超過了理論上探測攻擊的風險。它的採用有益於整個比特幣網絡,因為更高的 Payjoin 使用率甚至可以改善非 Payjoin 交易的隱私性。Payjoin 開發工具包整合了最佳實踐,以解決已知的探測攻擊問題,顯著改善了 Payjoin 接收方的處境。
(完)



