今天 星期五
2020-06-08 11:23:15
如果区块链会说话

数据及可视化:韩   丁技术支持:张继岩

我是比特币区块链,自2009年诞生至今,我已经11岁多了,有人把我比喻为一本账本,我一个个区块就是一页页账单。我的信息就散落在一页页账单里,目前我最新的账单序号为630073,循着一页页的账单开始我的故事吧。

 01 创世区块

2009年1月3日 (本文提及的时间都是UTC时间,UTC时间+8小时为北京时间)是我的生日。在芬兰赫尔辛基的一个小型服务器上,我的第一个区块——创世区块被挖出,它被标记为0#区块。

我自己也不知道当年创世区块挖出来用了多久,这是一段关于自己,我唯一没有记忆的时间。

创世区块被挖出后,后面所有的区块都从创世区块延绵展开,它是我的根,也是其他所有区块的祖先

在创世区块上,中本聪把《泰晤士报》当天的头版标题:“The Times 03/Jan/2009,Chancllor on brink of second bailout for banks”刻在了创世区块上,暗讽各国政府滥发货币以及不合理的货币政策是导致当时全球经济危机的根本原因。

在我诞生之初,我的每个区块里都只有一笔交易——创币交易,这是我给挖到新区块矿工的奖励。

 02 第一笔比特币转账

只打包了创币交易的区块,被称为空块,我的前170个区块都是空块。

直到序号为170的区块,我迎来了我生命中第一笔转账,转账金额为10枚比特币。之后,同一个转出地址,分别在序号为181、182、183和248号区块上也有转账,一共转去32枚比特币,剩下的18枚比特币一直没有动过。2013年之后,开始不断有人往这个地址转账小额的比特币,他们可能是以这种方式在向第一位转账者致敬。目前这个地址共有18.437枚比特币。

▲第一个转出比特币地址的转账记录

小编旁白:据悉,这是中本聪为了测试比特币转账,给哈尔·芬尼转了10枚比特币,哈尔就此成为比特币转账的第一位接收者。2013年3月19日,他在bitcointalk上发布《Bitcoin and me》一文,里面提到,他可能是除中本聪之外第一个运行比特币的人,详见下文。

译文:当中本聪宣布发行该软件的第一个版本时,我立即就下载了。我认为我是除了中本聪之外第一个运行比特币的人。我挖了大约70多个区块,当中本聪将十枚比特币发给我做测试时,我成为了第一笔比特币交易的接收者。在接下来的几天里,我与中本聪使用电子邮件通信,通信的主要内容是我报告软件bug而他负责修复。

▲原文和译文来源:https://bitcointalk.org/index.php?topic=155054.0

 03 空块

在我诞生之初,我鲜为人知,我的区块多为空块。后来,我被越来越多的人知道,我的区块丰满了起来。

目前我的区块中一共有88898个空块,约占目前区块的14.1%。如果说最初的空块反映了矿工的寂寞,那么现在空块则体现了矿工之间的激烈竞争。

 04 出块时间

我平均出块时间的目标值为10分钟,而我实际出块时间跨度很大,最长耗时好几天,最短的却是负时间,当然,负时间是一个“错误”。

出块时间最长的区块序号为1,它紧挨着创世区块,它的诞生耗时超过7719分钟,约5.36天

出块时间最短的区块序号为156114,它的诞生时间是-118.75分钟,这相当于父区块的诞生晚于子区块,这不符合常理。截止到序号为630073的区块,父区块的出块时间等于或晚于子区块的块,一共有14444个,这类区块我暂且称它们为“穿越区块”吧,它们占到所有区块的2.29%。

实际上,区块的出块时间一定晚于其父区块的出块时间,只有父区块被挖出,子区块基于父区块的哈希值才可能构建合法的区块。

我标记区块出块时间的参数来自该区块的时间戳。我的协议规定,最新区块的时间戳要大于其前面11个块的时间戳的中位数,基于这一条规则,子区块标记时间戳是可以早于父区块的我的法则包容这种看似不符合常理的现象。子区块标记的时间戳早于父区块,可能的原因有矿工网络服务器存在时间差、矿工挖矿构造区块时没有更新时间戳而沿用了之前的时间戳、矿工在测试我的规则等。

刨除掉所有的“穿越区块”,正常区块平均出块时间是587秒,非常接近我的目标值600秒,出块时间的中位数为410秒。这也反映了,我难度调整机制的有效性。

▲出块时间分布区间占比-1

▲出块时间分布区间占比-2

 05 难度调整

在最初的阶段,我的挖矿难度一直没有变,直到第20个难度调整周期,我的挖矿难度从1调整为2。从创世区块被挖出,到第一次难度调整,历时407天

从此之后,几乎每个调整周期,我的难度都有变化。挖矿难度涨多跌少,在过往的312次难度调整中,有20次难度维持不变,244次难度上调,48次难度下调。难度最大的上涨幅度为302%最大的下跌幅度为18.03%。挖矿难度整体趋势呈指数级增长的,平均每个调整周期的上涨率为10.2%

指数级增长的挖矿难度,是我茁壮成长的见证!

 06 播报矿池

挖出新区块的矿工,会向全网广播它们的成果。在最开始的时候,那些找到新区块的矿工都不会告诉我它们是谁。直到序号为130635的区块,第一次有矿工向我表明身份。Eligius成为第一个把播报者标签打在区块上的矿池。播报矿池的标签就像我的纹身,将永久与我相伴。

Eligius矿池在挖出序号为495557区块之后,便再也没有出现了。它从出现到消失,跨越了364922个区块,一共挖出了11387个区块,我一共给了它335662.5枚比特币作为播报奖励。

在Eligius之后,我的区块上被越来越多的矿池刻上了自己的番号,留下番号的矿池累计有119个,截止到序号为630073的区块,标上了矿池番号的区块有400628个,占全部区块的63.58%,而被匿名矿工挖出的区块有229446个。

累计从我这挖出区块最多的矿池是F2Pool,它一共挖出了54222个区块。

也有少数的矿池挖出几个甚至一个区块后便从此消失于江湖。

▲累计挖出超过200个区块的矿池

 07 区块奖励

我给矿工的出块奖励每21万个区块减半一次,前不久刚经历了第三次减半。在过往的63万多个区块,得到奖励最多的是不留名(unknown)的矿工群体,我不知道他们是谁,在我运行的早期,他们守护着我安全,并让我得以延绵生长,他们累计得到超过1030万枚的比特币,几乎占到了我全部奖励的一半,那些被他们挖出的比特币,是我对他们感谢和敬意。

除去不留名的矿工群体,得到区块奖励最多的矿池是F2Pool,它一共挖出了1043168.75枚比特币(不含矿工费)

▲累计获得出块奖励超过3000枚比特币的矿池

 08 矿工费

除了出块奖励之外,矿工还能收到打包交易的矿工费。最开始的时候,转账不需要矿工费。第一个收到矿工费的区块序号为2817,这个区块一共打包了三笔转账。这三笔转账都很有意思,三笔交易转出地址和转入地址都是同一个地址,三笔转账一共花费了2.01枚比特币,这可能是某个矿工在做测试吧。

▲第一个收到矿工费的区块中的三笔有趣的交易

此后,矿工的手续费为0的依旧维持很长时间,直到后来比特币的转账多了,为了交易能尽快被矿工打包,转账交易者支付的矿工费也逐渐多了起来。矿工费最高的一笔交易被打包在序号为409008的区块上,这笔转账的矿工费高达291.2409枚比特币,这应该是一笔输错了矿工费的转账,也不知这位持币者后来怎么样了。

▲史上矿工费最高的转账

截止到63万个区块,累计获得矿工费最多的矿池是蚁池(AntPool),累计获得超过29997枚比特币。

▲累计获得矿工费超过100枚比特币的矿池 

 09 使命未达,区块不止

出块奖励第三次减半不是我故事的终点,每天我都会长出100多个新区块,它们像是我的枝叶,为我的繁荣生长提供养分,它们也是我的区块年轮,真实地记录着我生命里的点滴故事,它们汇聚在一起才有我今天的模样。

在我生命的第一天,我就知道自己被赋予的使命,使命未达,我的故事不止。期待我的故事里有你,更期待你的参与,让我未来的故事更加精彩绝伦。

感谢李世胜和闪电对本文的指导。

关注「知矿大学」并在后台回复“区块链”,获取63万个区块的全区块数据和可视化图表。