现阶段比特币汇率过高对比特币系统有害

作者:walker

发布时间:2013年11月16日

网络来源:彩云比特

最近这一个半月,比特币汇率大幅度上涨,比特币再次成为投资界的耀眼明星,受到无数的投资者和增量资金的追捧,比特币世界一片热火朝天兴高采烈的景象。根据比特币挖矿算法的特点和比特币矿工奖励机制,再结合人性中贪婪的天性,我得出一个让我自己都感到惊讶的结论:现阶段比特币汇率过高对比特币系统有害。
先简单说一下挖矿算法。矿工收集比特币网络里的交易单,根据一定的规则把交易单打包成区块,通过SHA256算法处理区块以期望得到一个符合难度要求的HASH结果;一旦哪位矿工处理出的HASH结果符合难度要求,他就可以向比特币网络广播出自己的区块,如果发布这个区块的时间足够早并被绝大多数的其他矿工确认合法后,他就可以得到本区块的奖励和区块内所有交易单的交易费。
SHA256算法其实是一个比较简单的算法,算法先对输入算法的内容进行补位和补长度处理,把输入内容转化为64字节的整数倍,然后对处理后的内容进行与、或、非、异或的位运算。整个SHA256算法如果按64字节为单位计,其时间复杂度应该是O(n),意思就是SHA256算法处理的时间与需要处理的输入内容的字节长度是线性关系。        

在上图中,横坐标是输入内容的字节数,纵坐标是进行1000000次SHA256算法所消耗的系统tick数,从图上可以看出,随着输入内容的字节数变大,SHA256运算的时间也就越长。
典型的交易单数据量为255字节,如果一个区块内包含的交易单越多,那区块的数据量也就越大,那矿工们单次HASH的时间就会拉长,算力(HashRate)就会下降。可能你已经想到一个悲催的事:如果哪次挖矿周期内,所有矿工的运气都很背,总是得不出一个合符难度要求的区块,交易单越垒越多,算力下降越多,所费挖块时间越多,成了一个恶性循环,变成了永远也挖不出那个块。呵呵,还好啦,比特币网络目前限制了区块最大数据量为1M字节,不会出现上面那种尴尬的局面。
矿工挖矿时,选择哪些交易单来打包成区块,这是没有一个固定要求的。一般有两种方式,一种是按优先级排序,一种是按费率排序。优先级的计算公式是“优先级=∑(区块年龄*比特币数量)/交易单字节数”;费率就是交易费/交易单字节数。从这两种方式都可以看出,0交易费的交易单是靠后站的,高费率和高优先级的交易单要得到优先确认。
通过前面的描述,我们可以推导出一个结论:如果减少一个区块里的交易单数量,就可以减小区块的数据大小,可以增大矿机的HashRate。

好,接下来再说一下挖矿奖励和交易费所得。比特币挖矿奖励是在一定时间内是固定值,初始值为50BTC,每挖出210000个区块奖励就会减半,现阶段挖出一个区块是25BTC奖励。比特币网络并不强制要求交易费,但建议比特币发送方都给一定数量的交易费,交易费数量可以由发送方任意指定,目前最新版本的Satoshi客户端默认为1K字节数据交0.1mBTC交易费。这里我要重点关注的一个参数,就是交易费所得与挖矿奖励的比率,先取名叫FeeRate吧,便于后面称呼。按BlockChain的统计,现阶段每天约挖出6000BTC,每天交易费约40BTC(这是不是有点多?我有一点怀疑这个数据),那FeeRate就是0.67%。
人性是贪婪的,如果一个矿工想要最大化自己的收益,根据现阶段的FeeRate,那可以肯定贪婪矿工会更看重挖矿奖励而看轻交易费所得。奖励来源于区块,交易费来源于交易单,适当放弃一些交易单就可以加快区块的获得,这必定成为贪婪矿工的选择。如何减少区块里的交易单?首先是调低区块字节数上限,这样一个区块能装进的最大交易单数就变小了,另外贪婪矿工肯定不愿意失去巨额交易费的交易单(比如之前烤猫和神鱼挖到的大费率交易单),所以设置为费率优先模式也是必然选择。比特币汇率大幅度上升,就会刺激到贪婪矿工,力求单位时间内获得更多的挖矿收益,让他变得偷奸耍滑起来。
不用我多说大家都知道,这样的设置结果必然导致0交易费的交易单得不到确认或者很难才能得到确认,恰好前几天见有人在微博上反映说自己的交易单长时间得不到确认,这是不是正应证了前面的论述呢?来看看BlockChain上的一些图表:

上图为平均确认时间图,从图上可以看出最近一两周的交易单平均确认时间明显拉长了许多。

上图为每区块交易数图,从图上可以看出最近的区块包含交易单数确有增加,但明显与交易单平均确认时间的增加不成比例,请大家注意,这个图是6个月来的数据图,6个月的时间内是包含了多次的难度调整,这多次的难度调整都没有出现过交易单平均确认时间大幅度上升的情况,而唯独只在比特汇率大涨的这段时间出现,足可以大胆猜测为贪婪矿工在利益的驱使下已经改变了打包区块的策略。
比特币是一个货币系统,货币的主要作用是充当一般等价物作为交换媒介。如果贪婪矿工肆意妄为,攫取了区块奖励却减量履行交易单确认的职责,那会大大削弱比特币的交易流畅度,这对于整个比特币系统是有害的。
比特币汇率上涨过于快了,虽然长期是看涨的,但目前的价位明显已经过高了。如果再多等几年直到FeeRate达到10%以上,那这样的贪婪矿工就不会忽视交易费所得了。
还有一个方法,那就是优化一下SHA256算法,为比特币挖矿量身定做,可以让时间复杂度为O(n)的算法变得接近到O(1),那这样也可以让贪婪矿工无计可施,老实挖矿。我没有设计过挖矿芯片,不知道现在是否已经有这样的芯片了,我准备接下来要研究一下这个问题。

本文作者walker,接受比特币捐助,地址:1MrPengJioxcJjnwvejM5GUv4tzC5gwrhW

相关文章:

发表回复

您的电子邮箱地址不会被公开。