鏈上交易被外界分析時,最先被鎖定的往往不是轉帳金額,而是「哪幾個輸入來自同一個錢包」這條清晰線索。傳統比特幣交易的結構特徵,長期以來為鏈上分析機構提供了高度可靠的追蹤依據,而 PayJoin 交易概念 的誕生,正是為了從底層打破這項沿用多年的分析假設。
一筆普通比特幣支付留下的鏈上足跡
在常規的比特幣網絡轉帳中,交易結構呈現出極高的一致性:輸入端挑選一個或數個未花費交易輸出(UTXO),輸出端則通常分為兩筆——一筆將約定款項轉至對方的地址,另一筆則作為找零返回自己的錢包。扣除給予礦工的手續費後,找零地址上的資金繼續靜候下一次調用。這套模式穩定高效,但其固有的數據幾何形狀也成為自動化追蹤演算法的最佳抓手。
追蹤破綻的核心在於找零機制。舉例來說,若要支付價值 0.008 BTC 的款項,錢包從可用資產中動用了一枚 0.05 BTC 的 UTXO,鏈上隨即產生 0.008 BTC 與約 0.042 BTC 兩個輸出端。區塊瀏覽器與鏈上分析工具能輕易藉由整數特徵、地址格式或金額對比,高概率識別出哪一個是商戶收款、哪一個是發起方的找零。更關鍵的是,分析系統會將這筆 0.05 BTC 的 UTXO 與發起方過往關聯的 UTXO 歸納至同一個實體標籤下。
這種推斷邏輯在鏈上分析領域被稱為共同輸入所有權假設(Common Input Ownership Heuristic)。它是各類錢包指紋標記、資金流向拓撲圖以及合規風險評分的基礎準則。只要一筆交易的所有輸入端被預設歸屬於同一人,分析網絡就能像滾雪球般拼湊出用戶的完整資產輪廓。
針對這項規則弱點,PayJoin 交易概念 提供了解決路徑。它不依賴外部混幣池,也不拆散重組面額,而是直接改寫單筆支付的協作構成,使「一筆交易的所有輸入必定屬於同一人」的先驗假設徹底失效,令自動化歸類演算法產生嚴重誤判。
PayJoin 的核心架構:收款方共同參與輸入
PayJoin 最初在開發者社群中被稱作 P2EP(Pay-to-Endpoint),其標準化規格由官方文件 BIP 78 正式確立。規範將其工作機制界定為「由收付雙方在結算過程中協同構建的一筆 CoinJoin 交易」。與傳統被動收款不同,收款方在交易成形前,會主動注入一個由自己控制的合規 UTXO,讓整筆交易的輸入端同時涵蓋交易雙方的獨立資產。
以具體數值拆解其資產流向:假設付款方需支付 0.008 BTC,動用了一枚 0.05 BTC 的輸入。在常規交易中,輸出為收款方 0.008 BTC 與付款方找零約 0.0419 BTC(扣除基本礦工費)。引入 PayJoin 後,收款方額外注入一枚價值 0.03 BTC 的 UTXO,並將原本屬於自己的輸出調整為 0.038 BTC。為了遵循 BIP 78 規範並保障付款方權益,因增加額外輸入而產生的增量礦工費,嚴格規定由收款方從其新增的輸出端中自行扣除吸收;付款方的找零金額與原本預計支出的手續費維持完全不變。

| 比對維度 | 常規支付交易 | PayJoin 交易 (BIP 78) |
|---|---|---|
| 輸入端來源 | 完全來自付款方單一實體 | 付款方與收款方共同提供 |
| 輸出端結構 | 典型兩筆:支付額與找零 | 典型兩筆,但金額已被混淆重構 |
| 找零識別特徵 | 規律明顯,易被規則演算法鎖定 | 失去傳統特徵,兩筆皆似找零 |
| 增量手續費負擔 | 付款方全額負擔 | 收款方自行由輸出端吸收 |
從比特幣全節點的共識視角來看,這筆交易完全符合共識協議。節點驗證的核心在於輸入總和大於等於輸出總和、簽名密碼學有效,並不會干預輸入來源背後由多少獨立主體控制。這使得 PayJoin 能在不改動比特幣底層協議的前提下平滑運行,完成一筆具有真實業務背景的結算。
鏈下雙向協商機制的運作流程
完成一次標準的 PayJoin 交易,依賴收付雙方錢包在鏈下展開的多階段數據交互。這套流程以 BIP 174 定義的部分簽名比特幣交易(PSBT)為基礎骨架,整體協商順序如下:
- 構建基礎交易草案:付款方錢包選定可用 UTXO,構建包含預定付款金額、收款地址與找零輸出的 PSBT。此階段該交易未經付款方正式簽名。
- 發送請求至端點:付款方將未簽名的 PSBT 透過安全通道發送至收款方提供的通信接口。
- 收款方追加輸入與重構輸出:收款方服務端校驗原始 PSBT 滿足清算要求後,從自主持有的錢包中調用一枚合規 UTXO 添入輸入端,同時將自身收款輸出額加上該輸入面額,並扣除因此增加的額外礦工費,確保付款方找零不受影響。
- 返回修訂版本:收款方將改動後、雙方皆未簽名的完整 PSBT 傳回付款方。
- 嚴格校驗與付款簽名:付款方錢包嚴格比對回傳數據:確認自身找零金額與地址未被竄改、收款方吸收了增量費率,確認無誤後對屬於自己的輸入端簽名,並交回給收款方。
- 最終補簽與全網廣播:收款方檢查付款方簽名無誤後,補上己方輸入端的簽名,組裝成完整交易並廣播至比特幣網絡入塊。
PSBT 的安全約束與責任轉移
PSBT 格式將「組裝交易」與「密碼學授權」實施邏輯解耦。任何一方若試圖在協商中惡意調高扣款金額、偷換找零地址,都會因破壞原始條件而導致後續驗證報警中斷。但這同時意味著,PayJoin 的核心安全保障高度依賴於客戶端錢包的嚴格驗證實作。若錢包軟體未嚴密校驗找零數額及手續費差值,發起方將面臨潛在的額外扣款風險。因此選擇經過廣泛同行審查的開源錢包是實踐該技術的前提。
鏈上私隱保護效能的深度評估
評估 PayJoin 的私隱價值,需要客觀拆解其能夠達成的混淆效果與無法防範的邊界局限。
一、徹底污染鏈上啟發式分析集群
共同輸入所有權假設被擊穿是 PayJoin 最顯著的戰術價值。一旦分析機構將這筆包含雙方資產的交易誤判為「同一人持有的錢包」,分析引擎就會將兩個原本無關的實體標籤錯誤合併。這類錯誤會順著資金流動鏈條持續傳播,產生連鎖污染效應,顯著削弱分析模型建立圖譜的置信度。
二、打破找零輸出與交易金額的特徵鏈
在常規鏈上結算中,找零輸出金額通常帶有明顯小數特徵,且支付金額可輕易與商戶訂單價目表相勾稽。在 PayJoin 重構後,收款方輸出金額融合了自身注資,鏈上呈現的數字不再等於真實訂單金額;兩個輸出端在外觀形態上均具備找零特徵,鏈上分析系統若要繼續跟蹤,就必須同時分支分析兩條鏈路,追蹤算力成本大幅提升。
雙贏的資產管理效益:
付款方藉由協作隱匿了真實支出與找零歸宿;收款方則巧妙地在一筆常規交易中整合、調度了錢包內的碎片 UTXO,既完成了日常零散資產整合,又掩飾了自身真實收款淨額,具備極高的鏈上經濟效益。
三、私隱邊界的明確防線
技術認知上必須釐清,PayJoin 並不能提供端到端的絕對匿名:
- 交易拓撲圖依舊公開:區塊確認時間、地址流向與鏈上關聯節點仍然對全網公開。
- 傳輸層元數據暴露風險:在 BIP 78 模式下,付款方需直接發起 HTTP 請求連接收款方端點。若未搭配 Tor 或 VPN 等網絡匿名工具,收款方或網絡嗅探者能夠記錄發起方的真實 IP 地址。
- 業務實體關聯:若付款方向中心化合規商戶下單,商戶資料庫內部記錄的真實身份憑證與訂單歷史,並不會因鏈上採用 PayJoin 而自動消除。
架構對比:PayJoin 與 CoinJoin 的本質分野
儘管兩者在名稱上容易混淆,且底層均利用了多方共同簽名技術,但在設計哲學與鏈上表現存在顯著差異:
CoinJoin(如歷史上的 Wasabi、Whirlpool 架構):屬於多方參與的非關聯資金洗牌協議。通常由協調器聚集數十甚至上百名互不相識的用戶,將資金切分為面額完全一致的標準化輸出(如固定 0.1 BTC),目的在於阻斷輸入與輸出之間的歷史血統關聯。其代價是交易體積龐大,鏈上指紋極為鮮明,極易被合規監控系統直接標記為「混幣交易」。
PayJoin:本質上是一筆具備真實商業結算背景的點對點合作交易。鏈上僅呈現兩組輸入與兩組輸出,外觀形態與普通比特幣轉帳極為相似,堪稱稀鬆平常。這種形態使其能自然混入全網數以百萬計的日常交易洪流中,達成不易被單獨檢索的隱蔽效果。

從同步到非同步:BIP 78 與 BIP 77 (V2) 的演進
在早期普及過程中,第一代 BIP 78 標準存在較高的實務門檻:收款方必須具備固定的公網 IP 或長駐後台服務,雙方錢包必須同時在線才能完成即時 PSBT 往返。這對 24 小時運轉的商戶伺服器不成問題,但大幅限制了個人移動端設備之間的使用頻率。
為了打破這一桎梏,社群推出了第二代非同步規範 BIP 77(Async Payjoin)。其核心改良在於引入了公用盲中繼(Blind Relay)機制:
- 離線異步構建:付款方可將 PSBT 加密後暫存於中繼服務器,收款方設備在重新連接網絡時非同步收取、注入輸入並返回簽名,消除了雙方必須同時在線的約束。
- 降低運維門檻:普通用戶無需自行配置動態域名或開放本地端口,移動錢包具備了原生支援該技術的實用基礎。
- 信任模型與元數據邊界:雖然中繼服務器採用端到端加密架構無法獲悉交易內容明文,但中繼節點依然可以獲取客戶端連線的時間戳與網絡來源 IP 等元數據。因此在威脅模型較高場景下,配合 Tor 代理路由發送仍是不可忽略的防護措施。
局限性、實務障礙與常見誤區
客觀評估一項私隱技術,必須充分認識其實施難點與操作陷阱:
- 收款端需具備可用 UTXO:收款方錢包內必須持有符合面額策略、非粉塵級別的合規 UTXO。若商戶或個人錢包處於全新狀態或內部資產已被清空,PayJoin 協商將因缺少可用輸入而自動中斷退回。
- 未廣播時段的鎖定狀態風險:當付款方簽署修訂版 PSBT 並交予收款方後,收款方已具備隨時補簽並廣播交易的全部要素。此時付款方切不可將對應 UTXO 視為未花費資產重複動用。合規錢包實作會在此時將對應輸入標記為「待確認鎖定狀態」,並設置交易超時作廢與替換(RBF)機制以防範惡意卡單。
- 請求標記的可識別性:收款方通常透過 BIP 21 協議的 URI 二維碼(如
bitcoin:address?amount=...&pj=https://...)向付款方展示其支援狀態。這意味著該特徵對於取得支付 URI 或二維碼的當事方是可見的。若商戶在公開網頁長期放置帶有固定pj參數的靜態收款碼,第三方可能藉此推斷該終端支援 PayJoin 協議。 - 地址重用會瓦解防護成果:若收款方長期向多個用戶重複提供同一個收款公鑰地址,鏈上分析系統仍能輕易以該地址為核心將各方交易鏈路串聯,使 PayJoin 創造的鏈上模糊效果毀於一旦。
生態現狀與落地實踐
伴隨開源基礎設施的成熟,PayJoin 的技術生態逐步擴展。BTCPay Server 官方已將其列為商戶端原生支援的結算功能,Bitfinex 等機構也曾在充值端探索整合以減少鏈上指紋。在個人錢包領域,包括 Sparrow Wallet、BlueWallet 在內的多款主流開源錢包,已在交易構建或 BIP 21 URI 解析中對該規範提供了支援。
值得強調的是,這項技術與其他前沿私隱方案呈現出良好的互補潛力。例如在理論設計上,針對收款地址重用問題的靜默支付(Silent Payments, BIP 352)著眼於隱匿接收端公鑰,而 PayJoin 專注於重構交易內部輸入拓撲。雖然二者的多重協同仍取決於錢包實作的演算法對齊,但這種多層次、可疊加的鏈上防御思路,為比特幣資產的自主託管提供了更具韌性的架構空間。
常見問題解答 (FAQ)
Q1:PayJoin 協商中途失敗會導致比特幣丟失嗎?
不會。在雙方正式簽名並將最終交易廣播至區塊鏈之前,資金始終安全停留在各自的原生地址中。若網絡超時、收款方未回覆或傳回的 PSBT 未通過付款方錢包驗證,協商會自動終止。多數錢包會優雅降級為傳統單向支付,付款方可自行決定是否繼續送出普通交易。
Q2:使用 PayJoin 會顯著增加交易手續費嗎?
對於付款方而言,手續費成本與普通交易完全一致。根據 BIP 78 規範,交易因收款方加入額外輸入與擴展輸出而產生的增量虛擬字節(vBytes)手續費,必須全額由收款方在自己的輸出中扣除承擔,不會轉嫁給付款發起者。
Q3:區塊鏈分析公司能否通過演算法識別出這是一筆 PayJoin 交易?
無法做到 100% 確定識別。因為標準的 PayJoin 交易在鏈上僅呈現為典型的「兩輸入、兩輸出」結構,在數據格式上與日常常見的合併轉帳完全相同。除非分析者同時掌握鏈下通訊元數據或獲取了附帶 pj 參數的付款發票,否則僅憑鏈上數據無法將其與常規雙輸入支付做精確切分區別。
Q4:要使用這項技術,付款方與收款方都必須使用相同的錢包嗎?
不需要。只要雙方所採用的錢包軟體或服務端均相容 BIP 78(或 BIP 77)通信協議規範,不同品牌的客戶端之間即可藉由標準化 PSBT 順暢協商完成結算。



