比特幣隱私保護技術演進時間線:從 CoinJoin 到 Schnorr/Taproot 的密碼學進展

以時間線形式系統性分析比特幣隱私保護技術的發展脈絡,從 2011 年的 Chaumian CoinJoin 到 2021 年的 Schnorr/Taproot 軟分叉。深入探討每項技術的密碼學原理,包括盲簽名、Pedersen 承諾、HTLC、PTLC、MuSig 聚合簽名和 MAST 結構。涵蓋 Chaumian CoinJoin、BIP-47、JoinMarket、Confidential Transactions、閃電網路、Schnorr/Taproot 和 Ark vUTXO 的完整技術分析。

比特幣隱私保護技術演進時間線:從 CoinJoin 到 Schnorr/Taproot 的密碼學進展

概述

比特幣的隱私保護並非單一技術的成果,而是多層次、多階段密碼學技術演進的累積結果。從 2011 年的 Chaumian CoinJoin 到 2021 年的 Schnorr/Taproot 軟分叉,比特幣社群持續在嚴格的設計約束下(不引入可信第三方的前提下)提升網路的隱私特性。本篇文章以時間線形式,系統性地分析比特幣隱私保護技術的發展脈絡,從密碼學基礎理論出發,深入探討每項技術的創新貢獻、密碼學原理、安全假設與實際部署挑戰。

理解比特幣隱私技術的演進,不僅有助於評估不同隱私方案的強度,更能揭示比特幣設計哲學中「抗審查」與「去中心化」之間的微妙平衡。

密碼學基礎:為何比特幣需要隱私保護

比特幣的偽匿名性

比特幣常被描述為「偽匿名」(Pseudonymous)系統,而非真正的匿名系統。比特幣交易之間存在可追蹤的連結關係,因為所有交易都在公開的區塊鏈上可見。每一筆交易的輸入(消費的 UTXO)和輸出(產生的 UTXO)都是公開可見的,這意味著只要能將比特幣位址與真實身份建立關聯,整個資金流向就可以被追蹤。

鏈上分析(On-Chain Analysis)公司如 Chainalysis、Elliptic 和 TRM Labs 利用以下技術進行追蹤:

追蹤技術分類:

1. 輸入輸出分析(I/O Graph Analysis)
   - 識別同一交易中的多個輸入(同一實體控制)
   - 追蹤資金從交易所到目的地的完整流向

2. 聚類分析(Clustering)
   - 共同花費分析(Common Spending Heuristic):
     若地址 A 和地址 B 同時作為同一交易的輸入,
     則 A 和 B 很可能由同一實體控制
   - 錢包指紋識別(Wallet Fingerprinting):
     根據交易結構識別錢包軟體(如 Bitcoin Core、
     Electrum、WasabiWallet)

3. 網路層追蹤(Network Layer deanonymization)
   - IP 地址與交易的關聯
   - 節點連接模式的指紋識別

4. 交易所 KYC 關聯
   - 將比特幣位址與銀行帳戶關聯
   - 通過 OTC 平台反轉追蹤

比特幣偽匿名性的根本原因在於:區塊鏈共識要求所有節點驗證交易的合法性,因此交易必須是公開可見的。這與零知識證明(ZKP)等密碼學工具的理想應用場景(完全私密)形成根本張力。

隱私的三個維度

比特幣隱私問題通常從三個維度分析:

交易隱私(Transaction Privacy):隱藏特定比特幣交易的存在性、金額和參與方。挑戰在於:區塊鏈共識要求交易驗證,而驗證需要交易資訊。

身份隱私(Identity Privacy):隱藏比特幣位址背後的真實身份。挑戰在於:任何與比特幣位址互動的線上/線下活動都可能暴露身份。

金額隱私(Amount Privacy):隱藏比特幣交易的金額。挑戰在於:UTXO 的金額必須在鏈上可見才能驗證。

