Genesis Block 是比特币主网预先确定的初始区块。其区块头标注2009年1月3日。它包含一笔交易,创建了一个50 BTC 的输出;该输出受到特殊处理,无法花费。
2009年1月3日,星期六,伦敦《泰晤士报》报道了英国财政大臣阿利斯泰尔·达林面临第二轮银行救助的局面。按照区块头的时间戳,比特币的第一个区块也来自这一天。Satoshi Nakamoto 把这条标题写进了区块中唯一的交易。任何人都可以从数据中读到这句话。当时还没有交易市场、交易所或大批矿工,首先有的是一个可以接上后续区块的链条起点。报纸标题将它与具体的一天联系起来,也把这场货币实验放进了金融危机的背景中。 [1] [6]
Genesis 没有前一个区块,因此区块头中对应的字段为零。Bitcoin Core 根据固定参数构造它的数据,并核对预期哈希,也就是区块数据的数字指纹。节点不会随便拿其他参与者发来的一个区块作为起点。高度为1的区块已经引用 Genesis Block 的哈希;换一个起点,就会得到另一段历史。白皮书描述了用 Proof of Work 保护的链条。而创建一个具有有效工作量证明的具体区块,才让设计成为运行中的软件能够继续接续的记录。 [1] [8]
区块头记录的时间是1231006505,即2009年1月3日18:15:05 UTC。这个值由区块创建者填写,并不是对实际创建时刻的独立测量。另一条线索在 coinbase 交易的输入里:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”。Coinbase 不花费以前的输出,而是创建区块奖励;它的特殊输入还可以承载其他数据。Satoshi 就把标题写在这里。这支持了区块并非在该消息发布之前创建的判断,却不能证明挖出区块的精确秒数,也不能证明作者的真实身份。 [1] [5] [6]
这条消息涉及2008年金融冲击后英国是否再次援助银行。把它理解为对救助计划的批评是有道理的,尤其是结合白皮书对无需金融中介的支付方式的描述。不过,Satoshi 并未留下明确的公开说明,解释为何选择这句话。可以确定的是写入的文字,政治寓意仍然属于解读。标题同时将区块与某一期报纸联系起来,也就是与作者电脑之外的事件联系起来。这两层含义可以并存,但协议不会从中导出政治规则。历史记录与后来的解释需要分开看待。 [1] [8]
此后的每个区块都包含前一个区块的哈希。Genesis Block 没有这个连接,因此软件明确规定了它的起点。Bitcoin Core 使用报纸标题、公钥、时间1231006505、nonce 2083236893、难度1和50 BTC奖励等参数构造它。结果的哈希必须与已知值一致。最初,Satoshi 控制着唯一已知的软件实现,也可能运行着唯一活跃的节点。但规则允许后来每一个 Full Node 独立核验。Genesis Block 是技术上的起点,还不是一个已经运转起来的去中心化经济体。 Nonce 是区块头中的一个数字,矿工寻找有效区块时可以调整它;难度表示这项搜索需要付出多少工作。 [1] [6]
UTXO 集合记录尚未花费的交易输出,也就是金额及其花费条件。 连接 genesis 时,Bitcoin Core 跳过连接其交易,所以最初的输出没有进入 UTXO 集合。这不是通常的挖矿奖励成熟等待期,增加确认也不会解锁它。即便知道对应私钥,也不能凭空创建这个缺失的可花费输出。 [2]
区块浏览器可能显示某个与 genesis 关联的地址后来收到的付款。这些并非区块0的原始输出:它们有各自的交易标识和花费条件。Genesis 的特殊跳过处理不会自动适用于它们。因此,地址余额不能与最初50 BTC 的可花费性混为一谈。 [2] [5]
接下来的高度1区块,其时间戳是2009年1月9日02:54:25 UTC。因此,前两个区块相隔数日,远长于通常的十分钟目标。时间戳本身并不能解释这段间隔,把某种具体意图归给 Satoshi 只能是猜测。0.1版本在邮件讨论组 Cryptography Mailing List 的公开发布公告,时间其实是2009年1月8日19:27:40 UTC。公告介绍了 peer-to-peer 系统,并给出下载链接和运行说明。Bitcoin 不仅有了最初的记录,也有了其他人可以运行、借以自行核验规则的软件。 [7] [1] [9]
在自己的主网节点上,getblockhash 0 返回以000000000019d668开头的标识。使用该哈希并将详细程度设为2调用 getblock,可查看区块及解码后的交易。可以将数据与 Bitcoin Core 参数比较;单凭区块浏览器截图不能替代数据核验。 [3] [4]
测试网络和 regtest 有各自的参数及不同的 genesis 哈希。比较前要检查网络,而不只是高度0。首个区块相同只能确认共同起点,不能证明后续所有区块有效、钱包安全或谁控制着密钥。Genesis Block 确定起点,后续区块仍须符合节点运营者所选软件的规则。Satoshi 能创建首个区块,却不能因此迫使别人运行他的程序,或自动接受此后所有区块。 [1] [8]
要获得更完整的理解,请将本词条与以下词条结合阅读: Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Block Subsidy, Timechain / Blockchain. 反向关联还来自: Bitcoin, Satoshi Nakamoto, Timechain / Blockchain, Block Subsidy.