date
icon
password
博客链接
Pin
Pin
Hide-in-Web
Hide-in-Web
网址
type
slug
tags
category
bottom
bottom
Hide-in-Config
Hide-in-Config
comment
status
summary
在区块链系统中,Coinbase 是一个非常重要的概念,尤其是在工作量证明(Proof of Work,PoW)机制的区块链中,比如比特币和以太坊(合并前)。
Coinbase 交易的介绍
Coinbase 交易 是指一个特殊的区块链交易,它在每个区块中由矿工创建,用来发放矿工的奖励。与普通的交易不同,Coinbase 交易没有输入(即不依赖于之前的 UTXO 或账户余额,是凭空产生的),它直接向矿工发放奖励。
它是区块链中第一个交易,并且是矿工在打包区块(将部分交易纳入区块的过程)时首先创建的交易。
奖励来源:Coinbase 交易的资金来源于两部分:
- 区块奖励:通过挖矿生成的全新加密货币,这部分奖励通过共识协议(如比特币中的“挖矿奖励”)来确定。在比特币中,最初每个区块的奖励是 50 BTC,之后会按照每 21 万个区块减半。
- 交易手续费:矿工打包区块时,将区块中的所有交易的手续费也包含在 Coinbase 交易中,作为对矿工的额外奖励。
锁定时间:
一般来说,矿工通过 Coinbase 交易获得的奖励在一定时间内不能立即使用。例如,在比特币中,Coinbase 交易生成的币需要经过 100 个确认区块(大约 16-17 小时)后,矿工才能将这笔币花出去。这种设计是为了防止链分叉后因区块回滚而产生的混乱。
Coinbase 自定义数据:
在区块头(block header)中,有一个字段专门存储Coinbase 数据,这是一段矿工自己写入的任意数据。矿工通常在这里添加一些独特的信息,比如矿池的名称或挖矿软件的标识符。有时,矿工还会借此留下带有纪念意义的文本信息,比如:
- 在比特币的创世区块中,中本聪在 Coinbase 数据中留下了消息:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”,以此记录了比特币诞生时的时代背景。
- 也可以在 coinbase 中书写自己的感悟:“挖矿不易,且挖且珍惜!”
Coinbase 的存放位置:
虽然 Coinbase 交易 是区块中所有交易的第一笔,但它并不会直接与区块头中的 Merkle Root 连接。相反,它和其他交易一起组成 Merkle 树 的底部叶子节点,经过一系列哈希运算后,共同形成 Merkle 根(如下图所示):

Coinbase 中存放的数据:
Coinbase 交易包含以下几部分主要内容:
- 区块奖励(包括新区块生成的奖励和交易手续费)。
- 奖励接收者的地址,即矿工或矿池的地址。
- Coinbase 数据(extra nonce),用于矿工自定义信息或记录区块的特殊标识。
- 输入部分,一个虚拟的输入,用于标记交易的存在。
- 区块高度,用来标记该区块在区块链中的位置。创世纪块的区块高度为 1.
coinbase 域中存放的数据大小最多肯定是不能超过 1 MB(区块大小),通常在几十到几百字节不等.
coinbase 中的 extra nonce 通常可以用于区块链中随机数的调整,区块链中区块头部分的 nonce 一般只有 4 个字节,最多可以表示 大小的输出空间,但对于现在的挖矿来说已经不够了,因此需要在 coinbase 域中的自定义数据(extra nonce)部分进行调整,通常取 8 个字节(32 位),与前面的 4 个字节组合,可以输出 大小的输出空间,在目前(2018 年)是够用的。
为什么这样调整是可行的呢?
由于 coinbase 作为区块的第一笔交易,与其他交易一样也是位于区块体的 Merkle Tree【 Merkle tree(与 Binary tree) 】中,因此改变 coinbase 的内容会改变 Merkle Root 的根哈希值,进而改变区块头的哈希值,挖到符合条件的 nonce。
Coinbase 与“coinbase”公司的区别
需要注意的是,Coinbase 交易与广为人知的加密货币交易平台 Coinbase 并不是同一个概念。尽管它们共享同一个词汇,但在区块链领域中,Coinbase 交易专指矿工生成的特殊交易,而 Coinbase 公司是一个知名的加密货币交易平台。