跳转到正文
buybitcoinsmart

术语表 /挖矿与共识

Coinbase 成熟期

又称 Coinbase maturity、币基交易成熟期。

Coinbase 成熟期是什么?
Coinbase 成熟期是一项共识规则:区块新产生的币被锁定,在其后100个区块产生之前,任何交易都不得花费它们。

挖矿奖励在区块被找到的那一刻并不是可花费的资金。Bitcoin Core 在其共识头文件中将 COINBASE_MATURITY 设为100,因此等待时间为100个区块,按十分钟的出块目标约为16小时40分钟。您在交易所购买的币不受该规则影响,因为转到您手中的币都已至少花费过一次。

运作方式

Coinbase 成熟期由每个全节点作为网络规则强制执行,这意味着任何设置、任何钱包和任何矿池都无法放宽它。

检查本身只是一次减法。验证交易时,节点会检查每个输入,如果该币来自 coinbase 交易,就用该花费将落入的区块高度减去该币所在的区块高度。如果差值小于100,Bitcoin Core 会拒绝该交易,返回代码 bad-txns-premature-spend-of-coinbase,并附带一条说明尝试时所处深度的信息。在区块900,000中发放的奖励,最早可在区块900,100中花费,这是该减法结果达到100的最低高度。

设置这一延迟,是因为 coinbase 输出是唯一可能不复存在的一类币。普通的币能够经受区块链重组:持有它们的交易会回到内存池并被再次挖出。区块的奖励只因该区块在链中才存在,所以如果竞争分支获胜,奖励就会消失,由它衍生的一切也随之消失。如果基于后来消失的奖励构建花费,所有接触过它的钱包都会受到牵连。

Bitcoin Core 也会防范区块之间的空档。内存池中的每个条目都带有标记,说明它是否花费 coinbase 输出,源代码中的注释解释了原因:这些条目会在重组期间被重新扫描,以检查是否仍满足100个区块的规则。凡是再次变为未成熟的,都会被丢弃,而不会被挖入区块。

该规则有一个特点容易让人措手不及。等待时间按区块而不是按小时计算,因此难度周期缓慢时会延长,周期较快时会缩短。比特币的目标是每600秒出一个区块,16小时40分钟和人们熟悉的每天144个区块都由此而来,而平均十一分钟一个区块时,同样的100个区块会延长到18小时20分钟。

在哪里会遇到它

coinbase 成熟期最常见的表现,是钱包显示两个余额而不是一个。

Bitcoin Core 的 getbalances 会返回一个 immature 字段,源代码将其记录为来自未成熟 coinbase 输出的余额,而 getreceivedbyaddress 和 listunspent 都接受一个 include_immature_coinbase 标志,该标志默认为 false。Core 钱包比共识规则严格一个区块:在发放奖励的区块达到101个区块深度之前,奖励一直被视为未成熟,因此单独挖矿的矿工会看到余额比仅按网络规则要求的时间晚一个区块解锁。

矿池面板使用自己的术语,通常在已确认列旁设有待处理或未成熟列。按每份额固定金额付款的矿池,会在币成熟之前很早就为矿工记账,也就是用尚无法动用的奖励预付资金,如果该区块被替换,承担风险的是矿池而不是矿工。

该规则也为挖出的币进入市场的速度设定了下限。想要出售的矿工要等待100个区块,再转入交易所,然后等待其充币政策,通常是少量确认而不是一百次。

Coinbase 成熟期 vs 确认

Coinbase 成熟期是写入共识的一个固定深度,而确认数是一个持续累计的数字,任何人都可以从中选取一个门槛。

要求六次确认后才为充币入账的交易所,是自行选定这个数字的,明天就可以更改。100个区块的规则不是一种选择。它只涵盖由区块创建的币,在每个验证节点上的适用方式完全相同,违反它的交易不是慢,而是无效:任何矿工都无法将其打包,因为包含它的区块同样会被拒绝。

请勿混淆

常见问题

为什么矿工不能立即花费区块奖励?

因为在创建这些币的区块达到100个区块深度之前,共识不会接受该花费,按十分钟的出块目标约为16小时40分钟。在区块链重组中落败的区块会连同其奖励一起消失,因此这一延迟可防止这些币在该风险过去之前流通。

coinbase 成熟期会影响我在交易所购买的币吗?

不会,它只适用于由区块创建的输出。您购买的币已经被挖出并至少花费过一次,因此影响您充币或提币的等待规则,只有交易所自己的确认政策。

100个区块等同于100次确认吗?

基本可以。一旦铸造该币的区块显示100个确认,Bitcoin Core 就会在其内存池(mempool)中接受对它的花费,因此在区块900,000中发放的奖励,其花费可以在区块900,100中被打包。Core 自带的钱包则多留一个区块的余量,在达到101个确认之前,这些币一直计入未成熟余额,因此您的钱包所显示的可用状态与网络实际会接受的状态可能相差一个区块。

接着阅读

相关术语

挖矿与共识中的更多术语

阅读本页英文版