33

被“黑洞”吸走的比特币,BTC实际总量已少于2100万

 4 years ago
source link: https://www.8btc.com/article/516676
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

比特币(Bitcoin)的白皮书最近刚满11岁,其内容非常简洁,而论文中关于供应量的内容只是略带提及:

“一旦预定数量的比特币进入流通,激励机制就可完全转变为交易费用,并且完全没有通货膨胀。”

而深入研究比特币最早的代码备份之后,我们可发现中本聪设置的区块奖励的传奇公式,这些简单的代码,有效地将比特币的总供应量设置为2100万BTC:

FbmuMrI.png!web

然而, 很多人不知道的是,比特币的代码库并不包含任何“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万BTC的里程碑。

据Bitcoin Core开发者Peter Wuille表示,截至600,002个区块,比特币实际供应量应该是17,999,854.82192702 BTC 。

z6jAnqQ.jpg!web

那么,这到底是怎么一回事呢?

在这篇文章中,我们会深入研究比特币的供应量为何会低于预期,并计算有多少比特币永久丢失了。此外,我们分析了这些币丢失的确切原因,并解释了发生在它们身上的事情。我们首先检查可证明已丢失的币,然后分析假设丢失但可能最终被发现的币。

一、可证明永久丢失的比特币

1、创始区块比特币

比特币的账本由一组“未使用的输出”(UTXO)组成,总结这些输出的BTC值,我们可得到全节点所看到的比特币供应量。

比特币的第一个区块(账本的起源),包含了一笔铸造50 BTC的交易。但是,这笔交易的50 BTC输出并不包含在比特币的UTXO集中。现在还不清楚这是中本聪的一个疏忽还是故意为之。

其结果是,这50 BTC 不存在于比特币的账本中,即使它们在主链中是可见的。

2、重复的Coinbase交易

比特币设计者的另一个疏忽是重复交易的处理。虽然乍一看,它们似乎不可能发生(因为它们包含数字签名和对以前交易的引用,这使得它们是唯一的),但仍然有可能创建重复的交易。

最容易复制的交易是coinbase交易,这是每个区块的第一笔交易,允许矿工认领其区块奖励(数字资产交易所 Coinbase就是以此而命名的),因为它们不包含数字签名或对以前交易的引用。如果一名矿工创建了一笔coinbase交易,将相同数量的BTC支付给相同的地址,并使用相同的额外nonce,那么该交易将是相同的。

这在比特币早期历史上发生过两次:

  1. 交易d5d2..8599是区块91812和区块91842的coinbase输出;
  2. 交易e3bf…b468是区块91722和区块91880的coinbase输出;

在每种情况下,第二次包含交易时,它的输出都会覆盖掉前面的输出。

结果是两个被覆盖的输出没有在UTXO集中。也就是说,这100 BTC并没有在比特币的账本当中。

虽然这看起来是一种无害的疏忽, Russell O’Connor 依旧在2012年时将其视为一种攻击媒介 。利用重复的交易,攻击者可从账本中删除其它用户过去的交易。

针对这一点,开发者在2012年引入了 BIP-30 ,以禁止在旧交易的输出全部用完之前包含新的重复交易。

2012年晚些时候, BIP-34 的引入还使得复制coinbase变得更加困难,因为它们现在必须包括它们所属的区块高度。

3、未领取的奖励

另一组可证明丢失的币,与通过全节点验证 coinbase交易有关。

比特币的协议规定,一个有效区块的矿工,可领取到协议规定的报酬加上该区块中包含的交易费用,每个全节点都会检查矿工不会试图索取超过允许的数量,不过,全节点并不在乎矿工领取的金额是否低于其应得的数额。

显然,部分领取的情况对于矿工而言是非常不理性的,但历史上却发生了很多次。第一次发生在2011年5月份的第124,724个区块,最后一次则发生在2019年2月下旬第564,959个区块。

下表列出了最值得注意的例子:

NriyMvz.png!web

大体上,这种行为发生在3个不同的阶段,共出现了1221次异常。下图显示了未申请全额奖励的区块数量:

iieMzue.png!web

在区块高度162,000附近,我们可以看到出现了很多未申请全额奖励的事件,另一个阶段是发生在180,000 到230,000个区块之间,最后一个阶段则发生在第530,000个区块附近。

据Bitcointalk用户midnightmagic表示,第一次出现未申请全额奖励的事件是为了向中本聪致敬。对于其他情况,考虑到一些矿工损失的金额,它们有可能是因为挖矿软件中的错误造成的。

4、OP_RETURN输出

有一种特殊类型的比特币交易输出叫 OP_RETURN

,它们允许用户在区块链中嵌入数据(目前每个输出最多80字节),而不会使UTXO集膨胀(这些输出不会被添加到UTXO集——它们被认为是无法忍受的)。

虽然绝大多数此类输出都是用0 聪值创建的,但有些输出则不是。截至第600,000个区块,共有3.723039BTC 发送到了 OP_RETURN 输出,使得它们永远无法被使用,也就是说,它们不再是比特币供应的一部分。

5、小结

