跳至主要內容

Silent Payments:比特幣的下一代隱私方案

2 分鐘閱讀
Silent Payments:比特幣的下一代隱私方案

前言

比特幣的透明性是其核心特性之一,但這也意味著所有交易都可以被追蹤。Silent Payments (BIP 352) 是一個優雅的解決方案,允許接收者公開一個靜態地址,但每次支付都會產生不同的鏈上地址,從而大幅提升接收方的隱私。


一、比特幣隱私的挑戰

地址重用問題

當你多次使用同一個地址接收比特幣時:

  1. 所有支付者都能看到你的餘額
  2. 鏈上分析可以關聯所有交易
  3. 一旦身份暴露,所有交易歷史都被連結

現有解決方案的限制

方案 優點 缺點
HD 錢包 每次生成新地址 需要通訊協調
BIP 47 Reusable Payment Codes 無需每次協調 需要鏈上通知交易
Stealth Addresses 單次靜態公開 掃描效率低

二、Silent Payments 原理

核心概念

Silent Payments 巧妙地利用了橢圓曲線的數學特性:

接收者:

  • 公開一個「靜態支付地址」(不是傳統比特幣地址)
  • 格式:sp1q...

發送者:

  • 使用自己的私鑰和接收者的公鑰
  • 為接收者派生一個唯一的一次性地址
  • 這個地址只有接收者能識別和花費

技術細節

密鑰派生

假設:

  • 接收者的靜態公鑰:B = b * G
  • 發送者的輸入公鑰:A = a * G

派生過程:

1
2
3
4
5
6
7
8
# 共享秘密
shared_secret = SHA256(a * B) = SHA256(b * A)

# 一次性公鑰
P = B + shared_secret * G

# 接收者可以計算私鑰
p = b + shared_secret

關鍵洞察:

  • 發送者用 a(私鑰)和 B(接收者公鑰)計算共享秘密
  • 接收者用 b(私鑰)和 A(發送者公鑰)計算相同的共享秘密
  • 只有接收者知道 b,因此只有接收者能花費

使用輸入公鑰

Silent Payments 的創新在於使用交易輸入的公鑰作為派生因子:

1
2
3
# 交易輸入提供公鑰 A
# 不需要額外的鏈上數據
# 每個發送者自然產生不同的派生地址

這意味著:

  • 零額外鏈上開銷(不像 BIP 47 需要通知交易)
  • 每個發送者產生不同地址(同一交易的不同輸入也不同)

三、與其他方案比較

對比表

特性 地址重用 HD 錢包 BIP 47 Silent Payments
靜態公開標識
無需交互
無額外鏈上數據
隱私保護 ⚠️
輕錢包友好 ⚠️

BIP 47 vs Silent Payments

BIP 47 Reusable Payment Codes:

  • 需要鏈上「通知交易」建立連結
  • 通知交易暴露付款關係
  • 一次通知後可重複使用

Silent Payments:

  • 無需通知交易
  • 每筆交易完全獨立
  • 接收者需要掃描所有 Taproot 交易

四、掃描機制

挑戰

接收者如何知道哪些交易是給自己的?

由於每個地址都是唯一的,接收者必須:

  1. 掃描所有相關交易
  2. 嘗試用自己的私鑰派生
  3. 檢查是否匹配輸出

優化策略

僅掃描 Taproot 輸出

Silent Payments 只支援 Taproot 輸出(bc1p…),大幅減少掃描範圍。

UTXO 集索引

全節點可以預計算索引:

1
2
3
4
# 對每個 Taproot 輸出
index[output] = hash(input_pubkeys)

# 接收者只需查詢匹配的索引

輕客戶端協議

正在開發中的方案:

  • BIP 158 過濾器增強
  • 伺服器端預計算
  • 隱私保護的掃描代理

掃描效率

場景 掃描負擔 解決方案
全節點用戶 本地索引
輕錢包(已知發送者) 過濾器
輕錢包(未知發送者) 掃描服務

五、實際應用

捐款地址