這三個維度的隱私需求相互交織,例如:隱藏金額往往需要在多個交易之間進行複雜的密碼學操作,而這些操作又會暴露身份線索。

第一階段:基礎混淆機制(2011-2013)

Chaumian CoinJoin(2011)

比特幣隱私技術的第一個重要里程碑是 Chaumian CoinJoin,由比特幣核心開發者 Greg Maxwell 於 2011 年提出,名稱源於密碼學家 David Chaum 的盲簽名(Blind Signature)技術。

David Chaum 的盲簽名基礎

在傳統數位簽名中,簽名者可以看到他所簽署的消息內容。盲簽名則允許消息的持有者在不透露消息內容的情況下獲得有效簽名:

盲簽名協議:

設:
- M: 原始消息
- r: 盲化因子(blinding factor),由消息持有者選擇
- H(): 哈希函數
- (d, n): 簽名者的私鑰/模數
- (e, n): 簽名者的公鑰/指數

盲化階段:
1. 消息持有者計算盲化消息: M' = H(M) × r^e mod n
   (乘以 r^e 使得簽名者在盲空間中簽名)

簽名階段:
2. 簽名者計算: s' = (M')^d mod n
3. 簽名者將 s' 返回給消息持有者(不知道 M)

去盲化階段:
4. 消息持有者計算: s = s' × r^(-1) mod n
5. 驗證: s^e = H(M) mod n ✓

特性:簽名者不知道 M,但簽名可被任何人驗證

Chaumian CoinJoin 的密碼學機制

Chaumian CoinJoin 利用盲簽名實現無需信任協調者的交易混合:

協議流程:

1. 參與者註冊
   - Alice、Bob、Carol 各自連接到協調者
   - 每個參與者提交自己的輸入位址和期望的輸出位址

2. 盲簽名階段
   - 協調者對每個參與者的輸入(經過盲化)進行盲簽名
   - 協調者不知道輸入和輸出的對應關係
   - 參與者收到盲簽名後,去盲化得到有效的簽名預備

3. 交易構造
   - 協調者將所有盲化後的輸入合併為一個 CoinJoin 交易
   - 協調者將所有輸出(盲化後)加入交易
   - 協調者將交易提議返回給所有參與者

4. 簽名廣播
   - 每個參與者驗證交易:自己的輸入和輸出都在交易中
   - 每個參與者對整個交易簽名(而非自己的部分)
   - 協調者收集簽名後廣播交易

安全特性:
- 協調者不知道哪些輸出對應哪些輸入
- 協調者不能構造虛假輸出(需要參與者本人的簽名)
- 任何單一參與者都不能挾持交易(需要所有參與者簽名)

盲簽名確保協調者在整個過程中不知道輸入到輸出的映射關係,這是 Chaumian CoinJoin 的核心創新。然而,該方案需要一個活躍的協調者,且協調者知道所有參與者的 IP 地址(通訊層面的隱私泄露)。

實際部署:WasabiWallet(2018 年推出)實現了 Chaumian CoinJoin 的現代版本,使用 Chaumian CoinJoin 時鐘(Chaumian CoinJoin Coordinator)來管理混合過程,並採用洋蔥路由(Tor)隱藏 IP 地址。

隱私地址(Puzzle Payment)

2012 年,Justin Newton 和 Kevin Su提出的「Puzzle Payment」(後來成為比特幣 BIP-47 的基礎)是一種一次性隱私位址生成方案。該方案允許付款方在區塊鏈上向同一接收方多次付款,而不讓外部觀察者察覺這些付款的關聯性。

BIP-47 的密碼學基礎

BIP-47 使用 ECDH(橢圓曲線 Diffie-Hellman)密鑰交換生成一次性位址:

金鑰建立:
- Alice 的靜態私鑰: a(公鑰: A = a × G)
- Alice 的通知金鑰: n(公鑰: N = n × G,用於通知訊息)
- Bob 的靜態私鑰: b(公鑰: B = b × G)

