Skip to content

Latest commit

 

History

History
27 lines (20 loc) · 2.41 KB

File metadata and controls

27 lines (20 loc) · 2.41 KB

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 数据替代,这是矿工使用的数据字段,我们将在接下来看到。