P2WSH (Pay to Witness Script Hash)

P2PKHとP2WPKHとの関係と同じで、P2SHとP2WSHとのちがいはP2SHにおける支払いでscriptSigに記録されていたものの場所と、生成されるscriptPubKeyだけだ。
scriptPubKeyは以下のように変わる。まずP2SHの形式は以下のとおり。
OP_HASH160 10f400e996c34410d02ae76639cbf64f4bdf2def OP_EQUAL
それからP2WSHでは以下のように変わる。
0 e4d3d21bab744d90cd857f56833252000ac0fade318136b713994b9319562467
以下のコードでこのscriptPubKeyを導出できる。
var key = new Key();
Console.WriteLine(key.PubKey.ScriptPubKey.WitHash.ScriptPubKey);
そしてP2SHでscriptSig(署名とredeem Scriptの合成)にあったものは、witnessに移動する。
"in": [
{
"prev_out": {
"hash": "ffa2826ba2c9a178f7ced0737b559410364a62a41b16440beb299754114888c4",
"n": 0
},
"scriptSig": "",
"witness": "304402203a4d9f42c190682826ead3f88d9d87e8c47db57f5c272637441bafe11d5ad8a302206ac21b2bfe831216059ac4c91ec3e4458c78190613802975f5da5d11b55a69c601 210243b3760ce117a85540d88fa9d3d605338d4689bed1217e1fa84c78c22999fe08ac"
}
]
P2SHの支払いで説明したとおり、P2WSHでもまったく同様で署名するときはScriptCoinクラスを使う。