比特币数据传播
比特币数据在网络中的及时传播是这个生态系统必不可少的基础功能,传播速度可以通过连接到大量网络节点并收集与存储于一个实时数据库来测量。 TradeBlock拥有跨地域的庞大比特币网络数据架构,可以查看并记录每个广播到网络上的消息,包括那些没有被广泛广播的消息,从而给出对网络的精确 分析。
平均传播速度
上图显示了2015年的平均区块广播速度,通过追踪比特币网络上的每个节点广播区块数据,计算第一次广播与所有后续广播之间的时间间隔来测得平均区块传播速度。这张图可以表明,区块体积大小是如何影响数据传播速度,以及如何影响矿工激励与行为。
传播速度与孤块竞赛
当两个或多个矿工计算一个区块花了差不多的时间,比特币网络就会同时为计算下一个区块提供两个(或多个)潜在选择。由于矿工会把他们的算力集中 在工作量最大的链上(通常是区块数最多的最长链),传播速度在这种情况下是至关重要的。一般而言,具有较多节点的区块有更大概率赢得孤块竞赛,从而让下一 个区块续接于其之上。
此外,被拒绝的块被称作“孤块”,没有被后续的区块所接受,处理这个区块的矿工无法获得币基的奖励。下图显示了自4月中旬以来,每天开采的孤块数量,平均每天产生1.3个孤块,即有约1%的孤块率。
每日孤块
下图是对最近三个月的孤块竞赛的观察,尽管产生孤块的原因有多种,而显而易见的是那些不成功的区块最典型的原因是连接的节点数目较少(相对于孤 块竞赛成功者)。虽然在给定时间内比特币网络里活跃的节点大约有6000个,但数据表明,只要连接节点达到3000个,一个特定的区块赢得孤块竞赛的概率 将为90%。最后,在孤块竞赛中获胜的区块似乎通常都是第一个被广播到网络中的,图上获胜区块大多出现在X轴的正方向也证实了此点。
孤块竞赛
接下来,我们考察参与孤块竞赛的区块相对于一段时间的平均大小。下图显示,参与孤块竞赛的区块大小平均要比非孤块竞赛的区块大20%(约100kb),这可能由于大区块需要广播的时间更长。
对于一个区块中的边际交易,每个节点必须与其自身内存池中保存的区块交易清单进行核比,以最终确认区块。造成的结果就是区块中的交易数越多,除 了会延长数据传播时间,还会因每笔交易在网络中的跳动而花更多时间。这意味着在找到的区块被广播之前,其它矿工将花更多时间来散列上一个区块。
孤块与非孤块
传播速度 vs. 区块大小和矿工
为证明数据传输的重要性,我们分析了传播速度与区块大小以及矿工的相关性。我们的数据采集自2015年4月至6月。如下图,表明在区块连接临界 3000个节点的情形下,区块大小与传播时间存在直接关系,举个例子,一个700kb的区块的传播需要17秒,而200kb的区块只需要6秒。
广播到3000个节点所需要的时间
我们还探讨了当一个区块广播到3000个节点,矿工与平均时间之间的关系。从图中可以看出,大多数矿工花费的平均时间落在9.7秒和7.2秒之间均值的标准差内,最高(21秒)为一家中国矿池BW Pool,最低(4秒)为一家波兰矿业公司Polmine。
通过标记每个块的打包矿工的地理位置,我们可以从更广阔的视角分析传播时间与地域的关系,如下图,它表明地域差异会导致传播速度发生微小的变化。总体而言,欧洲的矿工稍快于平均速度,而中国与美国的传播速度相差无几(当去掉一个最高值BW Pool)。
只有不考虑中国GFW的情况下,对中国开采区块的时间测量才是可行的,如果考虑GFW,真正的传播时间是未知的。这就是说,TradeBlock连接到的节点(不到三位数)监测到的来自中国IP地址广播的数据时,它很可能是已经被GFW及时阻止过的数据。
数据传播时间与矿工
数据传播时间与地域
对区块扩容之辩的启示
上述分析对最近持续的区块扩容之辩有重要意义,我们已经证明,(1)区块大小与通过网络传播所花的时间存在直接关系。(2)孤块竞赛中的区块比非孤块竞赛的区块明显要大。
根据区块大小为1MB时的数据传播速度,我们可以推断较大的区块所需要的传播时间。如下图,一个最佳线性回归表明,一个8MB的区块通过网络传播到3000个节点,大约需要137秒。
预测时间
虽然我们在之前的研究中建议,人们不应该期望在短时间内把区块扩增到8MB,因为传播数据每多花一分钟,都将意味着孤块竞赛的概率的增加,其结 果就是反向激励矿工去打包更少的交易。为解决这一问题,有几个建议已被提出,包括挖矿骨干网、交易缓存更新及可逆布卢姆查找表,但在这些建议被实现前,大 区块的传播可能带来挖矿收益的风险量化。
声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。