主页 > imtoken官网版下载 > 比特币创世区块的神话传说

比特币创世区块的神话传说

imtoken官网版下载 2023-10-26 05:10:37

2009 年 1 月 3 日 18:15:05 (UTC)

2009年1月4日02:15:05(北京时间)

比特币第一个区块诞生!

Genesis——In the Beginning

由于中本聪在 2011 年春天之后不再出现,因此有许多未解之谜,而这个区块有一些有趣的粉丝。

中本聪是如何挖掘这个区块的?

创世区块

创世区块中的信息

创世区块在很多方面都不同,首先它是整个比特币区块链的第一个区块,它没有指向前一个区块的指针。所以作为区块链的第一个区块,它必须是由开发区块链的人创建的。所以这个很重要,虽然我们说比特币网络是去中心化的,但是从第一个区块诞生开始,就必须是中心化的,而且是100%中心化的。

因此,我们可以说创世块与其说是挖出来的,不如说是由中本聪编译,直接写在比特币客户端软件的代码中。但是,即使编译了,也很难创建这个创世块,因为中本聪虽然可以随意提前编译这个块的内容,但他必须猜测一个随机数来与块内容结合。生成与目标值匹配的哈希值需要花费很多精力。

在创世区块中,中本聪自己设定的目标值是一个十六进制前面有8个“0”,二进制前面有32个“0”的数字:

0000 0000 ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

而中本聪最终计算出创世块的哈希值,是一个十六进制前面有10个“0”,二进制前面有43个“0”位:

0000 0000 0019 d668 9c08 5ae1 6583 1e93 4ff7 63ae 46a2 a6c1 72b3 f1b6 0a8c e26f

我不是想把这串数字拿出来烧大家的脑子,而是告诉大家有个有趣的情况,就是如果中本聪只是用自己的PC来计算这个区块的hash值, 要找到一个符合目标的值,在前面留下 32 个“0”要比在前面留下 43 个“0”困难得多。按照 2009 年电脑的配置,中本聪要计算 43 个“0”的哈希值,给他 6 天时间,计算出来的可能性只有 17%。因此,有人认为中本聪非常幸运,即他可以在创世区块中计算出远小于目标值的数字,但相信这种说法的人并不多。

有人专门研究了大约一年前诞生的比特币网络的 36,000 多个区块。首先,他们根据中本聪从未使用过的特性,粗略地分离出中本聪挖出的区块。 ,然后分析block中的随机数,发现随机数的最后一位有明显的规律。据此推测,中本聪可能使用了 59 台电脑(其中 9 台后来退出,不知道是宕机还是另一台机房的电脑,中本聪失控)配合计算块,而这些为了不做重复工作,计算机按照一定的规则选择随机数,每台机器取不同的值。这个发现很有意思,就是说中本聪从一开始就采用了一些挖矿优化的计算方案,有点像我们以后要介绍的各种挖矿优化方案,也是从某个角度解释的本聪其实预测未来挖矿可能会出现更优化的专业设备,但一切都是猜测。

现在看中本聪计算远小于目标值的数字的能力,似乎并不太难,因为他不仅有这么多设备协同计算,而且他还有六天的时间来计算。时间呢。

第二个谜,为什么中本聪需要六天时间来创建创世区块?

在圣经的《创世纪》中,说上帝用了六天的时间创造了世界,“第七天,上帝的创造工作完成,第七天他停止了一切工作。 , 安息。”不知道是巧合还是中本聪故意的,比特币的第一个区块(创世区块)和第二个区块之间有六天的间隔。

第一次出块时间:UTC 2009年1月3日18:15:05,北京时间2009年1月4日2:15:05;

第二块时间:UTC 2009年1月9日02:54:25,北京时间2009年1月9日10:54:25

仔细看,时间也不是整整六天,只是五天多一点而已。然而,网上仍有不少人认为中本聪想成为比特币网络之神,甚至迷信他是神。我的观点是“呵呵”,中本聪没必要这么玄乎。

因为在那个时候,没有人知道比特币会变成今天的样子,而在那之前的20多年里,所有对加密货币的尝试都没有成功,所以中本聪不会那么盲目地自信自己能一拍就做,从他后来的言论可以看出,他还是觉得比特币不完美。

