Skip to content

Block reward

Loading Tool

Diagram showing the height of a block in the blockchain as its distance from the genesis block.

最新区块奖励:

高度: 913,801

3.1308941 BTC

区块补贴:    3.125 BTC

交易手续费: 0.0058941 BTC

区块奖励是矿工通过挖矿区块可以收集的比特币数量。

它通过 Coinbase 交易来索取,并为矿工在区块链上挖掘新区块提供激励

来源

区块奖励来自哪里?

Diagram showing the block reward being collected by a coinbase transaction and as the sum of the block subsidy and transaction fees in the block.

区块奖励由两部分组成:

  1. 区块补贴
  2. 交易手续费

1. 区块补贴

当前区块补贴:

3.125 BTC

高度: 913,801

区块补贴是允许矿工在挖出区块时发送给自己的新比特币的固定数量。

区块补贴的大小基于区块的高度

有关过去、当前和未来区块补贴的完整表格,请参阅减半部分。

2. 交易手续费

最新交易手续费:

0.0058941 BTC

高度: 913,801

区块奖励还包括区块中包含的交易的所有手续费

交易手续费是在交易中没有被“消耗掉”的比特币数量,矿工也可以将这些“剩余”的比特币作为区块奖励的一部分来索取。

矿工用来自内存池的包含最高手续费的交易来填充他们的候选区块,以最大化他们可以从区块奖励中索取的比特币数量。因此,在交易中设置高额手续费可以作为激励矿工将您的交易包含在他们的下一个区块中。

奖励也可以通过交易手续费来资助。如果交易的输出值小于其输入值,则差额就是交易手续费,该手续费会被添加到包含该交易的区块的奖励价值中。

中本聪,比特币白皮书

当没有区块补贴剩余时,区块奖励将完全由交易手续费组成。

目的

区块奖励的目的是什么?

区块奖励有两个目的:

1. 激励

Diagram showing a miner collecting the block reward as compensation for the cost of mining a block on to the blockchain.

如前所述,区块奖励为矿工向区块链添加新区块提供了激励

在区块链上尝试挖掘新区块需要消耗能量,因此区块奖励补偿了矿工在挖矿过程中使用的计算能力。

如果区块奖励足够可观,它会鼓励更多矿工加入网络来帮助构建区块链,从而使区块链更加安全(因为单个矿工企图重写区块链需要消耗更多能量)。

51% 攻击

区块奖励还有助于防止51% 攻击

如果矿工能够获得大部分挖矿算力,他们就有能力重写区块链,从而使他们能够逆转交易并从他们之前的交易中“偷回”比特币。

然而,由于区块奖励的存在,我们可以假设,继续挖掘区块并索取区块奖励,比通过逆转交易来企图窃取比特币更有利可图。

因此,区块奖励并不能阻止矿工进行 51% 攻击,但它确实会阻碍他们破坏系统完整性,从而促使他们仅去索取区块奖励。

2. 分发

Diagram showing an interval of 10 minutes between new block rewards being issued, and the block rewards as the source of bitcoins in new transactions.

区块奖励(确切地说是区块补贴)用于向网络中分发新的比特币

比特币是一种去中心化货币,这意味着没有中央“银行”来控制进入网络的新比特币数量,或它们被发送给谁。因此,新比特币通过挖矿过程进入网络,这意味着新比特币以定期的时间间隔发行,并且任何矿工都有机会索取它们。

[区块补贴]提供了一种最初将代币分发到流通中的方法,因为没有中央机构来发行它们。

中本聪,比特币白皮书

减半

什么是“减半”?

区块补贴从 50 BTC 开始,并且每 210,000 个区块减半一次(大约每 4 年)。

这创造了比特币的固定供应量,新币的发行随着时间的推移而减少,直到达到零。

表格

此表格显示了以前和未来的比特币减半日期和数量。当前的区块补贴已突出显示。

当前高度:956,479

