比特币多种输出脚本(outputScript,scriptPubKey)介绍

2019-02-27 16:59:43 浏览数 (1)

目前可见outputScript(scriptPubKey)格式:(参考https://bitcoin.stackexchange.com/questions/73758/what-are-the-standard-formats-of-transaction-outputs)

p2pk 43 41 data(0x41):04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f ac 23 21 data(0x21):0349f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f ac

example:https://www.blockchain.com/btc/tx/7bdd7de22535770be3e14a4e527aed4431ab8adb3115657ca47df6fb1e89d70d

p2pkh

19 76a914 data(0x14):9bc6f9caddaaab28c2bc0a8bf8531f91109bdd58 88ac

p2sh

17 a914 data(0x14):9bc6f9caddaaab28c2bc0a8bf8531f91109bdd58 87

p2wpkh(bech32)

16 00 14 data(0x14):9bc6f9caddaaab28c2bc0a8bf8531f91109bdd58

p2wsh(bech32) 22 00 20 data(0x20):701a8d401c84fb13e6baf169d59684e17abd9fa216c8cc5b9fc63d622ff8c58d

p2ms example: 2 of 3 multisig

52 // OP_2 410491bba2510912a5bd37da1fb5b1673010e43d2c6d812c514e91bfa9f2eb129e1c183329db55bd868e209aac2fbc02cb33d98fe74bf23f0c235d6126b1d8334f86 2102359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1 41048d2455d2403e08708fc1f556002f1b6cd83f992d085097f9974ab08a28838f07896fbab08f39495e15fa6fad6edbfb1e754e35fa1c7844c41f322a1863d46213 0395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a 53 // OP_3 ae // OP_CHECKMULTISIG

op_return

OP_RETURN (1 byte) PUSH (1 byte) <0 to 83 bytes of data>

others: anyscript

说明

  1. 比特币理论上支持任意格式的script;
  2. 最主流的两种支付script为p2pkh,p2sh;隔离见证专用script为p2wpkh,p2wsh,使用新的叫bech32的编码,bech32已有官方实现:BIP173
  3. 隔离见证使用的script为p2wpkh和p2wsh两种,对应经典script的p2pkh和p2sh,但是使用隔离见证script这要求双方的钱包都支持隔离见证,所以在区块上见的不多。参考: https://testnet.blockchain.info/tx/f299afe17901f5a8d87f306c13f42c6fbf3d5b5de090973cf0fd34d403ccd2b8(p2wpkh转p2sh,详见4) https://www.blockchain.com/btc/tx/a60499338cdedebfd8cb7c379129cad1be5185d92d0db34717e66c1980a139b8(native p2wpkh)
  4. 接收方(使用utxo的一方)必须支持隔离见证,否则无法发送隔离见证交易;发送方可以不支持隔离见证,若不支持,接收方需要提供p2wpkh或p2wsh对应的p2sh脚本。这样虽然报文会稍微大一点,但是可以让不支持隔离见证的钱包发送支持隔离见证的utxo,这也是包括ledger在内主流的做法(接收地址为3开头的p2sh地址,实际使用时使用隔离见证交易)。详见BIP141,BIP132

0 人点赞