BIP-141: 隔離見證(共識層)
比特幣最重要的升級之一,解決交易延展性問題並提高區塊容量。
141
Standards Track
Final
2015-12-21
摘要
隔離見證(Segregated Witness,簡稱 SegWit)是對比特幣協議的軟分叉升級。 它通過將簽名數據(見證)與交易數據分離,解決了多個長期存在的問題。
解決的問題
1. 交易延展性
在 SegWit 之前,第三方可以在交易被確認前修改交易的簽名部分, 從而改變交易 ID(txid),而不會使交易無效。這被稱為「交易延展性」問題。 SegWit 通過將簽名數據移到交易之外來解決這個問題。
2. 區塊容量
SegWit 引入了「區塊權重」的概念,取代了原來的區塊大小限制。 見證數據以折扣計算(1 字節見證數據 = 0.25 權重單位), 這實際上允許了更大的區塊容量。
3. 腳本版本控制
SegWit 引入了腳本版本控制系統,使未來的腳本升級可以通過軟分叉實現。 這為 Taproot 等後續升級奠定了基礎。
技術細節
區塊權重
SegWit 定義了新的區塊限制:
區塊權重 = 基本大小 × 3 + 總大小
最大區塊權重 = 4,000,000 權重單位
這相當於理論上約 4MB 的區塊大小,但實際上通常約為 2MB。
見證程序
SegWit 定義了兩種原生見證輸出類型:
- P2WPKH (Pay to Witness Public Key Hash):地址以
bc1q開頭 - P2WSH (Pay to Witness Script Hash):用於更複雜的腳本
好處
- ✓ 修復交易延展性:使閃電網路等 Layer 2 解決方案成為可能
- ✓ 增加區塊容量:提高網路吞吐量
- ✓ 降低交易費用:見證數據折扣計算
- ✓ 腳本版本控制:支持未來升級
- ✓ 提高簽名驗證效率:改進的哈希計算
相關 BIP
- • BIP-143:SegWit 交易簽名驗證
- • BIP-144:SegWit 對等協議
- • BIP-340/341:Taproot(SegWit v1)
相關 BIP
SegWit 交易簽章驗證
Transaction Signature Verification for Version 0 Witness Program
SegWit 序列化
Segregated Witness (Peer Services)
Bech32 地址格式
Base32 address format for native v0-16 witness outputs
Native SegWit 派生路徑
Derivation scheme for P2WPKH based accounts
Taproot: SegWit 版本 1 花費規則
Taproot: SegWit version 1 spending rules
延伸閱讀: 查看 GitHub 上的完整 BIP-141 文件