什么是比特币原始交易?
比特币原始交易是以下内容的十六进制序列化:版本、输入(前序 txid 和输出索引、scriptSig、sequence)、输出(以聪计的金额和 scriptPubKey)、可选的 SegWit 见证数据以及 locktime。txid 是不含见证数据的序列化结果的双重 SHA-256;PSBT(BIP-174)则把未签名交易与签名者所需的元数据打包在一起。
解读结果
- 输入列出前序 outpoint(txid:index)、花费类型和派生地址。sequence 显示是否发出 RBF 信号。
- 输出列出金额、脚本类型和地址。OP_RETURN 输出的载荷在可打印时显示为文本,否则显示为十六进制。
- Locktime 小于 500,000,000 时解读为区块高度,大于时解读为 Unix 时间戳。
- 已签名 / 未签名根据每个输入是否带有 scriptSig 或 witness 判断。
输出脚本类型
| 类型 | scriptPubKey 模式 | 地址 | 花费数据 |
|---|---|---|---|
| P2PKH | OP_DUP OP_HASH160 <20 bytes> OP_EQUALVERIFY OP_CHECKSIG | 1… | scriptSig:签名 + 公钥 |
| P2SH | OP_HASH160 <20 bytes> OP_EQUAL | 3… | scriptSig 以赎回脚本结尾 |
| P2WPKH | OP_0 <20 bytes> | bc1q…(42 个字符) | witness:签名、公钥 |
| P2WSH | OP_0 <32 bytes> | bc1q…(62 个字符) | witness 以见证脚本结尾 |
| P2TR | OP_1 <32 bytes> | bc1p… | witness:64 字节签名(密钥路径) |
| OP_RETURN | OP_RETURN <data> | 无,不可花费 | 不适用 |
实例演示:weight 与 vsize
一笔有一个 P2WPKH 输入和两个 P2WPKH 输出的交易,非见证数据为 113 字节(版本、输入、两个输出、locktime),见证数据约 110 字节(marker、flag、72 字节签名和 33 字节公钥)。Weight = 113 × 4 + 110 = 562 权重单位,因此 vsize = ⌈562 ÷ 4⌉ = 141 vbytes。按 10 sat/vB 计算,手续费为 1,410 sat。同样的付款若使用 legacy P2PKH 输入,大约 226 字节,全部按完整权重计算,即 226 vbytes。
原始十六进制从哪里来
Bitcoin Core:getrawtransaction <txid> 或 createrawtransaction。Electrum 和 Sparrow:把交易导出为十六进制。区块浏览器:mempool.space 和 blockstream.info 提供 /api/tx/<txid>/hex。硬件钱包会显示要求其签署的 PSBT。
单独验证地址请使用比特币地址验证器,查看 bech32 字符串请使用 bech32 解码器。