p2wsh
P2SHとは scriptPubkey の形式が変わる 0 <32-byte-hash>
segwit version byte + size + hash
0x0020<hash> になる。hash size をop codeでpushする必要はないみたい。
witness program の形式は、 Script とは別で定義されている
決まった形式だから?だったら size もいらないような?
p2wpkh と区別するために必要なのか
unlock するには
witness が必要
scriptSig と考え方は同じ。スクリプトが実行された時に成功するようなデータを与えれば良い
ただし、witness program を最後に追加する必要がある
scriptPubkey の hash と一致するかが確認される
こういう感じ
multisig のダミーデータについて制約が追加されている
witness の場合、0x01, 0x00 のように dummy の0を値としてpushするのはダメ
ダメな例(2 of 2 multisig)
stack items: 04
dumy lengh: 01
dumy: 00
sig1 len: xx
sig1: xxxx
stack item の size を0とする。つまり単に 0x00 とすれば良い。stack item count にはちゃんと含めること。
stack items: 04
dumy length: 00
sig1 len: xx
sig1: xxxx
前者の場合、多くのデバッグツールでは 00 と表示される。後者の場合は、空のデータとして表現される。"" とか。