傳統方式的問題:

  • 公開地址被所有人看到餘額
  • 每個捐款者的交易被關聯
  • 需要不斷更換地址

Silent Payments 解決方案:

1
2
3
4
5
# 公開靜態地址
sp1qg5l0w87w6pdtwqyqp6rxwdm2r0fk6xpz7d5jwh6d4qe7jhnmxhhqjs8qk3k

# 每個捐款者發送到不同的派生地址
# 無法從鏈上關聯這些捐款

商家收款

場景: 線上商店接受比特幣

優勢:

  • 公開單一收款標識
  • 每筆訂單使用不同地址
  • 顧客隱私得到保護
  • 商家收入無法被輕易追蹤

工資支付

場景: 公司定期發放比特幣工資

優勢:

  • 員工只需提供一次靜態地址
  • 每次支付使用不同鏈上地址
  • 其他員工無法看到彼此的收入

六、標籤功能

多帳戶管理

Silent Payments 支援「標籤」功能,允許從單一靜態地址派生多個子地址:

1
2
3
4
5
6
7
# 主地址
sp1q...main

# 帶標籤的子地址
sp1q...main/label1  # 用於捐款
sp1q...main/label2  # 用於薪資
sp1q...main/label3  # 用於銷售

應用場景

  • 會計分類:不同收入來源使用不同標籤
  • 發票追蹤:每張發票使用唯一標籤
  • 隱私隔離:不同身份使用不同標籤

七、限制與注意事項

發送方要求

  • 必須使用 Taproot 輸入(或其他暴露公鑰的輸入類型)
  • 不支援純 P2PKH/P2SH 輸入(公鑰未暴露)

接收方挑戰

  • 掃描負擔:需要檢查所有 Taproot 交易
  • 輕錢包支援:需要額外基礎設施
  • 實時通知:可能有延遲

安全考量

  • 輸入關聯:同一交易的多個輸入被關聯
  • 時間分析:交易時間可能洩漏資訊
  • 金額分析:輸出金額仍然公開

八、錢包實現狀態

已支援/開發中

錢包 狀態 備註
Cake Wallet 開發中 首批支援
Sparrow 計劃中 桌面錢包
Bitcoin Core 提案中 全節點
BlueWallet 評估中 移動端

開發資源


九、與其他隱私技術的配合

CoinJoin + Silent Payments

1
2
3
# CoinJoin 混合後的輸出
# 使用 Silent Payments 發送給接收者
# 雙重隱私保護

Payjoin + Silent Payments

接收者提供 Silent Payment 地址,發送者構建 Payjoin 交易:

  • 打破輸入輸出關聯
  • 接收者獲得隱私地址

閃電網路

理論上可以用 Silent Payments 開設閃電通道:

  • 通道對手方獲得隱私
  • 通道資金來源更難追蹤

十、未來展望

標準化進程

  • BIP 352 正在積極討論中
  • 多個錢包團隊參與實現
  • 預計 2025 年更廣泛採用

可能的改進

  1. 更高效的掃描協議
  2. 跨錢包相容性標準
  3. 輕客戶端友好的伺服器協議
  4. 硬體錢包支援

生態系統影響

如果 Silent Payments 被廣泛採用:

  • 捐款變得更隱私
  • 商家收款更安全
  • 鏈上分析難度增加
  • 比特幣成為更好的價值儲存

結論

Silent Payments 是比特幣隱私技術的重要進步:

  1. 無需交互 - 發布靜態地址即可接收隱私支付
  2. 無鏈上開銷 - 不需要通知交易或額外數據
  3. 原生 Taproot 支援 - 利用最新協議優勢
  4. 實用設計 - 平衡隱私和可用性

雖然接收方的掃描負擔是一個挑戰,但隨著基礎設施的完善,Silent Payments 有望成為比特幣隱私的標準解決方案。

建議:

  • 關注支援 Silent Payments 的錢包
  • 考慮在適當場景使用
  • 了解其限制和安全模型

參考資料

// 分享

CP

Cypherpunks Taiwan

密碼學使自由和隱私再次偉大。Cryptography makes freedom and privacy great again.

// 留言