首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你的区块链缺内存了吗?

火球财经

懂区块链 更懂你

正文共:2933字

预计阅读时间8钟

虚拟货币变得是越来越主流了,华尔街,芝交所以及各国金融机构也纷纷加入。

主流货币例如比特币,以太坊等也是风头正盛,但是随着这些数字货币的发展,越来越多的问题也显露出来,其中最重要的问题,就是扩容问题。

比特币现有的转账速度每秒只有7笔,以太坊稍微好点,每秒也只有20笔。在visa每秒1667笔转账和paypal 193笔转账的速度面前,比特币以太坊就直接被秒成渣了。

在比特币世界里,如果你只支付最少的矿工费,那么平均需要等待13分钟才能完成一次转账。

更悲剧地是,新的转账还需要等新的区块被挖出来才能完成,挖区块这个过程就需要10分钟。而且由于比特币在设计的时候只有1MB的区块容量,所以每个区块所能容纳的转账数据也很有限,如此这般,就导致了整个比特币系统转账速度都贼慢。

那么以太坊呢?其实以太坊也好不到哪儿去。理论上说,以太坊每秒应该能处理1000笔转账。但是事实上,由于以太坊每个区块燃料(gas)的限制,其实是没办法达到这种转账极限的。

比如说小红给小明发了个智能合约,小明发现这个合约如果要运行的话,需要花费一定的燃料(gas)费用,这里的燃料费用就可以简单地理解为小明所做的计算量。

但是由于区块有燃料(gas)限制,矿工只能将燃料需求加起来低于总的燃料限制的转账数据加入到区块中,也就是说每个区块中承载的转账数据是有限制的,自然这也就会限制整体网络转账的速度。可见以太坊的扩容也是刻不容缓啊!

图片解释:以太坊燃料限制

接下来,咱们一起来分析这些扩容的方案到底是怎么回事儿。

隔离见证 (Segwit)

前段时间比特币社区闹的沸沸扬扬的分叉事件,其实就是和隔离见证(Segwit)有关。其实Segwit扩容的方法,说起来也很简单,就是在比特币主链外面加一个侧链(side chain)。

它会和比特币主链同时运行,将主链上所有的签名数据都转移到侧链上,所以主链上的区块就可以容纳更多的转账信息,而且还不用增加区块大小,简直美滋滋啊!

图片说明:Segwit侧链技术

根据上面的阐述,Segwit的优点就显而易见了。增加了单个区块可以容纳的转账数据,同时也就减少了转账的费用。而且这样也会让转账确认时间变得更快了,因为转账数据等待区块挖出的时间减少了。

Segwit还有个很大的好处,就是不需要使用第三方的扩容协议,例如闪电协议,确保了比特币网络的完全去中心化。

增加区块大小

这其实解决扩容最简单粗暴的办法,直接给你把区块变大不就行了。不过之所以当时中本聪老哥把比特币区块定义为1MB,就是担心区块太大,会有很多的欺诈信息涌进来,导致比特币网络堵塞。

要想增加区块大小,就得从比特币主链分出一条链来进行参数更改,也可以理解为我们常说的 “硬分叉” , 这么一来就有两条并行的比特币链,又会导致社区的分裂。

同时,随着分叉链的产生,挖矿所需要的算力也更加多,大的矿池就逐渐占有较大的优势,从而中心化也越来越明显。

不过支持这个方案的小伙伴却认为,增加区块大小,就意味着单个区块中的转账数量增加了,从而也就增加了矿工挖出单个区块所获得的转账费用。

而且如果比特币区块大小一直不增加,那么转账费用可能就会不停地增加,到最后可能普通人都用不起比特币了。

对于以太坊社区,也不是很多人都支持通过增大区块大小的方式来扩容。因为以太坊扩容背后的问题主要是节点共识的速度,增大区块大小,每个节点所需要做的计算和验证也会更多,区块增大并不能完全解决问题。

而且增大区块,也就意味着硬分叉,这样又会导致社区的分裂,之前的ETC(以太经典)事件,已经有前车之鉴。

股权证明共识机制(PoS)

以上两种方法,包括Segwit和增加区块大小,都是从硬件方面来扩容区块链,那么如果从软件方面,例如共识算法的优化,是否也能起到效果呢?

现在以太坊网络就处在PoW和PoS混合机制的状态下,这意味着大多数的转账还是PoW,只有每第100比转账是PoS机制。这么做其实是非常有道理的,因为在验证PoS在以太坊上是否可行的同时,也能保障以太坊转账不会停滞。

那么到底PoS机制有啥好处呢,连以太坊V神都觉得靠谱?首先,和PoW机制比起来,没有挖矿,减少了大量资源的浪费,也不会有你的设备好,挖矿速度就更快这种说法。在PoW机制,还有个极大的缺陷,如果你有超过51%的算力,你就可以攻击比特币网络。

然而,在PoS机制下,你需要有51%的代币才行,这个代价实在太大。而且别忘了,你得锁一部分代币资产才能玩,敢瞎来直接给你全没收了。并且在PoS机制下,也能更容易地通过分片方式(sharding)进行扩容。在PoW机制下,拥有较低算力的片区(shard)就很容易被攻击。

对于区块链扩容,PoS机制的作用也是很大的。由于哈希力和你持有的代币股权相关,那么就很容易知道谁有最强算力,使得共识变得更加简单。

PoS矿工是没有“挖区块”的奖励的,全部的奖励都在于转账手续费,所有他们就得拼命去增加区块大小,承载多的转账信息,赚取更多的奖励,从而也会提升转账速度。

分片技术(sharding)

分片技术其实是非常不错的扩容方式,最近火的不行的zilliqa项目,就是其中典型代表了。简单来说,就是把以太坊网络分成很多个片区,每个片区都独立地运行计算,并且这些都会同步发生,这就极大地增加了计算和转账的速度。

同时,每个片区之间不能随便地进行沟通,需要通过某些特殊协议,确保片区的计算都是独立且同步的。

不过分片技术的实施也有很多的瓶颈。比如需要某种机制来确定哪个节点去运行某个分区,并且这个机制还需要保证同步计算以及安全。由于PoS机制还不能完全地运行,分片技术的实施也不那么容易。

链下状态通道技术

闪电网络就是使用的状态通道技术,来对比特币网络进行扩容,实现快速小额支付。状态通道本身是可以让两方进行沟通的通道,应用到区块链上,指的是区块链上和链下的沟通。因为所有的计算都可以在链下进行,链上只需要进行数据的记录,这会极大地降低转账速度。

比如一辆电动车去充电,最后的转账金额是39.19美元,但是中间可能涉及多笔转账。想象下,如果其中的每笔转账都在比特币主链上进行,需要花费多少时间,估计你要疯了。不过有了状态通道技术,链下就可以完成计算,只需要把最终的结果记录在主链上,速度就会快很多!

图片说明:电动车充电状态通道示意

总结

随着区块链概念越来越火爆和主流,为了跟上这个步伐,区块链本身的技术也需要有极大地提升。扩容则是刻不容缓,以上咱们聊的这些方法给我们带来了非常有趣的思路。

END

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180403A1SKK400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券