总的来说,我们可以计算比特币在600,000 个区块时的实际供应量,方法是从预期的1800万 BTC中减去可证明丢失的币。

jEje6zm.png!web

截至第600,000 个区块,比特币的实际显示供应应该是17,999,817 BTC,这是技术上的确切值,这一结果,我们可通过查询全节点得到。然而,我们还可以做得更好,让我们看看更多比特币“黑洞”的情况。

二、假设丢失的比特币

1、 虚假地址

OP_RETURN

输出标准化出现之前,我们并没有一种容易获得、可证明的方式来烧掉比特币。结果,有些用户就使用了“虚假地址”,即没有已知私钥的地址。

在创建比特币地址时,我们通常从一个已知的私钥开始,然后对其进行转换以获得其对应的公钥地址。这个过程使得生成自定义的“虚荣前缀”(即虚荣公钥)变得非常困难。

然而,在虚假地址的情况下,没有人知道地址的私钥是什么。因此,虚假地址可以任何前缀开头(如果可以使用Base58字母表写入)。但是,最后的字符将是随机的(根据设计,地址的最后一个字符是一个校验和,以防止输入错误)。

虽然不可能起草一份完整的虚假地址清单,但我们可列出一些值得注意的虚假地址:

I7NNBfQ.png!web

仅这3个地址就丢失了2213.19538012 BTC。

理论上,这些币并不是永远丢失的 (有人可以为它们找到一把私钥)。然而,只给出一个地址就可找到私钥的唯一已知方法,就是随机猜测,直到找到正确的组合。实际上,在我们的宇宙生命中发生这种事情的可能性是很小的。

2、漏洞

在钱包漂亮的外表下,有一些关键的代码负责制作、签署和向比特币网络广播我们的交易。如今,我们很少能在它们身上发现让人崩溃的漏洞,但情况并非总是如此。

2011年11月,MtGox在其钱包软件中遭遇了一个漏洞。他们把2609.36304319 BTC发送到一个虚假脚本中,却不知道如何使用它。这个虚假脚本,就好比是如果你试图将钱发送到一个“空”的公钥,而软件没有编程来检测这是不可取的。

其他资产中也有类似的漏洞,使得币无法被使用,最著名的例子就是以太坊Parity(丢失了513000 ETH)。

3、“僵尸币”

丢失币的另一个来源是多年没移动过的币。由于不可能知道它们的主人是否还掌握私钥,所以这些币通常被称为“僵尸币”,即处于不死不活的状态。有了这一类,我们就离开了币是否真的丢失的准确定性领域。

为了保守估计,我们将只统计2010年7月前未移动过的币。理由很简单:由于(当时)比特币的感知价值非常低,因此人们没有多少动力去备份钱包。

截至第600,000个区块,全网2010年7月之前未曾移动过的币共有1,496,907.88000 BTC。根据各种估计,中本聪拥有这些币的一半以上,因为在比特币的早期历史中,其是主要的挖矿者。

2010年7月之前的老币当中发生的最近一次移动,是在2019年7月份,当时移动的币为150 BTC。

Ebu222F.png!web

总体而言,自2013年牛市以来,这些上古时代的币很少被使用。鉴于比特币从2013年到现在经历的价格暴涨,这些币的拥有者要么是非常长期的持有者,要么他们无法获得这些币。

4、有负担的币

最后一类币可能会被认为处于丢失状态,或者至少暂时不流通:已知被盗的币。直到更好的混币解决方案的出现,它们将很难再进入流通,特别是非常大的量。

在比特币的历史上,曾发生过很多重大的黑客和盗窃事件,而其中有两起被认为是“不流通”的事件,2011年,MtGox被盗的8万 BTC,以及2016年Bitfinex被盗的12万 BTC。

2011年3月,黑客从MtGox的钱包中盗走了79,956 BTC,至今其未触碰这些比特币,而到今天,这一地址已成为了全网第6富有的地址。

6FRfmuz.png!web

Jeb McCaleb和Mark Karpelès在盗窃案发生后的谈话

为什么这次盗窃的资金(被盗时价值7.3万美元,当前价值7亿美元)从未被移动过呢,背后的原因暂不得而知,很可能是窃贼也无法访问这些比特币的私钥了。

2016年8月,Bitfinex因黑客攻击丢失了119,756 BTC,直到今天,这些被盗的币很少被移动,只有22 BTC 被找到。截至第600,000个区块,黑客地址中仍有117,091.31922097 BTC。

三、总结

我们常说比特币的总量只有2100万 BTC,这种说法其实并不准确,随着时间的推移,怪事、错误以及其他事件会影响到比特币真实的存在量。

F3am63e.png!web

eMNBVrB.png!web

这种分析只是评估比特币真实供应量的众多方法之一。根据需要,我们可以考虑、忽略或扩大不同的类别。它还使用自顶向下的方法,从最大可能的供应开始,并移除各种类型丢失的币。另一种估算比特币供应量的方法,是按上次活动的时间将比特币分解,然后预计多年未动的比特币可能会丢失。我们将继续监控丢失的比特币,并在未来更新我们的发现。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK