coinbase交易

区块中的第一笔交易是笔特殊交易,称为创币交易或者coinbase交易。这个交易是由Jing的节点构造并用来奖励矿工们所做的贡献的。Jing的节点会创建“向Jing的地址支付25.09094928个比特币”这样一个交易,把生成交易的奖励发送到自己的钱包。Jing挖出区块获得的奖励金额是coinbase奖励(25个全新的比特币)和区块中全部交易矿工费的总和。

与常规交易不同,创币交易没有输入,不消耗UTXO。只包含一个被称作coinbase的输入,仅仅用来创建新的比特币。创币交易有一个输出,支付到这个矿工的比特币地址。创币交易的输出将这25.0909个比特币发送到矿工的比特币地址


coinbase交易_第1张图片
image.png

这儿注意和普通交易的结构及内容的区别,在创币交易中,“交易哈希”字段32个字节全部填充0,“交易输出索引”字段全部填充0xFF(十进制的255),这两个字段的值表示不引用UTXO。“解锁脚本”由coinbase数据代替,数据可以由矿工自定义。不包含“解锁脚本“(又称作 scriptSig)字段,这个字段被coinbase数据替代,长度最小2字节,最大100字节。除了开始的几个字节外,矿工可以任意使用coinbase的其他部分,随意填充任何数据。like “The Times 03/Jan/ 2009 Chancellor on brink of second bailout for banks“

现在,矿工使用coinbase数据实现extra nonce功能,并嵌入字符串来标识挖出它的矿池,这部分内容会在后面的小节描述。区块277,316的coinbase就是交易输入的scriptSig字段,这个字段的十六进制值为03443b0403858402062f503253482f。第一个字节是03,脚本执行引擎执行这个指令将后面3个字节压入脚本栈(见表4-1),紧接着的3个字节——0x443b04为十进制的277,316。十六进制数(03858402062)用于编码extra nonce(参见"8.11.1 随机值升位方案"),或者一个随机值,从而求解一个适当的工作量证明。结尾部分(2f503253482f)是ASCII编码字符 /P2SH/,表示挖出这个区块的挖矿节点支持BIP0016所定义的pay-to-script-hash(P2SH)。

你可能感兴趣的:(coinbase交易)