区块链芝士丨隔离验证钱包开发指南(3)
Pay-to-Witness-Script-Hash (P2WSH)
P2SH-P2WPKH 是BIP141定义的另一个新的脚本格式, 类似P2SH. 它允许付款到任意复杂的脚本. 格式为:
scriptPubKey (34 bytes): OP_0 < 32-byte-script-hash >
花费P2WSH的输出,scriptSig必须是空的,并且witness为
witness: <...> <...> <...> < witnessScript >
RIPEMD160(SHA256(witnessScript)) 等于scriptPubkey中的 32-byte-script-hash, witnessScript是反序列化并且当作剩下的数据在witness中
P2WSH in P2SH (P2SH-P2WSH)
P2SH-P2WPKH 是使用一个P2WSH脚本作为P2SH的 redeemScript. P2SH-P2WPKH 的 scriptPubKey 看起来和P2SH是一样的:
scriptPubKey (23 bytes): OP_HASH160 <20-byte-script-hash> OP_EQUAL
花费P2SH-P2WPKH的输出, scriptSig必须只包含一个 redeemScript, 并且witness 是和P2WSH是相同的:
scriptSig (35 bytes): < OP_0 < 32-byte-script-hash > > witness: <...> <...> <...> < witnessScript >
SHA256(witnessScript) 等于 32-byte-script-hash, 并且 RIPEMD160(0x0020{32-byte-pubkey-hash}) 等于 20-byte-script-hash.
新的签名算法
花费一个witness程序的输出,当产生ECDSA签名时一个新的签名算法必须被使用, 一个详细的例子能在BIP143中找到
新的支付地址
2个新的支付地址类型被定义了. 完整的规范可以在BIP142中找到.