P2WSH 地址格式
P2WSH,支付至見證腳本雜湊,是 SegWit 隔離見證架構中的一種標準多簽或複雜腳本輸出格式,屬於 v0 witness program 類型之一。

P2WSH,Pay-to-Witness-Script-Hash,支付至見證腳本雜湊,是 SegWit 隔離見證架構中的一種標準多簽或複雜腳本輸出格式,屬於 v0 witness program 類型之一。
以 bech32 編碼表示,地址以 bc1q 開頭,但其地址長度因為雜湊值為 32 位元組,比 P2WPKH 更長。
P2WSH 的核心概念是將傳統 P2SH 中的解鎖腳本Redeem Script 與簽章資料移出至 Witness 區塊,使複雜的腳本驗證與交易本體分離。這不僅消除了第三方交易延展性 Malleability,更大幅降低了多重簽名 Multisig 與複雜智慧合約在花費時的手續費成本。
P2WSH 基本概念
-
ScriptPubKey 交易輸出 在比特幣系統中,每一筆 UTXO 都包含 ScriptPubKey。 在 P2WSH 中,ScriptPubKey 不再包含實際的複雜腳本,而是使用一個固定格式的 witness program,其中 OP_0 代表 SegWit v0,而後方則跟隨一個 32 位元組的腳本雜湊值。 OP_0 <32-byte ScriptHash>
-
基於 Witness 隔離見證 P2WSH 在鎖定時使用的是實際腳本 Witness Script 的雙重雜湊結構,而非腳本明文。 當花費這筆 UTXO 時,交易的 ScriptSig 必須保持為空。真正的解鎖參數,以及原始的 Witness Script 則被放置在交易末尾的 Witness 欄位中。 節點在驗證時,會將 Witness 中提供的 Witness Script 進行雜湊計算,確認與 ScriptPubKey 中的雜湊值相符後,再執行該腳本並驗證簽名。
P2WSH 運作方式
-
建立複雜腳本 Witness Script 使用者共同生成一個自訂的腳本,如 2-of-3 多重簽名腳本。此腳本定義了資金花費的具體條件,稱為 Witness Script,相當於傳統 P2SH 的 Redeem Script。
進行 SHA-256 雜湊計算 將生成的 Witness Script 放入 SHA-256 雜湊函數中進行計算。產生一個 32 位元組,256 位元的 ScriptHash。
SHA-256(WitnessScript) = ScriptHash
-
建立 ScriptPubKey 將版本號 OP_0 與 32 位元組的 ScriptHash 組合成鎖定條件 ScriptPubKey。此結構表示該 UTXO 只能透過提供與該雜湊相符的原始腳本及正確簽名才能花費。
OP_0 <32-byte ScriptHash> = ScriptPubKey
-
計算 Bech32 地址編碼 將 HRP、witness version,與 witness program 以 Bech32 編碼,轉換為 P2WSH 可讀地址,以 bc1q 為開頭,總長度為 62 個字元。
-
Witness 解鎖資料 當花費該輸出時,不再使用 ScriptSig。花費者必須在 witness 區域依序提供解鎖參數,如 Signatures,以及原始的 Witness Script。 節點會先將 Witness 末尾的 Witness Script 進行 SHA-256 雜湊,確認結果與 ScriptPubKey 中的 ScriptHash 相同,隨後執行該 Witness Script,並利用 Witness 中的簽名進行邏輯驗證。
P2WSH 應用
-
多重簽名錢包 Multisig 由於移入 Witness 區塊後可享受 75% 的權重折扣,能極大地節省手續費。P2WSH 是目前比特幣網路中企業、交易所與共同保管錢包最主流的多簽格式。
-
閃電網路通道 Lightning Network Channels 閃電網路的兩方通道開闢與關閉,核心底層就是基於 P2WSH 的 2-of-2 多重簽名,並結合了時間鎖Time-locks 與撤銷金鑰等複雜腳本。P2WSH 徹底解決的延展性問題,是閃電網路得以安全運行的基石。
-
複雜智慧合約與時間鎖 HTLC / CSV / CLTV 對於包含雜湊時間鎖合約 HTLC,或相對/絕對時間鎖的複雜比特幣交易,P2WSH 提供了一個標準且高效的容器,讓複雜邏輯在鏈上執行時更加便宜且具隱私性。
P2WSH 相關 BIP
- BIP 141:Segregated Witness (Consensus layer)
- BIP 143:Transaction Signature Verification for Version 0 Witness Program
- BIP 173:Base32 address format for native v0 witness outputs

更多文章