Coinbase 交易的结构
通过这些计算,Jing 的节点随后构建 coinbase 交易,以支付他自己的区块奖励。
coinbase 交易具有特殊的格式。它不是像普通交易输入一样指定要花费的前一个 UTXO,而是有一个“coinbase”输入。我们在“Inputs”(第123页)中研究了交易输入。让我们将普通交易输入与 coinbase 交易输入进行比较。表12-1显示了普通交易的结构,而表12-2显示了coinbase交易输入的结构。
表12-1. “正常”交易输入的结构
32字节
交易哈希(Transaction Hash)
指向要被消费的 UTXO 所在的交易
4字节
输出索引(Output Index)
要被消费的 UTXO 的索引号,第一个是 0
1-9字节(紧凑编码)
脚本长度(Script Size)
脚本长度(以字节为单位),后跟着
可变长度
输入脚本(Input Script)
一个满足UTXO输出脚本条件的脚本
4字节
序列号(Sequence Number)
用于BIP68时间锁定和交易替换信号的多用途字段
表12-2. Coinbase交易输入的结构
32字节
交易哈希(Transaction Hash)
所有位都是零:不是交易哈希引用
4字节
输出索引(Output Index)
所有位都是一:0xFFFFFFFF
1字节
Coinbase 数据大小(Coinbase Data Size)
Coinbase 数据的长度,从 2 到 100 字节
可变长度
Coinbase 数据(Coinbase Data)
任意数据,用于额外的 nonce 和挖矿标签;在 v2 块中,必须以区块高度开头
4字节
序列号(Sequence Number)
设置为0xFFFFFFFF
在 coinbase 交易中,前两个字段的值不代表 UTXO 引用。第一个字段不是“交易哈希”,而是填充了 32 字节,全部设置为零。而“输出索引”填充了 4 字节,全部设置为 0xFF(十进制 255)。输入脚本被 coinbase 数据替代,这是矿工使用的数据字段,我们将在接下来看到。
Last updated