每次付款前,Alice 計算共享金鑰:
- Alice 使用 Bob 的通知公鑰 N:
  shared_1 = a × N = a × (n × G) = (a × n) × G
- Alice 生成新的子私鑰: payment_code = a × N + offset

- Bob 的計算(從通知公鑰 A):
  shared_2 = n × A = n × (a × G) = (n × a) × G
  - Bob 從 shared_2 推導出相同的 offset
  - Bob 推導出相同的子公鑰: P = shared_2 + offset_base = a × n × G + offset

結果:Alice 和 Bob 各自計算出相同的輸出位址位址 = P 的哈希

區塊鏈上:
- 通知交易(Notification Transaction):
  從 Alice 到 Bob 的通知公鑰位址
  包含 Alice 的支付代碼(可重複使用)
  該交易是唯一與 Bob 直接關聯的交易

- 實際付款交易(Payment Transaction):
  從 Alice 的某 UTXO 到 P 的哈希位址
  區塊鏈上無從得知這筆交易與 Alice-Bob 有關
  每次付款使用不同的 P 位址(一次性)

BIP-47 的主要限制是需要一個「通知交易」來建立支付關係,而這個通知交易會成為可追蹤的弱點。2015 年提出的 BIP-47 改進提案試圖解決此問題,但仍未能完全消除所有可追蹤性。

第二階段:基礎混淆協議(2013-2016)

JoinMarket(2013)

JoinMarket 由反洗錢研究者 Chris Belcher(化名)於 2013 年設計,2015 年正式上線,是比特幣隱私協議的第二代演進。與 Chaumian CoinJoin 不同,JoinMarket 引入了經濟激勵機制,吸引比特幣持有者作為「流動性提供者」參與混合。

JoinMarket 的經濟模型

JoinMarket 參與者:

1. Maker(流動性提供者)
   - 將比特幣鎖定在JoinMarket合約中
   - 等待Taker下單
   - 收取費用(通常為交易額的 0.001% - 0.1%)
   - 承擔時間風險(比特幣價格波動)

2. Taker(隱私需求者)
   - 支付費用以獲得隱私保護
   - 選擇參與的CoinJoin集(CoinJoin Set)
   - 控制CoinJoin交易的結構

JoinMarket 合約地址(FBF1 格式):
OP_DUP OP_HASH160 <Maker_PubKeyHash> OP_EQUAL
OP_IF
    # 願望集(wishlist):Maker 願意混合的輸出
    # Maker 從願望集中選擇,確保有足夠的UTXO
OP_ELSE
    # Maker 的輸入UTXO
    <Input_Script>
OP_ENDIF

與 Chaumian CoinJoin 的關鍵差異

特性Chaumian CoinJoinJoinMarket
協調機制盲簽名願望集(Wishlist)+ 費用競價
參與激勵無(純粹隱私)Maker 收取費用
隱私強度強(協調者無映射)中(依賴Maker誠信)
可擴展性低(協調者瓶頸)高(市場機制)
失敗模式協調者離線無足夠Maker

零幣(Zerocoin)與零知識證明的早期探索

2013 年,約翰霍普金斯大學的密碼學研究團隊提出了 Zerocoin 協議,這是將零知識證明(ZKP)引入比特幣相關系統的首次重要嘗試。Zerocoin 並非對比特幣的修改,而是一種獨立的加密貨幣協議,其目標是在比特幣區塊鏈之上提供強隱私保證。

Zerocoin 的密碼學基礎

Zerocoin 的核心思想是將比特幣轉換為「匿名模式」的 Zerocoin,再轉換回比特幣:

Zerocoin 承諾(Commitment):

設:
- q: 安全參數(通常為 256 位元)
- G, H: 橢圓曲線上的生成元
- r: 隨機性(blinding factor)
- S: 序列號(serial number),唯一標識此 Zerocoin
- v: 面值(denomination,固定面值如 1 ZC)

承諾計算:
C = g^r × h^v × s^S mod n