减半 高度 补贴 (BTC) 日期 已挖出总量 (BTC)
0 0 50.00000000 2009年1月3日, 18:15:05 0.00000000
1 210,000 25.00000000 2012年11月28日, 15:24:38 10,500,000.00000000
2 420,000 12.50000000 2016年7月9日, 16:46:13 15,750,000.00000000
3 630,000 6.25000000 2020年5月11日, 19:23:43 18,375,000.00000000
4 840,000 3.12500000 2024年4月20日, 00:09:27 19,687,500.00000000
5 1,050,000 1.56250000 2028年4月12日 (预估) 20,343,750.00000000
6 1,260,000 0.78125000 2032年4月10日 (预估) 20,671,875.00000000
7 1,470,000 0.39062500 2036年4月7日 (预估) 20,835,937.50000000
8 1,680,000 0.19531250 2040年4月4日 (预估) 20,917,968.75000000
9 1,890,000 0.09765625 2044年4月2日 (预估) 20,958,984.37500000
10 2,100,000 0.04882812 2048年3月30日 (预估) 20,979,492.18750000
11 2,310,000 0.02441406 2052年3月27日 (预估) 20,989,746.09270000
12 2,520,000 0.01220703 2056年3月25日 (预估) 20,994,873.04530000
13 2,730,000 0.00610351 2060年3月22日 (预估) 20,997,436.52160000
14 2,940,000 0.00305175 2064年3月19日 (预估) 20,998,718.25870000
15 3,150,000 0.00152587 2068年3月17日 (预估) 20,999,359.12620000
16 3,360,000 0.00076293 2072年3月14日 (预估) 20,999,679.55890000
17 3,570,000 0.00038146 2076年3月11日 (预估) 20,999,839.77420000
18 3,780,000 0.00019073 2080年3月9日 (预估) 20,999,919.88080000
19 3,990,000 0.00009536 2084年3月6日 (预估) 20,999,959.93410000
20 4,200,000 0.00004768 2088年3月3日 (预估) 20,999,979.95970000
21 4,410,000 0.00002384 2092年3月1日 (预估) 20,999,989.97250000
22 4,620,000 0.00001192 2096年2月27日 (预估) 20,999,994.97890000
23 4,830,000 0.00000596 2100年2月24日 (预估) 20,999,997.48210000
24 5,040,000 0.00000298 2104年2月23日 (预估) 20,999,998.73370000
25 5,250,000 0.00000149 2108年2月20日 (预估) 20,999,999.35950000
26 5,460,000 0.00000074 2112年2月17日 (预估) 20,999,999.67240000
27 5,670,000 0.00000037 2116年2月15日 (预估) 20,999,999.82780000
28 5,880,000 0.00000018 2120年2月12日 (预估) 20,999,999.90550000
29 6,090,000 0.00000009 2124年2月9日 (预估) 20,999,999.94330000
30 6,300,000 0.00000004 2128年2月7日 (预估) 20,999,999.96220000
31 6,510,000 0.00000002 2132年2月4日 (预估) 20,999,999.97060000
32 6,720,000 0.00000001 2136年2月1日 (预估) 20,999,999.97480000
33 6,930,000 0.00000000 2140年1月30日 (预估) 20,999,999.97690000

总供应量:20,999,999.9769 BTC

代码

这里有一些用于根据区块高度计算区块补贴的简单 Ruby 代码。

# function for calculating the subsidy for a given height (in satoshis)
def subsidy(height) 
  # calculate how many halvings there have been based on the height
  halvings = height / 210000 # halving is every 210,000 blocks

  # set the starting block subsidy
  subsidy_initial = 5000000000 # 50 BTC in satoshis

  # calculate the current block subsidy based on the height
  subsidy_current = subsidy_initial >> halvings # bit shift right for every halving
  # TIP: A right bit shift is a quick and easy way to divide by 2 (rounded down)

  return subsidy_current
end

# get block subsidy for a specific height
puts subsidy(300000) #=> 250000000 sats

