SegWit 隔離見證
隔離見證,將交易數據中的簽名數據,與主交易數據中分離,並將其存儲在區塊的另一部分中。解決舊版本中交易可塑性 Transaction Malleability 問題,並提升每個區塊可以容納更多的交易,並降低交易手續費。

SegWit,Segregated Witness 隔離見證,是比特幣於 2017 年通過軟分叉的方式引入到比特幣網絡中的一項升級,解決舊版本中交易可塑性 Transaction Malleability 問題,並提升每個區塊可以容納更多的交易,並降低交易手續費。
SegWit 是將交易數據中的簽名數據,與主交易數據中分離,並將其存儲在區塊的另一部分中。
SegWit 的啟用為後續多項技術發展奠定基礎,包括閃電網路 Lightning Network、Taproot 升級及其他第二層擴容方案。
隔離見證 基本概念
擴大區塊容量 比特幣區塊原始大小仍然是 1 MB,而通過 SegWit可以容納更多的交易。
區塊權重 SegWit 引入 區塊權重 Block Weight 概念,取代原本單純以區塊大小作為限制的方式。區塊權重上限為 4,000,000 Weight Units。由於 Witness Data 資料的權重計算僅主資料的 25%,因此區塊能夠容納更多交易資料。
解決交易可塑性 在 SegWit 啟用之前,交易簽名資料可能被修改而不改變交易實際內容,導致交易 TXID 發生變化。這種現象稱為交易可塑性 Transaction Malleability。SegWit 將簽名資料排除於 TXID 計算之外,使交易 ID 更穩定可靠。
隔離見證 運作方式
-
建立交易 使用者建立交易指定輸入 Input 與輸出 Output 。同時產生對應的數位簽名與驗證資料。
-
分離見證資料 交易廣播前,Witness 資料會被放置於獨立的 Witness 區域。主要交易資料與 Witness 資料共同構成完整交易。
-
計算交易識別碼 SegWit 交易會產生兩種識別碼:
- TXID(Transaction ID)
- WTXID(Witness Transaction ID)
- TXID 不包含 Witness 資料。
- WTXID 則包含完整 Witness 資料。因此即使 Witness 發生變化,也不會影響 TXID,解決交易可塑性 Transaction Malleability 問題。
-
寫入區塊 礦工將交易打包進區塊時,主要交易資料與 Witness 資料一同被記錄。 區塊中會額外包含 Witness Commitment,用於驗證 Witness 資料的完整性。
隔離見證 應用
-
提升區塊容量 由於 Witness 資料採用較低權重計算方式,相同區塊可容納更多交易。 因此提高了整體網路交易處理能力,且降低交易手續費。
-
解決交易可塑性問題 SegWit 將簽名資料從 TXID 計算中分離,使第三方無法透過修改簽名資料改變交易識別碼。 提升了交易追蹤與驗證的穩定性。並成為閃電網路等第二層協議的重要基礎。
-
提升複雜腳本效率 降低驗證資料對區塊空間的消耗,為 Taproot 等後續腳本技術的發展奠定基礎。
-
地址類型
- P2WPKH(Pay-to-Witness-Public-Key-Hash)
- P2WSH(Pay-to-Witness-Script-Hash)
- P2SH-P2WPKH(相容型 SegWit)
- P2SH-P2WSH(相容型 SegWit)
- P2TR(Pay-to-Taproot)
隔離見證 相關 BIP 協議
- BIP 141:Segregated Witness (Consensus Layer)
- BIP 143:Transaction Signature Verification for Version 0 Witness Program
- BIP 144:Segregated Witness Peer Services
- BIP 173:Base32 Address Format for Native SegWit Outputs
- BIP 350:Bech32m Format for v1+ Witness Addresses

更多文章