比特币的白皮书最近刚满11岁,其内容非常简洁,而论文中关于供应量的内容只是略带提及:
“一旦预定数量的比特币进入流通,激励机制就可完全转变为交易费用,并且完全没有通货膨胀。”
而深入研究比特币最早的代码备份之后,我们可发现中本聪设置的区块奖励的传奇公式,这些简单的代码,有效地将比特币的总供应量设置为2100万BTC:
然而,很多人不知道的是,比特币的代码库并不包含任何“BTC的供应量不超过2100万”的检查,相反,软件会检查每个区块声明的数量不超过规定的数量。
应用供给公式计算2019年10月19日第600,000个区块时的供给值,我们可得出1800万BTC的值:
“210,000区块*50BTC+210,000区块*25BTC+180,000区块*12.5BTC=1800万BTC”
这一区块的诞生,被社区誉为是比特币通胀进程接近尾声的里程碑。
然而,精明的观察人士却在那时评论说,比特币的供应量在区块高度达到600,000时并没有达到1800万BTC的里程碑。
据BitcoinCore开发者PeterWuille表示,截至600,002个区块,比特币实际供应量应该是17,999,854.82192702BTC。
那么,这到底是怎么一回事呢?
在这篇文章中,我们会深入研究比特币的供应量为何会低于预期,并计算有多少比特币永久丢失了。此外,我们分析了这些币丢失的确切原因,并解释了发生在它们身上的事情。我们首先检查可证明已丢失的币,然后分析假设丢失但可能最终被发现的币。
一、可证明永久丢失的比特币
1、创始区块比特币
比特币的账本由一组“未使用的输出”组成,总结这些输出的BTC值,我们可得到全节点所看到的比特币供应量。
比特币的第一个区块,包含了一笔铸造50BTC的交易。但是,这笔交易的50BTC输出并不包含在比特币的UTXO集中。现在还不清楚这是中本聪的一个疏忽还是故意为之。
其结果是,这50BTC不存在于比特币的账本中,即使它们在主链中是可见的。
2、重复的Coinbase交易
比特币设计者的另一个疏忽是重复交易的处理。虽然乍一看,它们似乎不可能发生,但仍然有可能创建重复的交易。
最容易复制的交易是coinbase交易,这是每个区块的第一笔交易,允许矿工认领其区块奖励,因为它们不包含数字签名或对以前交易的引用。如果一名矿工创建了一笔coinbase交易,将相同数量的BTC支付给相同的地址,并使用相同的额外nonce,那么该交易将是相同的。
这在比特币早期历史上发生过两次:
交易d5d2..8599是区块91812和区块91842的coinbase输出;
交易e3bf…b468是区块91722和区块91880的coinbase输出;
在每种情况下,第二次包含交易时,它的输出都会覆盖掉前面的输出。
结果是两个被覆盖的输出没有在UTXO集中。也就是说,这100BTC并没有在比特币的账本当中。
虽然这看起来是一种无害的疏忽,RussellO’Connor依旧在2012年时将其视为一种攻击媒介。利用重复的交易,攻击者可从账本中删除其它用户过去的交易。
针对这一点,开发者在2012年引入了BIP-30,以禁止在旧交易的输出全部用完之前包含新的重复交易。
2012年晚些时候,BIP-34的引入还使得复制coinbase变得更加困难,因为它们现在必须包括它们所属的区块高度。
3、未领取的奖励
另一组可证明丢失的币,与通过全节点验证coinbase交易有关。
比特币的协议规定,一个有效区块的矿工,可领取到协议规定的报酬加上该区块中包含的交易费用,每个全节点都会检查矿工不会试图索取超过允许的数量,不过,全节点并不在乎矿工领取的金额是否低于其应得的数额。
显然,部分领取的情况对于矿工而言是非常不理性的,但历史上却发生了很多次。第一次发生在2011年5月份的第124,724个区块,最后一次则发生在2019年2月下旬第564,959个区块。
下表列出了最值得注意的例子:
大体上,这种行为发生在3个不同的阶段,共出现了1221次异常。下图显示了未申请全额奖励的区块数量:
在区块高度162,000附近,我们可以看到出现了很多未申请全额奖励的事件,另一个阶段是发生在180,000到230,000个区块之间,最后一个阶段则发生在第530,000个区块附近。
据Bitcointalk用户midnightmagic表示,第一次出现未申请全额奖励的事件是为了向中本聪致敬。对于其他情况,考虑到一些矿工损失的金额,它们有可能是因为挖矿软件中的错误造成的。
4、OP_RETURN输出
有一种特殊类型的比特币交易输出叫
OP_RETURN,它们允许用户在区块链中嵌入数据,而不会使UTXO集膨胀。
虽然绝大多数此类输出都是用0聪值创建的,但有些输出则不是。截至第600,000个区块,共有3.723039BTC发送到了OP_RETURN输出,使得它们永远无法被使用,也就是说,它们不再是比特币供应的一部分。
5、小结
总的来说,我们可以计算比特币在600,000个区块时的实际供应量,方法是从预期的1800万BTC中减去可证明丢失的币。
截至第600,000个区块,比特币的实际显示供应应该是17,999,817BTC,这是技术上的确切值,这一结果,我们可通过查询全节点得到。然而,我们还可以做得更好,让我们看看更多比特币“黑洞”的情况。
二、假设丢失的比特币
1、虚假地址
在
OP_RETURN输出标准化出现之前,我们并没有一种容易获得、可证明的方式来烧掉比特币。结果,有些用户就使用了“虚假地址”,即没有已知私钥的地址。
在创建比特币地址时,我们通常从一个已知的私钥开始,然后对其进行转换以获得其对应的公钥地址。这个过程使得生成自定义的“虚荣前缀”变得非常困难。
然而,在虚假地址的情况下,没有人知道地址的私钥是什么。因此,虚假地址可以任何前缀开头。但是,最后的字符将是随机的。
虽然不可能起草一份完整的虚假地址清单,但我们可列出一些值得注意的虚假地址:
仅这3个地址就丢失了2213.19538012BTC。
理论上,这些币并不是永远丢失的。然而,只给出一个地址就可找到私钥的唯一已知方法,就是随机猜测,直到找到正确的组合。实际上,在我们的宇宙生命中发生这种事情的可能性是很小的。
2、漏洞
在钱包漂亮的外表下,有一些关键的代码负责制作、签署和向比特币网络广播我们的交易。如今,我们很少能在它们身上发现让人崩溃的漏洞,但情况并非总是如此。
2011年11月,MtGox在其钱包软件中遭遇了一个漏洞。他们把2609.36304319BTC发送到一个虚假脚本中,却不知道如何使用它。这个虚假脚本,就好比是如果你试图将钱发送到一个“空”的公钥,而软件没有编程来检测这是不可取的。
其他资产中也有类似的漏洞,使得币无法被使用,最著名的例子就是以太坊Parity。
3、“僵尸币”
丢失币的另一个来源是多年没移动过的币。由于不可能知道它们的主人是否还掌握私钥,所以这些币通常被称为“僵尸币”,即处于不死不活的状态。有了这一类,我们就离开了币是否真的丢失的准确定性领域。
为了保守估计,我们将只统计2010年7月前未移动过的币。理由很简单:由于比特币的感知价值非常低,因此人们没有多少动力去备份钱包。
截至第600,000个区块,全网2010年7月之前未曾移动过的币共有1,496,907.88000BTC。根据各种估计,中本聪拥有这些币的一半以上,因为在比特币的早期历史中,其是主要的挖矿者。
2010年7月之前的老币当中发生的最近一次移动,是在2019年7月份,当时移动的币为150BTC。
总体而言,自2013年牛市以来,这些上古时代的币很少被使用。鉴于比特币从2013年到现在经历的价格暴涨,这些币的拥有者要么是非常长期的持有者,要么他们无法获得这些币。
4、有负担的币
最后一类币可能会被认为处于丢失状态,或者至少暂时不流通:已知被盗的币。直到更好的混币解决方案的出现,它们将很难再进入流通,特别是非常大的量。
在比特币的历史上,曾发生过很多重大的黑客和盗窃事件,而其中有两起被认为是“不流通”的事件,2011年,MtGox被盗的8万BTC,以及2016年Bitfinex被盗的12万BTC。
2011年3月,黑客从MtGox的钱包中盗走了79,956BTC,至今其未触碰这些比特币,而到今天,这一地址已成为了全网第6富有的地址。
JebMcCaleb和MarkKarpelès在盗窃案发生后的谈话
为什么这次盗窃的资金从未被移动过呢,背后的原因暂不得而知,很可能是窃贼也无法访问这些比特币的私钥了。
2016年8月,Bitfinex因黑客攻击丢失了119,756BTC,直到今天,这些被盗的币很少被移动,只有22BTC被找到。截至第600,000个区块,黑客地址中仍有117,091.31922097BTC。
三、总结
我们常说比特币的总量只有2100万BTC,这种说法其实并不准确,随着时间的推移,怪事、错误以及其他事件会影响到比特币真实的存在量。
这种分析只是评估比特币真实供应量的众多方法之一。根据需要,我们可以考虑、忽略或扩大不同的类别。它还使用自顶向下的方法,从最大可能的供应开始,并移除各种类型丢失的币。另一种估算比特币供应量的方法,是按上次活动的时间将比特币分解,然后预计多年未动的比特币可能会丢失。我们将继续监控丢失的比特币,并在未来更新我们的发现。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。