编者注:原标题为《那些年中本聪所挖的块,Patoshi Blocks 》
距离2009年1月2日第一个比特币区块被挖出,已经过去了11年的时间,至今我们已经挖掘出了比特币总量的87%,而中本聪在比特币初期,一直在致力于维护网络的稳定发展,贡献了大量的算力,同时也获得大量的比特币。
就在今年的5月20日,据WhaleAlert监测,2009年2月10日区块高度为3654挖出的50 BTC从地址17XiVVooLcdCUCMf9s4t4jTExacxwFS5uh转出,目前该地址余额为0.0001 BTC,此地址自2009年以来一直处于休眠状态。
消息一出,引起了大家的广泛猜测,从2013年开始,就一直有人想要去追踪中本聪所挖到的块,而Sergior这个人基于几种方法的判定,通过可视化的数据,基本确定了疑似中本聪区块的大概分布情况,我们也在这里统称中本聪区块为
Patoshi Blocks
。
Patoshi标记——暗藏的Extranonce
中本聪在比特币诞生期的挖矿行为,一直是比特币爱好者研究的重点。satoshiblocks.info 网站收集了其中最有价值的研究。
首先在这个事件中,在发生转账的那个区块,Coinbase信息中包含一个Extranonce参数,而这个参数与中本聪所挖掘的区块的特征并不相符,正是这个特征
区别了Patoshi Blocks和其他网络参与者所挖掘的区块不同
,首先我们来看一张图。
在图中,横坐标是块的高度,纵坐标是Extranonce的值,其中黑色的点是未被移动过的块,红色的是已经发生转移过的块,从图中我们可以清晰的看到一些斜率相同,并且未移动过的块所组成的点并且连成一条线,这些块被我们推测为疑似中本聪所挖出的区块。
通过http://satoshiblocks.info这个网站我们可以通过他的搭建的可视化图表来更直观的发现一些证据。
首先我们可以看到其中蓝色的点就是疑似中本聪所挖出的区块,他所挖出的区块斜率基本一致,线的末端垂直对比后,基本接上了下一条线的起点,说明了中本聪是在这个时间内一直在持续挖矿,为了保护网络基本的稳定性。
而图中由绿色的点所组成的线,它们之间的斜率也是非常相近的,这是由于早期比特币网络的参与者并不是很多,挖掘比特币的硬件水平又大致相同,且都是通过Cpu进行挖矿,也就是说大家的算力相差不大。
可以看到在14000个区块之前已经有很多人参与挖矿,所以早期的区块都由中本聪所挖出的观点是错误的,这点早就被比特币最早参与者之一的哈尔·芬尼所证实,他在全网第70个块时就已经参与了比特币的挖矿,并且在Btcointalk论坛上发表了内容。
通过以上的证据,我们大致可以理解中本聪挖矿行为具有特性的事实,那么为什么他在挖矿时的Extranonce值具有固定的特征呢?我们找到了早期的
比特币发布在2009的9月16日版本为0.1.5的代码
,来寻找线索。
从图中看到,当这个函数为Bitcoinmine启动时,比特币就开始了挖矿的过程。Extranonce在逐渐挖矿的过程中,作为第一个Input的ScriptSig,Extranonce每填写一次就需要++。
在这段代码中,我们看到当比特币的Nonce与后面的数=0时就会进行检测,下面有三种情况会使得Extranonce值加1
-
当Nonce为零时
-
当挖到最新的块
-
根据最新的交易更新时间已经过去了60秒,60秒之内把网络上的交易再重新收集一次时
其实Extranonce就像一个计数器,计数器的斜率和自身的电脑性能有关,所以Sergior看到这些数据后,引发了思考,中本聪的斜率为什么和其他人不一样?所以我们猜测,中本聪的电脑可能比别人的性能快4-5倍,因为他的斜率别其他人都要陡的多。
-
当出现新块的时候,所有人的Extranonce都会加1
-
谁先把块头的Nonce也就是2的32次方先编译完,谁的Extranonce就会增1
编译的越快,可视化的线条就越陡,代表Extranonce更新的频率越快,Extranonce更新的频率则和电脑的性能相关。
留给后人的记号——Lsb Nonce
另外一个证据是关于lsb,它是一个四个字节的数据,Nonce在每次挖矿加1时,实际的空间是0-2的32次方之间,把他拆成4byte的数据来看,最后一个byte++以后,每从0-255循环一次,循环到下一个周期时,第二个Byte会进一位,这里通过取Nonce的最小位、最右边的Byte做特征分析。
分析后发现,Patoshi Blocks具有一个特定的模式,他所挖到的块,斜率很高,从上图可以看到,在还没移动的区块中,Nonce大都集中在[0..9] U [19.. 58]这个区间,中本聪在这个区间挖到块的概率要大很多,在其他区间反而挖到块的概率很小。
从另一张图可以看到,正常矿工的挖矿情况Nonce均匀分布在0-255区间,说明大家挖矿非常随机,也符合比特币网络的特性,而中本聪则只占据了区间的5分之1,这也解释了之前所说,中本聪的挖矿性能大约是其他网络参与者的5倍,斜率会比别人都高的原因,因为块头的Nonce只允许了5分之1的空间,而其他人挖矿的人都是把Nonce所有空间跑完,耗费的时间会更多。
综合来看,为什么这些区块是中本聪所挖出来的主要有三点
-
Extranonce可视化后的线条斜率高,具有固定模式
-
Lsb nonce固定在一个特殊区间内
-
除此之外,在分析的这些Patoshi Blocks中,其中的一些交易打给了当时同样参与项目的哈尔·芬尼,当时芬尼是为数不多在在论坛上公开身份的早期开发者,也变相证明了这些地址来自于中本聪。
以上这些证据也表明了,在区块高度3654的区块并不符合中本聪的挖矿特性,所以并不能证明为中本聪所拥有。
目前Patoshi Blocks 99.9%的比特币都没有发生转移,而其他在早期被挖掘的区块也有少部分没有发生过移动的区块,网络早期并非只有中本聪一个人,自网络上线的几天后就有一些人已经参与到了比特币网络中。
留下悬念、默默退出
除了以上的内容外,我们还发现了一个非常有趣的事情,从30000块到50000块之间的Patoshi Blocks,他们的连线逐渐发生了断开的情况,并不是连续的状态了,其中会有一些断点,与此同时非常多的绿色线条加入,说明更多的矿工加入网络挖矿,这个时间段猜测,也是中本聪发现比特币网络逐渐稳定,并逐渐退出挖矿的一个过渡期。
关于中本聪是否用多台电脑挖矿,根据分析,中本聪应该是用一台电脑来挖矿的,但是中间应该更新过一次电脑,因为后面的斜率相比之前发生了变化,只不过在使用基于Extranonce版本时,自定了Nonce的参数。
所以一些人可能会联想到,中本聪为什么会留下这些痕迹,以至于在比特币发明后的4年才被人发现,而到了5月20日这个事件又被大家所热议。关于这些事情的巧合,我们觉得中本聪应该是故意而为的,在目前的比特币代码中,所有人的Nonce分布都是均匀的,只有中本聪一个人是具有特性的,对于是否由矿池或者几个矿工产生这样的高斜率的猜测,因为当时还没有合作挖矿的概念,大家都可以通过单个Cpu挖出比特币,也被排除了。
中本聪知道这样的操作会留下痕迹,会被后面的人分析,也可能是为了证明自己当年挖到的块和别人相比与众不同Satoshi行为会以独一无二特性永远被攥写在区块链中永不篡改。
除了向世人证明自己的身份之外,也可能是在说,那些我所挖掘出来的币,它们就放在那里,一举一动都受到大家的监测和关注,更加说明比特币网络是真正的去中心化,
每个人都可以浏览到到网络上的任何一笔转账或者交易,一切都是有迹可循,没有人可以躲过任何比特币网络参与者的监督。