实际的减半代码可以在 validation.cpp 中找到(搜索 GetBlockSubsidy

位移

减半实际上是一个位移

这与除以 2 几乎完全相同,只是如果起始数是奇数,除法的结果会向下取整

你可以通过在下面的进制转换器工具的 decimal 字段中输入 5000000000(以聪为单位的初始区块补贴),然后从 binary 字段中删除最右边的位(这相当于执行右位移)来理解我的意思:

Tool Icon 进制转换器

二进制 (Base 2)

0b

0 digits

十进制 (Base 10)

0d

0 digits

十六进制 (Base 16)

0x

0 digits

+1

0 secs

因此,与其称其为“比特币减半”,不如亲切地将其称为“右位移”。

示例

以下是区块链中以前区块的区块奖励的一些示例:

  • 高度: 100
  • 区块奖励: 50 BTC
  • 区块补贴: 50 BTC
  • 交易手续费: 0 BTC
  • 这是最早的区块之一。它索取了最大的 50 BTC 区块补贴,但区块中没有包含任何交易(除了 Coinbase 交易),因此无法在区块补贴之外索取交易手续费。

  • 高度: 2,817

  • 区块奖励: 52.01 BTC
  • 区块补贴: 50 BTC
  • 交易手续费: 2.01 BTC
  • 这是第一个将交易手续费收集为区块奖励一部分的区块。此区块中的交易完全没有必要支付手续费,但它依然是矿工连同区块补贴一起收集手续费的第一个例子。

  • 高度: 100,000

  • 区块奖励: 50 BTC
  • 区块补贴: 50 BTC
  • 交易手续费: 0 BTC
  • 该区块包含 3 笔交易(不包括 Coinbase 交易)。然而,当时打包进区块的竞争并不激烈,因此交易不需要包含手续费就能被开采。

  • 高度: 124,724

  • 区块奖励: 49.99999999 BTC
  • 区块补贴: 50 BTC
  • 交易手续费: 0.01 BTC
  • 这是一个矿工未索取全部区块奖励的例子。这个特定的区块没有索取最大可用的 50 BTC 补贴,也没有索取同样可用的 0.01 BTC 交易手续费。

所以,矿工在他们的 Coinbase 交易中索取全部区块奖励是完全有效的,尽管这通常是由于矿工的失误造成的。

  • 高度: 210,000
  • 区块奖励: 38.56295554 BTC
  • 区块补贴: 25 BTC
  • 交易手续费: 13.56295554 BTC
  • 这是第一次减半的区块。区块补贴从 50 BTC 减半至 25 BTC。

  • 高度: 788,695

  • 区块奖励: 12.95074657 BTC
  • 区块补贴: 6.25 BTC
  • 交易手续费: 6.70074657 BTC
  • 这是第一个交易手续费大小大于区块补贴的区块。

花费

你什么时候可以花费区块奖励?

只有当区块在区块链中的深度达到 100 个区块以上时,矿工才能花费区块奖励。

参见 Coinbase 成熟度

备注

  • 矿工并不必须索取区块奖励。 虽然没有理由不索取,但没有什么能阻止矿工在他们不想索取时放弃索取全部区块奖励。在这种情况下,这些比特币将永远丢失,因为无法在未来的交易中花费这些比特币。例如,区块 501,726 的区块奖励是 12.5 BTC,但矿工在该区块的 Coinbase 交易中没有向自己发送任何比特币,因此这些比特币永远丢失了。这很可能是一个错误。
  • “区块补贴”经常被误称为“区块奖励”。 将新发行的比特币称为“区块奖励”很常见,但从技术上讲,区块奖励由“区块补贴”(新发行的比特币)+“交易手续费”组成。如果你弄错了,我想也不会给你带来任何问题,但我只是想提一下,因为我过去也犯过这个错误。
  • 白皮书中没有使用“区块奖励”这个词。 中本聪只将挖矿奖励称为一种“激励”,直到一年多以后在 bitcointalk 论坛上才使用“区块奖励”一词。这只是给你在下一次酒吧问答时准备的一个趣闻。
  • 比特币的总供应量为 20,999,999.9769 BTC。 所以从技术上讲,它少于你一直听到的“2100万上限”。这部分是由于减半是右位移,这意味着如果之前的区块补贴是奇数,区块补贴会被向下取整。同样,这是另一个在酒吧问答中绝佳的问题。