比特币原始交易解码器

粘贴原始交易十六进制或 PSBT。每个输出都会转换为地址和金额,输入地址从解锁数据派生,txid、vsize 和 weight 在本地计算。

已签名或未签名均可。解码在你的浏览器中进行;不会向任何地方发送数据,因此即将签名的未签名交易也可以安全粘贴。
示例:

由浏览器中的 JavaScript 解码。地址不会被上传或存储。

什么是比特币原始交易?

比特币原始交易是以下内容的十六进制序列化:版本、输入(前序 txid 和输出索引、scriptSig、sequence)、输出(以聪计的金额和 scriptPubKey)、可选的 SegWit 见证数据以及 locktime。txid 是不含见证数据的序列化结果的双重 SHA-256;PSBT(BIP-174)则把未签名交易与签名者所需的元数据打包在一起。

解读结果

输出脚本类型

类型scriptPubKey 模式地址花费数据
P2PKHOP_DUP OP_HASH160 <20 bytes> OP_EQUALVERIFY OP_CHECKSIG1…scriptSig:签名 + 公钥
P2SHOP_HASH160 <20 bytes> OP_EQUAL3…scriptSig 以赎回脚本结尾
P2WPKHOP_0 <20 bytes>bc1q…(42 个字符)witness:签名、公钥
P2WSHOP_0 <32 bytes>bc1q…(62 个字符)witness 以见证脚本结尾
P2TROP_1 <32 bytes>bc1p…witness:64 字节签名(密钥路径)
OP_RETURNOP_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 解码器。

常见问题

txid 是如何计算的?

对不含 SegWit 标记和见证数据的交易序列化结果做双重 SHA-256,并以反转的字节序显示。wtxid 则对包含见证数据的完整序列化做哈希。两者都在本页计算,无需连接节点。

为什么某个输入地址缺失?

Taproot 密钥路径花费的 witness 中只有签名;公钥在被花费的输出里,而那不属于本交易。非标准脚本也会保留为原始十六进制。其他所有常见类型(P2PKH、P2SH 包装的 SegWit、原生 SegWit、多签赎回脚本)都能派生出地址。

什么是 vsize,为什么重要?

虚拟大小是 weight ÷ 4 向上取整;手续费按每虚拟字节报价。见证字节只按四分之一计算,这就是为什么相同字节长度的 SegWit 交易比 legacy 交易更便宜。

可以解码 PSBT 吗?

可以。解码器读取 PSBT(版本 0)的全局映射,提取未签名交易并解码。部分签名和其他逐输入数据不做解析。

什么是 RBF,解码器如何检测它?

Replace-by-fee(BIP-125)允许发送方以更高手续费重新广播未确认的交易。当至少一个输入的 sequence 号小于 0xfffffffe 时,交易即发出该信号;解码器读取每个输入的 sequence 并标记该信号。

支持莱特币或测试网吗?

在下拉框中选择网络;它只改变地址前缀(1/3/bc1 → L/M/ltc1 或 m/n/2/tb1)。交易格式完全相同。