其中:
- g, h, s: 公共參考字串(CRS, Common Reference String)
- r: 攻擊者未知
- v, S: 攻擊者未知

零知識證明(用於 mint):
π = ZKProve{ (r, v, S): C = g^r × h^v × s^S }

驗證(無需知道 r, v, S):
Verify(C, π) → accept/reject

Zerocoin 的重大缺陷在於其計算成本極高——每次匿名化操作需要消耗數十秒到數分鐘的計算時間,且證明大小達到數十 KB。這使得 Zerocoin 從未真正實用化,並最終演變為 Zcash(一個獨立的區塊鏈,而非比特幣的擴展)。

Confidential Transactions(機密交易)

2015 年,Blockstream 首席科學家 Gregory Maxwell 提出了 Confidential Transactions(CT),這是比特幣隱私保護技術的又一重要突破。CT 利用承諾方案(Commitment Scheme)和Pedersen 承諾隱藏交易金額。

Pedersen 承諾的密碼學原理

Pedersen 承諾:

設:
- G, H: 橢圓曲線上的生成元(獨立,無已知離散對數關係)
- x: 承諾值(通常為交易金額)
- r: 隨機盲化因子

承諾計算:
C = x × G + r × H

性質:
1. 隱藏性(Hiding):
   - 給定 C,無法從中得知 x
   - 因為存在多個合法的 (x, r) 對:若 (x, r) 滿足,則
     (x', r') = (x + Δ, r - Δ × (G/H)) 也滿足

2. 約束性(Binding):
   - 承諾者無法將承諾打開為不同的 x'
   - 若嘗試改變 x,必須改變 r
   - 但攻擊者可以選擇 (x, r) 使得 C 相同 → 約束性依賴離散對數困難性

3. 同態加法(Homomorphic Addition):
   - C(x1, r1) + C(x2, r2) = C(x1 + x2, r1 + r2)
   - 這使得範圍證明(Range Proof)成為可能

CT 與比特幣的整合存在一個根本性問題:比特幣的共識規則要求交易輸出金額必須被所有節點驗證,而 CT 的金額是加密的。解決方案是使用防彈證明(Bulletproofs)或 zkSNARKs 等零知識證明系統來證明加密金額在有效範圍內(如 0 到 2^32),但這需要軟分叉或擴展區塊。

實際部署:Elements 側鏈(Blockstream 發起)和Liquid 側鏈實現了 Confidential Transactions,但比特幣主鏈至今未整合 CT(主要因為需要軟分叉和範圍證明的計算開銷)。

第三階段:閃電網路與 Layer 2 隱私(2016-2019)

閃電網路的隱私特性

閃電網路(Lightning Network)於 2016 年由 Joseph Poon 和 Tadge Dryja 在白皮書中提出,並於 2017-2018 年逐步部署。閃電網路並非比特幣 Layer 1 的隱私方案,而是一種 Layer 2 擴展方案,其隱私特性與 Layer 1 有根本性差異。

閃電網路的隱私模型

Layer 1 vs Layer 2 隱私模型:

Layer 1(比特幣主鏈):
- 所有交易公開可見
- UTXO 模型允許精確追蹤
- 區塊瀏覽器可見完整資金流向

Layer 2(閃電網路):
- 通道開啟/關閉交易在 Layer 1 可見
- 通道內的微支付不在 Layer 1 記錄
- HTLC 的時間鎖和哈希鎖提供支付混淆
- 路由節點只知道相鄰節點的資訊

HTLC 路由混淆機制:
- Alice → Bob → Carol → Dave
  - Alice只知道: Alice→Bob
  - Bob只知道: Alice→Bob, Bob→Carol
  - Carol只知道: Bob→Carol, Carol→Dave
  - Dave只知道: Carol→Dave
  - 無任何單一節點知道完整支付路徑

閃電網路的隱私優勢在於:路由節點無法確定支付的發送方和接收方。一個節點只知道它的上一跳和下一跳節點,無法將整個支付路徑與發送方或接收方身份關聯。

