BIP-341: Taproot: SegWit 版本 1 花費規則
引入新的腳本類型,提供更強的隱私性和更高效的智能合約能力。
341
Standards Track
Final
2020-01-19
摘要
Taproot 是比特幣 SegWit 版本 1 的輸出規則。它結合了 Schnorr 簽章和 MAST (Merkelized Abstract Syntax Trees),提供了更強的隱私性、更好的效率和更靈活的腳本能力。
核心概念
密鑰路徑花費
最簡單的花費方式:只需提供一個 Schnorr 簽章。這與普通的單簽名支付看起來完全相同, 即使背後可能是複雜的多重簽名或智能合約。
腳本路徑花費
當無法使用密鑰路徑時(例如,部分參與者不合作),可以揭示並使用預先設定的腳本之一。 只有被使用的腳本會上鏈,其他腳本保持隱藏。
Taproot 地址
Taproot 地址使用 Bech32m 編碼,以 bc1p 開頭:
bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr
MAST 結構
MAST(Merkelized Abstract Syntax Trees)允許將多個腳本組織成 Merkle 樹結構:
Taproot Output Key
|
┌─────┴─────┐
Internal Script Tree
Key |
┌─────┴─────┐
Hash Hash
/ \ / \
Script Script Script Script
A B C D
使用任何一個腳本時,只需要揭示該腳本和相關的 Merkle 證明, 其他腳本的存在不會被披露。
優勢
- ✓ 隱私性提升
所有 Taproot 花費在鏈上看起來都相同,無法區分單簽、多簽或複雜合約
- ✓ 效率提升
密鑰路徑花費只需一個簽章,腳本路徑花費只揭示必要的腳本
- ✓ 靈活性提升
支持更複雜的智能合約,同時保持簡單案例的效率
- ✓ 費用降低
較少的鏈上數據意味著較低的交易費用
應用場景
- 1. 閃電網路
通道開啟和關閉看起來像普通支付,提高隱私性
- 2. 多重簽名錢包
2-of-3 或更複雜的多簽看起來與單簽相同
- 3. DLC(離散對數合約)
複雜的金融合約可以更高效地實現
- 4. 保管庫
帶有時間鎖和恢復機制的安全儲存方案
採用情況
Taproot 於 2021 年 11 月 14 日在區塊高度 709,632 啟用。主要錢包和服務正在 逐步添加 Taproot 支持。使用 Taproot 地址(bc1p...)進行接收和發送 可以享受到這些優勢。
相關 BIP
延伸閱讀: 查看 GitHub 上的完整 BIP-341 文件