让我们忽略这个神话和传说,但是为什么这两个街区之间有这么多天?阻塞间隔不是十分钟吗?关于这个问题有很多猜测。中本聪一天没有解释。估计随着比特币的寿命越来越长,这个粉丝会被越来越多的神话传说解释。说说我觉得比较合理的解释吧。

侦探柯南

首先,让我们来看看比特币诞生前后短暂的一系列事件:

1、@ >UTC 时间 2009 年 1 月 3 日,《泰晤士报》头版刊登了“财政大臣濒临对银行进行第二次救助”的新闻;

泰晤士报2009年1月3日头版

2、国际标准时间2009年1月3日18:15:05,记录本次比特币创世区块的时间戳字段;

3、UTC时间2009年1月9日02:54:25,本次记录的第二个比特币区块的时间戳字段;

4、国际标准时间2009年1月9日04:33:09,本次比特币第14个区块记录的时间戳字段;

5、国际标准时间时间2009年1月10日01:05:49,比特币节点软件“Bitcoin V0.1”最早版本发布;

6、国际标准时间2009年1月10日04:45:46,第15个比特币区块的时间戳字段记录了本次;

7、2009 年 1 月 10 日 22:47 UTC:26,;

8、2009 年 11 月 11 日 18:22:14 UTC,Hal Finney 在中本聪发布软件的帖子后回复,率先发布。

从这个时间顺序,我们按照可信与否分为三类:

第一类是可信时间,也就是第一个1、@>5、7和8,这四个都是基于第三方的时间,不受中本聪控制,所以他们是可信的;2、3、4,也就是比特币前十四个区块上的时间戳。此时的区块链完全集中在中本聪手中,上面的时间戳可以由他随意编译;

第三种是渐进式信任时间,也就是第六项,也就是比特币节点软件发布后,比特币区块链第十五块开始,我们可以认为其他节点没有由中本聪控制的将逐渐加入比特币网络,因此由此开始,比特币开始逐步从100%中心化走向可信去中心化。

在这里我可以谈谈我对“为什么中本聪在六天内创建了创世块?”的看法。我觉得这个问题其实应该换成“为什么第一块第一块和第二块相差差不多6天?”。

首先,由于《泰晤士报》的头版新闻标题要写在创世区块中比特币创世纪区块地址,中本聪在看到头版新闻后才决定将这条新闻作为创世区块。块的“永恒之语”。所以他只好把这句话打包进区块,开始改变随机数对打包的区块进行操作,直到找到与自己难度目标值相匹配的区块哈希值。

其次,中本聪直到第六天才正式发布比特币节点软件,所以他显然在这六天里不断地测试软件,并用他制作的区块来测试即将推出的比特币节点软件。既然我们知道中本聪实际上拥有少量的计算能力(59 台计算机假设),那么中本聪这些天可能会不断地计算创世块的哈希值,即使他找到了一个匹配所需的目标值,但是为了测试的需要,可能需要继续计算来测试区块难度和速度的关系,所以最后他可能会得到多个满足创世块(之前是32“0”)块hash的目标值值,为了表达骄傲或者别的什么,他选择了一个最小的哈希值作为区块哈希值。

最后,他用创世块测试了后续生成块的软件功能,持续了六天,不断修改他的第一个版本的软件,直到开始生成最稳定的区块链。那一定是他最后一次测试这个软件了。在系统稳定有序的自动运行产生了14个区块后,中本聪停止了机器,将软件整理打包并对外发布。然后,在软件发布三个多小时后,他再次启动系统,正式开始以节点身份参与挖矿游戏。我相信他挖到了第15个街区,因为第一个参加比赛的哈尔芬尼挖出了第一个街区,他说他挖的第一个街区似乎是第70个街区(可能是70号,应该是第71块,但前后十分钟对我的分析影响不大)然后回复他的帖子已经一天半了。

谜团之三:为什么中本聪在创世区块中获得的 50 个比特币奖励不能花掉?

创世区块中唯一的交易是对所有挖掘该区块的人的奖励。中本聪在这个区块中获得了 50 个比特币(按照 1 个比特币的当前价值 7,000 美元的价格,50 个比特币价值 350,000 美元)。但是这50个比特币都不能用了,这是为什么呢?

中本聪在设计比特币节点软件时,为了提高交易效率,在软件中建立了一个名为“chainstate”的数据库,用于存储当前所有的UTXO(未使用的交易输出)。 ,未使用的交易输出)和一些元数据。

这里我简单说明一下,当我们知道比特币转账交易后,我们需要确认是否是双重支付,并且必须检查所有区块以确定转账账户是否如此丰富。那么即使是技术新手也知道,随着区块链越来越长,这个查看的效率肯定会越来越低,所以必须对软件进行优化,所以中本聪在第一版节点软件中创建了它。我刚才提到的数据库,存储了整个比特币网络上所有尚未支付的账户信息,这样每当有新的区块出来时,只需在这个数据库中更新其中产生的交易的转入账户比特币创世纪区块地址,它可以很方便的验证是否是双重支付。

这个实现并没有改变区块链作为所有原始数据的基本原理,只是在节点软件上对数据进行预处理以提高效率。但是在这样的软件中,存在一个错误(错误意味着缺陷)。出于某种原因,在创世区块中获得奖励的账户地址并没有记录在数据库中,所以将来即使中本聪重新出现在世界上,他也会开始用自己的私钥签名,将比特币中的比特花掉。创世区块。但是,在收到这笔交易后,全网所有节点都无法在自己的预处理数据库中找到该账户地址,因此不会被视为非法交易。因此,创世区块中的 50 个比特币无法使用。

这种情况实际上是一个错误或经过深思熟虑的设计。有各种意见。因为这是一个可以通过补丁解决的问题。然而,近十年来,没有人修补过这个补丁。因为有人说创世块不是通过挖矿比赛来比较的。那个时候,中本聪想挖什么就挖什么。因此,为了表明自己不会利用这一点,中本聪将这 50 个比特币设计为不能花掉的状态。但我不这么看。在我看来,除了创世区块,他发布软件之前的14个区块属于他想为所欲为的时间。它们都应该被设计成不能花掉。

但是为什么比特币社区的专家现在不修补这个错误呢?原因是目前比特币网络中的所有节点软件都不能随便升级,尤其是打补丁或者添加新功能,因为即使比特币社区已经发布了最新版本,是否升级也取决于每个节点。 ,这将导致比特币区块链的分叉(具体原理和细节会另写),分叉将对比特币网络的稳定性和安全性产生很大影响。比特币历史上经历了几次分叉,每一次分叉都引起了比特币社会共识的分歧,甚至是一场骂战。所以,如果节点软件升级为中本聪的50个比特币,那么这就是创世块,升级的结果会直接导致比特币区块链一分为二,所以随着比特币区块链越来越长,这个错误永远不应该被修复。

此外,这是一个无害的错误,损失的只是中本聪本人。有人算过他有100万比特币,那他有50个比特币应该没关系吧?然而,浪漫的是,哪怕是造物主犯下的低级错误,经过很长很长的时间,那个错误也会被各种神话传说美化。就算哪天有人说错了,估计也没有人会相信。 .

注:这部分我参考了网上很多有趣的文章和帖子,主要从以下两篇文章中阅读了一系列文章:

(1)比特币 比特币论坛的 Sergio Demian Lerner 的帖子,“隐藏在创世区块中的谜团。”

(2)Sergio_Demian_Lerner在他的博客Bitslog上发表了一篇文章,“比特币区块链中隐藏的关于Satoshi的新谜团”。这里的意思是十六进制有10个“0”,一般多专业,二进制应该是43个“0”。因为16进制的1个“0”对应Binary是4个“0”,10个“0”表示有40个二进制“0”。而16进制的“1”,二进制是“ 0001”,前面有3个二进制“0”,所以一共有43个“0”。后面的目标值指的是16进制的8个“0”,相当于二进制的32个“0”。后者十六进制的“f”相当于二进制的“1111”,所以目标值前面一共有32个“0”,这个目标值也是比特币“难易度”为“1”的基准,也就是我们的上一篇《比特币网络的挖矿难度是多少?》介绍。引用自: