比特币丢失的具体原因分析
扫描二维码
随时随地手机看文章
一旦预定数量的代币进入了流通,激励手段就可以完全转变为交易费,并且完全是无通胀的。
从比特币代码的最早备份的版本中,我们找到设定了对区块奖励进行限制的语句。这简简单单的几行代码将比特币的供应量设置为2100万个:
许多人都不知道,比特币的代码中不包含对BTC供应量不超过2100万的检查。检查的只是每个区块申领的奖励不超过规定的数量。
用这个供应量公式来计算在2019年10月19日区块600,000对应的供应量是1800万个BTC:
210,000区块 * 50 BTC + 210,000区块 * 25 BTC + 180,000区块 * 12.5 BTC = 1800万 BTC
社区将这一区块的产生视为比特币通胀即将结束的一个里程碑。但是,精明的观察家指出,比特币的供应量实际上在区块600,000产生时并没有超过1800万个。比特币核心开发人员Peter Wuille提到,在出现区块600,002时实际的供应量是17,999,854.82192702个。
这篇文章中,我们将深入探讨为何比特币的供应量比预期的低,并计算出有多少是永久丢失了。此外,我们具体分析为什么这些比特币丢失了以及相应的原因。
证实被丢失的比特币
创世币
比特币的账簿由一组“未使用的交易输出(UTXO)”组成。汇总这些输出的BTC数值就可以得到全节点所看到的比特币供应量。
比特币的创始区块包含一笔产生50个BTC的交易。不过,这笔交易的50个BTC输出并未包含在UTXO集中。目前还不清楚这是疏忽还是有意为之。
结果是,即使这50个BTC可以在主链上的交易中看到,它们也不会出现在比特币的账簿中。
重复的交易
比特币设计师的另一个疏忽是重复交易的处理。乍一看,这似乎不可能发生(因为它们包含数字签名和对之前交易的引用),但仍然有可能创建重复的交易。
最容易复制的交易是创币交易;它是每个区块的第一笔交易,来让矿工申领他们的区块奖励,因为它们不包含数字签名或对先前交易的引用。如果矿工创建一个创币交易来将相同数量的BTC发送到相同的地址,并使用相同的随机数,那么这一交易就会是完全相同的。
这在比特币的早期发生过两次:
交易代号d5d2..8599是区块91,812和91,842的创币输出
交易代号e3bf 。.. b468是区块91,722和91,880的创币输出
在每一种情况下,第二次交易放入区块时,它的输出就覆盖掉先前的那个交易。
结果是这两个被覆盖的输出都不在UTXO集合中。那100个 BTC也就不在比特币的账簿中。
未申领的奖励
另一组证实丢失的比特币与全节点对创币交易的验证有关。
比特币的协议规定,产生有效区块的矿工可以获得协议定义的奖励以及区块中所包含的所有交易的费用。每个全节点都会检查矿工是否试图申领超出他们允许的数量。不过,他们不关心矿工会不会少领奖励。
显然,少领奖励不是矿工的理性行为,但却发生了很多次。第一次出现在2011年5月的区块124,724上,到目前为止的最后一次是在2019年2月下旬的区块564,959上。
下表中是一些最值得注意的情况:
大致而言,这种做法发生在3个不同的时期,总共出现了1,221次。下图显示了没有领取全部奖励的区块(,按1000个区块进行了存储):
在区块162,000附近、区块180,000到230,000之间和区块530,000明显地出现这样的情况。
根据Bitcointalk用户midnightmagic所说,第一个是有意做的,用来向中本聪致敬。对于其他情况,鉴于某些矿工损失的数量,很大可能是由于矿工用来创建创币交易的软件中的错误导致的。
OP_RETURN输出
有一种称为OP_RETURN的特殊类型的比特币交易输出。它们允许用户将数据嵌入到区块链中(目前每个输出最多可加80个字节),而不会增大UTXO集合(这些输出不会被添加到UTXO集合中 - 它们被认为是可以证明没有被使用的)。
尽管绝大多数这种输出没有花费一个聪创建的,但有些不是。区块600,000就有3.723039 个BTC被发送到OP_RETURN输出,这使其永远无法使用,并且不属于比特币供应量的一部分。
总结
总的来说,我们可以计算出区块600,000产生时比特币的实际供应量;从预期的1800万 BTC减去可被证实丢失的数量。
假定丢失的比特币
假地址
在OP_RETURN输出标准化之前,销毁比特币并没有一种易用可行的方式。结果就是,用户采用“假地址”,这是一个没有已知私钥的地址。
以下是一些值得注意的地址:
截至区块600,000为止,这3个地址就包含了2213.19538012个 丢失的比特币。
理论上来讲,这些比特币不是永久丢失的- 有人可能找到它们的私钥。但是,在只有地址的情况下找到私钥的唯一已知方法是随机猜测直到找到正确的组合。实际上,这种情况发生的可能性非常小。
漏洞
在当今钱包软件的美丽外表之下,有一些关键代码负责起草,签名和将我们的交易广播到比特币网络。如今,很少会在其中发现破坏性的漏洞,但情况并非一直如此。
2011年11月,MtGox成为代码中漏洞的受害者。他们将2609.36304319 BTC发送到一个假脚本中,现在没有办法使用它们。
僵尸币
比特币丢失的另一个来源是那些很多年没动过的比特币。由于无法知道其持有者是否仍然拥有钥匙,因此它们通常被称为“僵尸币”。
为保守起见,我们只计算比特币在首次交易(2010年7月)之前最后一次所触链的数量。原因很简单:在被交易之前就购买了比特币的人不太愿意备份他们的钱包,因为当时认为比特币的价格非常低。
在区块600,000,有1,496,907.88000 个比特币在2010年7月之前被最后动过。
这些比特币上一次动过是在2019年7月,当时花费了150个BTC。
总体而言,自2013年牛市以来,这些比特币币很少被使用。考虑到从2013年到现在的价格上涨,这些比特币的持有者要么是相信其长期的价值,要么是他们无法使用这些比特币。
结论
只有2100万个比特币是比较乐观的说法。随着时间的流逝,有一些事情会影响比特币的实际存在的数量。
根据对这些丢失的比特币的估计,以下是区块600,000时比特币的存在数量以及一些意外情况导致的丢失的数量。