然而,閃電網路也有隱私弱點:

  1. 時間關聯攻擊:若節點同時作為某支付的接收方和另一支付的發送方,時間上的接近可能暴露路徑。
  2. 流動性指紋:通道容量和流動性分佈可能成為識別特定節點的指紋。
  3. 路由端點分析:當支付的最後一跳到達比特幣 Layer 1 地址時,該地址可能暴露接收方身份。

PTLC(Point Time-Locked Contracts)

PTLC 是閃電網路的改進提案,將 HTLC 的「哈希鎖」替換為「點鎖」(Point Lock)。PTLC 的主要隱私優勢在於:不同的 HTLC 使用不同的哈希值作為識別符,而 PTLC 使用不同的離散對數點作為識別符。

HTLC vs PTLC 識別符:

HTLC 識別符:h = H(s)
- 所有路由節點使用相同的 h 識別 HTLC
- 若同一 h 被多次使用,可能暴露支付關聯

PTLC 識別符:P_i = a_i × G
- 每個 PTLC 使用不同的隨機點 P_i
- 路由節點無法識別不同的 PTLC 是否屬於同一支付
- 使用離散對數原像的線性組合驗證

PTLC 的部署需要 Schnorr 簽名(已通過 Taproot 軟分叉在比特幣上實現),這使得 PTLC 成為 Taproot 時代閃電網路隱私的重要升級方向。

第四階段:Schnorr/Taproot 革命(2020-2021)

Schnorr 簽名的密碼學基礎

比特幣自 2009 年起一直使用 ECDSA(橢圓曲線數位簽名算法)作為簽名機制。2021 年 11 月的 Taproot 軟分叉升級引入了 Schnorr 簽名,這是比特幣十年來最重要的密碼學升級之一。

ECDSA 簽名

ECDSA 簽名的基本流程:

ECDSA 簽名算法:

輸入:消息 m、私鑰 d、橢圓曲線參數
輸出:簽名 (r, s)

1. 計算消息哈希: e = H(m) mod n

2. 選擇隨機 nonce k(臨機值)
   安全性要求:k 必須完全隨機,不可重用
   (k 重用會導致私鑰泄露:d = (s1 - s2)^(-1) × (e1 + r × d) mod n)
   ECDSA 的 RNG 弱點歷史上導致多次金鑰泄露

3. 計算 R = k × G = (x_R, y_R)
   - 若 x_R = 0 mod n,重新選擇 k
   - r = x_R mod n

4. 計算 s = k^(-1) × (e + r × d) mod n
   - 若 s = 0,重新選擇 k

驗證:
- u1 = e × s^(-1) mod n
- u2 = r × s^(-1) mod n
- 驗證: u1 × G + u2 × Q = (x_R', y_R')
  其中 Q = d × G(公鑰)
- 若 x_R' = x_R mod n,則簽名有效

Schnorr 簽名

Schnorr 簽名於 1991 年由 Claus Schnorr 申請專利(2008 年到期),其數學安全性於 1996 年得到證明。Schnorr 簽名相較於 ECDSA 具有以下優勢:

Schnorr 簽名算法:

輸入:消息 m、私鑰 d、橢圓曲線參數
輸出:簽名 (R, s)

1. 選擇隨機 nonce k
   R = k × G

2. 計算挑戰 e = H(R || m) mod n
   注意:挑戰包含完整的 R(而非僅 x_R),這使得攻擊者
   無法操縱 R 的選擇(與 ECDSA 不同)

3. 計算回應 s = k + e × d mod n

簽名:(R, s)

驗證:
- 計算 e' = H(R || m) mod n
- 驗證: s × G = R + e' × Q
  其中 Q = d × G(公鑰)
  推導: s × G = (k + e × d) × G = k × G + e × d × G = R + e × Q ✓

安全性證明(Fedora 1996):
Schnorr 簽名的安全性可歸約為離散對數問題
存在性不可偽造(Existential Unforgeability)在大隨機預言機模型下可證明

Schnorr 簽名的關鍵密碼學優勢

特性ECDSASchnorr
安全性證明部分(有條件)完整(在大隨機預言機模型)
Nonce 要求需謹慎管理(有側信道風險)側信道抵抗性更強
線性組合不支持(簽名不可疊加)支持(簽名可線性組合)
金鑰竊取風險k 重用導致私鑰泄露k 重用仍泄露私鑰但更難構造
延遲攻擊可能的(Through malleability)不可能

Schnorr 多重簽名的密碼學突破

Schnorr 簽名最重要的實際應用是其線性組合特性。多個簽名可以被「聚合」成一個簽名,而驗證者仍然可以確認所有簽名都來自合法的私鑰持有者。

Schnorr 聚合簽名(MuSig):

假設有 n 個簽名者,各自持有私鑰 d_i 和公鑰 P_i

MuSig 協議:

1. 所有人計算聚合公鑰:
   P_agg = H_L(P_1, ..., P_n) × P_1 + ... + H_L(P_1, ..., P_n) × P_n
   其中 H_L 是金鑰線性化哈希函數
   這使得攻擊者無法在聚合公鑰中置換其他人的公鑰

2. 每個簽名者選擇隨機 nonce r_i
   R_i = r_i × G
   交換 R_i,計算 R = Σ R_i

3. 每個簽名者計算挑戰:
   e = H(R || m) mod n

4. 每個簽名者計算部分簽名:
   s_i = r_i + e × H_L(P_1, ..., P_n) × d_i mod n

5. 聚合簽名:
   s = Σ s_i = Σ (r_i + e × H_L(...) × d_i)
     = (Σ r_i) + e × H_L(...) × (Σ d_i)
     = r + e × d_agg
   其中 r = Σ r_i, d_agg = Σ d_i

驗證者只需驗證:
   s × G = R + e × P_agg ✓

區塊鏈上的表現:
- ECDSA 多重簽名(2-of-3):
  交易見證資料需要 2 個完整的 ECDSA 簽名
  大小: ~196 位元組(隨簽名長度變化)

- Schnorr 聚合簽名(2-of-3):
  交易見證資料只需要 1 個 Schnorr 簽名
  大小: ~64 位元組(固定)
  鏈上無法區分 2-of-3 和 1-of-1 簽名

MuSig 的隱私優勢是革命性的:無論是 1-of-1、2-of-3 還是 100-of-100 的多簽名設置,在區塊鏈上都表現為相同的 64 位元組簽名。這意味著外部觀察者無法從區塊鏈資料中確定以下資訊:

  1. 這是單簽名還是多重簽名交易?
  2. 如果是多簽名,門檻是多少(m-of-n 中的 m 和 n)?
  3. 哪些公鑰是參與者?

Taproot:Merkle 樹與 MAST 的整合

Taproot 是比特幣 2021 年 11 月的軟分叉升級(BIP-341、BIP-342),將 Schnorr 簽名、Merkle 樹和 MAST(Merkelized Abstract Syntax Tree)整合為一個統一的架構。

Taproot 的核心結構

Taproot 位址(P2TR - Pay to Taproot):

位址構造流程:

1. 定義內部金鑰(Internal Key):
   - 通常是一個 2-of-2 Schnorr 聚合簽名(雙方的 MuSig 公鑰)
   - 或單一的 Schnorr 公鑰

2. 定義腳本分支(Merkle Tree):
   每個葉節點是一個腳本條件:
   - 腳本 1: 2-of-2 多重簽名(合作關閉)
   - 腳本 2: 時間鎖延遲(CVTC - csv-value-time-lock)
   - 腳本 3: 哈希原像揭示(HTLC)
   
   構造 Merkle 樹(自底向上):
   - 葉節點哈希: H_Leaf(script)
   - 內部節點哈希: H_Internal(left, right) = H(0x00 || left || right)
   - Merkle 根: 最終的樹根 R

3. 計算 Taproot 輸出公鑰:
   Q = P + R × G
   其中 P = 內部公鑰
   其中 R = Merkle 根哈希

4. 位址(Bech32m 編碼):
   bc1p + Bech32m(Q)

花費方式:

路徑 A - 主要路徑(Key Path):
- 使用 Schnorr 簽名直接花費
- 只需提供: 簽名 (R, s)
- Q = P + R × G 已知,驗證: s × G = R + H(Q || R) × P
- 區塊鏈上看不到任何腳本資訊

路徑 B - 替代路徑(Script Path):
- 揭示完整的腳本路徑
- 提供: 腳本、相關見證數據、Merkle 證明
- 驗證者重建 Merkle 路徑並確認腳本滿足執行條件

Taproot 的隱私優勢分析

Taproot 將三種完全不同的花費條件整合為單一公鑰形式,這帶來前所未有的隱私特性:

隱私特性量化分析:

場景 1:普通單簽名交易
- 比特幣網路中約 80% 的交易為單簽名
- Taproot 前: 見證包含公鑰和簽名(約 107 位元組)
- Taproot 後: 見證僅包含 Schnorr 簽名(約 64 位元組)
- 節省約 40% 的見證空間

場景 2:閃電網路合作關閉
- 閃電網路通道關閉時,雙方通常合作簽名
- Taproot 前: 2-of-2 多簽名交易(見證約 250-300 位元組)
- Taproot 後: 合作關閉使用 key path,見證約 64 位元組
- 外部觀察者完全無法區分這是單簽名還是閃電網路關閉

場景 3:DLC 離散對數合約
- Taproot 前: DLC 需要獨立的交易輸出和花費腳本
- Taproot 後: DLC 的所有 CET(合約執行交易)承諾在 Taproot 中
- Oracle 簽名觸發對應腳本,外部觀察者不知道具體哪個腳本被執行
- 隱私強度大幅提升

場景 4:多簽名設置
- Taproot 前: 2-of-3 與 3-of-5 在區塊鏈上結構不同
- Taproot 後: 任意門檻的多簽名都表現為相同的 64 位元組 Schnorr 簽名
- 門檻值 m 和 n 完全隱藏

PayJoin(P2EP)的進化

PayJoin(又稱 P2EP - Pay to Endpoint Protocol)是比特幣隱私協議的重要演進,於 2019 年由 Adam Gibson 提出。PayJoin 的核心創新是讓交易的双方向(發送方和接收方)共同提供輸入,從而打破「同一交易的所有輸入由同一實體控制」的經典鏈上分析假設。

PayJoin 協議流程:

傳統交易(打破共同花費假設):
- Alice 向 Bob 支付 1 BTC
- Alice 的錢包構造交易:
  輸入: Alice_UTXO_1 (3 BTC), Alice_UTXO_2 (2 BTC)
  輸出: Bob (1 BTC), Alice_找零 (4 BTC)
  觀察者結論: Alice_UTXO_1 和 Alice_UTXO_2 屬於同一實體 ✓

PayJoin 交易(隱藏交易方向):
- Alice 向 Bob 支付 1 BTC,Bob 的網站同時參與
- Alice 的錢包構造交易:
  輸入: Alice_UTXO_1 (3 BTC), Bob_UTXO (0.5 BTC) ← Bob 參與!
  輸出: Bob (1.5 BTC), Alice_找零 (2 BTC)
- 觀察者結論: Alice 和 Bob 可能共同控制了這些 UTXO?
  → 交易方向完全模糊 ✓

密碼學安全性:
- Alice 和 Bob 需要即時通訊協調交易構造
- Bob 的 UTXO 必須在交易完成前保持有效(未花費)
- 需要 TLS 或洋蔥路由保護通訊
- 任何一方都不能挾持對方的資金

