在近期的区块631058中有这样一笔交易:2009年2月以后未动过的50个BTC被转移了。这引起了短时的价格波动和大量的投机情绪,人们纷纷开始猜测这是否是中本聪在做BTC的转移?
这篇文章中,笔者将解释其背后并不是中本聪在操作的原因,我们仅用一些数据就可验证这一点。
到底发生了什么?
2020年5月20日,有一笔ID为
cb1440c787d8a46977886405a34da89939e1b04907f567bf182ef27ce53a8d71的交易被广播到BTC网络上,并被收录在631058区块中。该交易的输入(input)来自区块3654。由于创世区块是在2009年1月3日之后创建的,所以该输入在网络成立37天后就发生了。
当时在网络上挖矿的人并不多(甚至不知道BTC是什么),所以推测此次输出中本聪操作的。考虑到要解锁这个输出需要私钥,而这个输出被花费的事实表明花费者(spender)是持有私钥的。如果其幕后真的是中本聪的话,这就意味着可能还有更多BTC在市场上被抛售。截至本文完成时,BTC的价格下跌了5%左右,或许其原因就是基于以上猜测。
BTC 2009年回顾
2009年2月只有极少数人知道BTC的存在,他们大多都是赛博朋克邮件列表中的人。当时大多数BTC参与者都在挖矿,因为他们仅认为这是一个有趣的实验。那时候,网络上除了Coinbase有着相当数量的BTC交易外并无市场。而在170区块中中本聪给Hal Finney发送了10个BTC。
现在我们知道中本聪至少挖了9个区块,而且可能挖了更多。也就是说,当时网络上还有其他人(除了Hal Finney以外)也在挖矿。
因为当时BTC还只是一个新鲜事物,且只有那一种软件可以选择,所以当时只要运行BTC软件的人都会参与挖矿。
我们可以从中推测到什么
因为当时大家都在挖矿,而且大部分BTC的交易都在Coinbase中进行,所以我们可以根据BTCv0.1版本的代码来拼凑一些信息。早在v0.1版本时,在main.cpp里有一个创建PoW共识机制的特定函数。当然以目前的水平找到该函数是非常容易的,但它仍然需要大量的CPU能力才能找到。我们可以在下图中看到创建此次Coinbase交易的代码。而在此次Coinbase交易中,除了输出之外,我们还可获知的信息点即为“extra nonce”。你可以看到在第2190行中,bnExtraNonce被设置为0,在第2212行中,同样的变量在生成硬币的while循环中发生递增(这即为挖矿)。最后,同样在第2212行中,bnExtraNonce通过"<<<"操作符添加到coinbase交易的scriptSig中。这就是我们观察到的可以取证的地方,因为这个变量首先会被设置为0,而只要程序在运行前提下,这个变量就会递增。因此,BTC软件运行的时间越长,这个数字就会越高,更进一步,这个数字会显示在coinbase交易的scriptSig字段中(我们可以在区块链上查看)。这就是Sergio Lerner对早期区块链的研究结果,他将某些Coinbase交易标记为来自于 "Patoshi"。在下图中,BTC如果已经转移则显示为绿色的,否则是蓝色的,Y轴extra nonce值,你可以看到许多大的蓝带(strands)。这些均疑似是中本聪的BTC,因为当一个区块被挖出时,extra nonce值会增加。这些也是相当长的运行过程,似乎每隔一周左右就会重启一次。平心而论,我们不知道这些是否是中本聪的BTC(除了9号区块以外),但考虑到蓝带的排列方式(当一个区块结束时,另一个区块很快就开始了),我们有充分的证据证明这些coinbase的输出是中本聪的。
疑似区块
通过对区块3654及其具体coinbase交易的研究中我们可从scriptSig找到extra nonce。scriptSig有一个4字节的数字(0xffffffff001d,这是PoW阈值),然后相应的extra nonce为0xdd01。这个数字是十六进制的小十进制,用十进制表示即为477。将该结果与3653和3655区块(即离3654最近的两个区块)的extra nonce进行对比。3653和3655两区块的extra nonce值分别为2367和2372。
结论
当然,中本聪有可能在在多台电脑上进行BTC操作,而此次交易操作只是来自于其中一台电脑(非挖出区块3653和3655电脑,在上图中显示为蓝点),但考虑到所有还没有花掉的BTC都有明显的蓝色图案,看来这100多万BTC的主人很可能不是同一个人。
作者: Jimmy Song
来源:加密谷
编者注:原标题为《深度丨谁动了区块3654的50个BTC?》