当前正在运行的比特币网络大约承载了其最大承载量30%左右的网络交易流量,但是,这对广大的比特币用户而言又意味着什么呢?我们是否应该关注这一问题?那么等这一比例达到50%甚至90%又当如何?
众所周知,当马路上塞满了各式交通工具的时候,道路就会开始变得拥堵,当大量的游客从同一个建筑物里进进出出的时候,大家的脚步都将趋缓,到达同一目的地所花费时间就会比平时更长。那么,对比特币而言,又将如何呢?
比特币交易处理
比特币挖矿(也是交易被处理的过程)正是所谓的非同质(或不均匀)的泊松(是一种统计与概率学里常见到的离散机率分布)分布过程。在这篇文章:头痛的哈希率,我们可以看到,其实我们额定的10分钟区块时间间隔并不像我们希望的那样简单。而再涉及到交易的处理问题,就变得更加复杂了。现在我们看交易显得很随意的样子;但事实上,它们是严格遵循类似泊松过程分布这样的设定。
在比特币的交易案例中确实存在一些其它的偏差问题。(参见:每秒7个交易?真的吗?)周末比其它的日子通常更平静,而比特币的交易也可以被网络的延时所困扰,孤块竞赛以及开采费用可能会刺激一些交易的处理比别的要快。虽然这些影响还没有真正开始发挥作用,尽管如此,我们已经拥有一个小规模的交易体量,所以我们可以做出一个模型来模仿这一行为,并看看到底会发生什么。
“每秒7个交易?真的吗?”我们可以看到,目前的比特币网络会出现每秒处理3.5个交易的小规模峰值容量(也有时经常接近3.2)。我们可以利用这些信息来建立一个蒙特卡罗模型,这样就可以预测一笔交易需要多长时间才能得到确认。(蒙特?卡罗方法(Monte Carlo method),也称统计模拟方法,以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。)
蒙特卡罗模型
为了本文的撰写,我专门搭建了这样一个蒙特卡罗模型,假定了一个3.5TPS的峰值,并且它将假定一个由10分钟的区块发现时间构成的挖矿过程以及由不同的网络负载状态下,一笔交易如何被确认的模型构成。例如,10%的负载将是0.35TPS或30240笔的交易/天。为了获取更好的数据仿真,我们把模拟值设在11个不同的负荷水平运行挖掘程序达到100,000周。每个星期,从零以及零个未确认交易开始。
该模拟器忽略了矿工手续费,假定交易的处理是按先到达先处理的原则进行;实际上这对目前大多数的交易而言,是一个相当准确的预测。同时它也忽视了网络传输过程的延迟(一笔交易被挖矿节点发现所需要的时间)但这其实只是让每笔交易增加了最多至几秒的轻微启动延迟,所以说,这也许还说的过去。(见:http://bitcoinstats.com/network/propagation)。这意味着,这些有关交易是如何快速被通过挖矿来完成的数据统计可能是有点过于乐观了。最后,它假定的挖矿网络的容量是恒定的,即其容量既不增加,也不减少。当不断增加时,那么块的发现速度将显得稍快,但过去几个月里,这种效应的影响已经变得相当小了。
让我们看一看,当几乎没有什么交易需要被广播时会发生什么?这应该是一个近乎完美的场景,因为每一笔交易都将可以马上被下一个有效块接纳。本例的网络负载水平是0.1%,或0.0035的TPS。
这里有两条轨迹线。红色的轨迹线显示的是,在一笔交易被提交后的给定时间里,它被确认的概率。蓝线显示的则是累积概率——即:在某一给定时间点或这一时间点之前,它得到第一个确认的概率。
我们可以看到,50%交易得以在415秒内被确认(小于7分钟)。但与此同时,还有10% 的交易在1380秒后还没有得到第一次的确认(23分钟),而1%的交易甚至在2760秒后(46分钟)仍然处于未确认状态。这可能会让人很吃惊,但是,手续费率的改动,或者网络性能的提升或将改变这些基本的数据!过去我们一直使用绘制在对数轴上的图形,这次也不例外。这是一个类似的对数时间(水平)轴:
对数标尺把“尾巴”压向右侧,所以我们可以更容易地比较它们。累积概率曲线看起来也是不同的,一定程度上让这种标尺显得比较容易工作。
随着更多的负载量增加,会发生什么?
当我们开始考虑添加一些合理的负载量在比特币网络上时,事情将会变得更加有趣。早在2014年11月,比特币的网络负载量就已达到了30%左右。如果我们用简单的蒙特卡罗模型,可以很轻易地模拟这一场景。
让我们看一下网络负载从0.1%一直到100%会有什么不同:
可能你第一眼看到的是0.1%,10%和20%的轨迹是如此的相似,甚至20%的轨迹被掩盖到其它两个轨迹线里面了。30%的线条也只是略有不同。这告诉我们,目前我们没有看到对交易率的决定性影响。30%负载的情况下,我们仍然会看到总数二分之一的交易在434秒钟内被确认, 0.1%相对的则为415。这种差距在40%的时候貌似才开始真正的扩大化,然而,仍旧只需要466秒,在80%时我们则需要1109秒(18.5分钟)!100%时则达到很大的7744秒(2小时以上)!如果网络达到100%的水平,当然,仅仅是假设,那时问题会变得异常糟糕,会有10%的交易在22800秒(6.3小时)后仍然没办法得到确认。
矿工手续费会拯救我们吗?
这个模型很简单,因为它假设所有的交易都是按照它们到达的先后顺序来处理的。并没有尝试模拟收费所可能带来的影响,但首先要知道的是,0.1%负载量的情况下(事实上通常都高达30%)并没有任何影响。在这种情况下有没有拥塞,所以交易费用所引起的交易优先次序几乎不会产生任何真正的差异。当网络变得拥挤时,收费的作用就会开始产生影响。
一旦我们开始看到完整的块(我们已经开始在过去的几周里看到这些情况),然后费用应决定这笔交易是否被接纳还是被推迟到下一个块。按统计学上讲,这将意味着更高的手续费用,或者其他被认为可以给网络带来更高价值的原因,将使得曲线趋向于接近一个迄今为止我们所看到的轻负载的系统。这也意味着那些低费用的交易实际上会遭遇比简单模型预测的结果更糟糕的延迟。
除非找到区块产出速度增加的途径,否则,无论手续费率发生多大的改变,我们都还会继续坚持在过去的一贯的观点。例如,在新的比特币核心软件里,其“浮动的费率”不会对任何人的交易哪怕提高超过几秒钟,但是收费的优先级原则将允许任何人可以通过提供较高的手续费来保证自己当前的交易得到优先确认。同样地道理,也不会因为将这个交易确认过程搬移到一个不太拥挤的网络而使得交易的速度变快。
比特币矿工的奖励?
站在和大多数比特币用户不同的角度看,网络拥塞也有一定的潜在积极影响——矿工。区块空间变得稀缺,会导致网络上的许多用户将不得不花费大价钱来缩短他们的订单被确认的时间。而这些手续费将成为矿工额外获取的收入部分。
当区块的空间可以从容应付的时候,矿工则将会遭遇 “公地悲剧”问题,那时他们唯一的选择是接受所有的交易,不管它是多么小额的手续费。由于相对的稀缺性,会突然出现区块空间的竞争市场。费用的支出方可能并不乐意拿出更多的额外费用,但对网络安全而言,让交易费成为矿工收入的很大一部分比例实际上是对网络的长期安全具有很重要的作用的东西。增加的手续费用将在一定程度上抵消矿工即将在2016年出现的下一个区块奖励减半(12.5 比特币/每块)后所面临的收益大幅降低的损失。
后果
如果网络变得更加拥挤,加上费用的增加,又必然会造成对 “垃圾邮件”或低价值的交易的一个有趣的影响。他们很可能会开始发现自己无法承受高额的手续费问题。这也可能是驱使人们开始尝试开发使用类似比特币侧链这种东西的一种诱因。
但有一点是明确的!任何密切关注网络交易的人都有可能会看到那些赶到我们前面的尾灯余光。除非有些事情可以很快发生,看来也许我们可以考虑下是否要放慢我们的脚步了。
源代码:
这篇文章的撰写要感谢来自C语言模拟得来的数据的帮助,这些数据被渲染处理成了易用的Excel图表的形式。源代码可以在GitHub上找到: https://github.com/hashingitcom/bitcoin_traffic_bulletin
----
作者: hashingit
译者:随风潜入芭比特
译者BTC地址: 1FcpgXbSK4H8YQgRZoKioV7oSiyxWfjPcM
文章为作者独立观点,不代表巴比特立场。