诸多问题
虽然现在处于熊市,但是比特币在区块链的世界中龙头老大的位子也算是从来没有动摇过,大家对比特币的信仰依旧是无限美好。不过比特币也一直存在诸多问题,比如它的平均出块时间、块的大小、每个区块的签名数目、切分性、比特币总量、区块奖励结构等等。其实在比特币刚问世的时候,没有人能想到它会发展成一个重要的去中心化的国际货币,那时候这些问题都还没有暴露出来,之所以后续慢慢暴露出来,最大的一个原因就是使用的人数越来越多了。
所以对于这些问题,一直有人想要进行改进,不过并不是那么容易的。比如比特币的总体数量与记账奖励很可能永远都不会改变,因为那样经济影响太大。因为矿工与投资人都在比特币现有的框架内投入巨资,如果这个框架改变了,会对他们产生巨大冲击,这对于比特币来说是一个极大的损失。所以,社区基本达成共识,不管这些特性好或不好,都不应该改变。
交易速度
但其他一些方面的改善可以让所有人受益,因为一些初始设计现在来看确实不太合理。其中最主要的是比特币系统的交易处理能力。每秒钟比特币网络到底可以处理多少交易?这个硬伤来自对区块大小的硬性规定,每个区块大小限定在1MB,每个交易大约是250字节,所以每块最多容纳4000个交易。平均每隔10分钟,有一个矿工获得记账权利,所以每秒钟只能处理7个交易,这就是比特币网络的交易处理能力!似乎改掉这些限制只是需要改掉源代码的某些常数这么简单,实际上却并不容易,后面我们会简单分析一下原因。
比特币的交易处理能力到底属于什么水平?和目前的一些互联网巨头公司相比,比特币的这个处理能力就像是大棒对火箭炮,根本不是一个量级的。比如天猫在双十一的时候每秒的交易处理量能达到十几万,相当于比特币大约5小时的交易量了。
密码算法
另一个限制是比特币用的密码算法。现在只有几个哈希函数算法和一个签名算法可以使用。比特币使用的签名算法是ESDSA——一种secp256k1的椭圆曲线数字签名算法,很多人都会担心在比特币的一生中,这个算法可能会被攻破。哈希函数也有同样的问题,比特币使用的SHA-1也有弱点,进10多年来,对SHA-1的分析也逐步取得了一些进展(尽管并不致命)。为了改变这些问题,我们不得不加强比特币的脚本语言来支持新的密码算法。
修订协议
那到底怎样才能修订比特币协议并引入一些新特性呢?你也许认为这很简单,只要发布一个新版本,然后更新所有的节点。但事实上非常复杂,实际中,我们根本无法假定所有的节点都会更新版本。网络里的某些节点会无法获取新版本,或无法及时获取新版本。绝大多数节点更新了协议、部分节点没有更新的后果是否严重,取决于协议更新的内容。按照产生的结果,协议修订可以分为两种类型:一种会造成硬分叉,另一种会造成软分叉。
网友评论