PayJoin 的隱私效果在於:它同時混淆了資金流向和交易金額——觀察者無法確定是 Alice 向 Bob 支付,還是 Bob 向 Alice 支付,甚至無法確定這是否是一筆有實物對價的支付。

第五階段:整合與現代化(2022-2025)

Ark 協議:虛擬 UTXO 的隱私架構

Ark 協議於 2023 年提出,代表了比特幣隱私技術的最新發展方向之一。Ark 的核心創新是虛擬 UTXO(vUTXO)架構,在保留比特幣 Layer 1 安全性的前提下,實現了高效且隱私友好的 Layer 2 支付網路。

Ark 隱私架構的密碼學原理:

1. 離線轉帳(Off-chain Transfer):
   - 虛擬 UTXO 的所有權轉移完全在鏈下進行
   - 不產生比特幣 Layer 1 交易
   - 只有「地板 UTXO」(Floor UTXO)在比特幣區塊鏈上記錄

2. 批量清理(Batching):
   - 多個虛擬 UTXO 轉帳的最終狀態承諾
   - 承諾以單一比特幣交易的形式記錄在 Layer 1
   - 外部觀察者只知道有「某人」向「某人」轉帳
   - 無法追蹤具體的虛擬 UTXO 流向

3. 轉讓人條件(Conveyance Condition):
   - 虛擬 UTXO 的持有者可以在任意時間
     將其轉換為真實的比特幣 UTXO
   - 無需 Ark Service Provider(ASP)的同意
   - 這保證了資金的可撤回性(Withdrawability)
   - 隱私建立在批量承諾和 ASP 的誠信之上

與 CoinJoin 的比較:
- CoinJoin: 所有參與者的 UTXO 合併再拆分(空間混淆)
- Ark: 虛擬 UTXO 在批次級別隱藏流向(狀態承諾混淆)
- 兩者可互補:Ark 的批次可作為 CoinJoin 的輸入

比特幣隱私技術全景比較

技術引入年份隱私維度信任假設比特幣整合計算開銷
Chaumian CoinJoin2011交易隱私協調者(半信任)是(WasabiWallet)
BIP-47 隱私位址2015身份隱私
JoinMarket2015交易隱私Maker(經濟激勵)
Confidential Transactions2015金額隱私否(側鏈)
閃電網路2017路由隱私路由節點
Schnorr/Taproot2021多維度是(主鏈)
PayJoin2019方向隱私接收方
Ark vUTXO2023批量隱私ASP(可撤回)

結論:比特幣隱私技術的演進邏輯

比特幣隱私技術的演進遵循一條清晰的軌跡:從簡單的 UTXO 混淆(CoinJoin)到複雜的密碼學原語整合(Schnorr/Taproot),始終在比特幣的去中心化、安全性和可擴展性約束下尋找最優解

最重要的演進趨勢是:比特幣隱私正從「添加額外複雜性」(如 CoinJoin 的多輪協調)轉向「利用協議升級的內在隱私」(如 Taproot 的 key path 模糊化)。這種轉變的意義在於:隱私不再是需要特殊工具的額外步驟,而是成為比特幣日常使用(如閃電網路、Taproot 交易)的內在屬性。

展望未來,比特幣隱私技術的發展方向可能包括:

  1. zkSNARKs 的主鏈整合:若能在不改變比特幣共識的情況下引入零知識證明,將實現金額、身份和交易關係的完全隱私。
  2. PTLC 的全面部署:配合 Schnorr/Taproot,PTLC 將使閃電網路的路由隱私達到新的水平。
  3. Ark 與 CoinJoin 的組合:Ark 的批量承諾結合 Chaumian CoinJoin 的混淆機制,可能產生更強的隱私效果。
  4. 後量子隱私:BIP-360 後量子簽名框架的實施,需要重新審視所有基於離散對數的隱私方案(如 DLC、HTLC)在量子威脅下的安全性。

延伸閱讀與來源

這篇文章對您有幫助嗎?

評論

發表評論

注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。

目前尚無評論,成為第一個發表評論的人吧!