区块链科普系列第32天:速度慢、容量涨,说说区块链的两个心头之痛
文/杜豆豆
每每审视着计算机世界的演变,我总是会联想到小时候喜欢听的《三国演义》。
说书人惊堂木一拍:“话说天下大势,分久必合,合久必分。”
从主机集中系统,到C/S,到互联网、云计算,到区块链。这计算机的世界,也是分分合合,合合分分,和这人间,实在是一样的演变,一样的道理。
常言道,人生不如意,十有八九。人生如此,万事万物亦如此。没有完美的,只有相对更好的。
任何一种技术,即便被吹上天,也都不可能是完美的。区块链也不例外。
今天我们就来聊聊区块链的两个不完美:交易速度慢和不断增长的区块数据容量。
1、网络拥堵:大量交易的确认延迟
区块链中的各个交易都发生在节点上,然后广播到网络中,等节点确认验证后,由矿工打包到区块提交到主链。
一旦节点增多、使用量大,很多交易就会拥堵在网络中。
比如,比特币官方称,大概每10分钟产生一个1MB的区块,但实际的统计结果,大多数交易的确认时间都不止10分钟。
这离正常的商业环境要求显然差距太大。
试想,假如你在银行收款机前取款,要等10多分钟钱才从取款口吐出来,相信你砸掉取款机的心都有了。
这个问题,不单单是比特币有,其他的区块链应用也是一样的,都要面临一旦大规模使用后如何解决网络拥堵的问题。
2、容量贪吃蛇:不断增长的区块数据
以比特币为例,2016年7月的数据是80G,2017年7月已达到130G。再看以太币,发展才3年左右,数据已经超过300G。
由此可见,区块链的数据大小一直在不断增长,而且速度快、无穷无尽。
虽然增长量可以预估,也可以通过存储方式解决。
但要考虑的,一是节点都是分布式的,这样的数据量对于一个普通节点来说,显然是占据硬盘空间过于庞大了。
再者,如果想将其作为完全节点转移到另一台计算机上,靠慢慢同步,可就是一件又费力又有的等的事情了。
而且这样的潜在问题,可不光光是存储问题,它还会带来潜在的不良后果。
(1)完全节点数减少
我们举个例子。
倘若你在电脑上运行了一个比特币客户端,现如今已经有200G的数据量,你平常只是拿来收发转账,有个钱包客户端就足够了。
有一天,你发现电脑容量有限,琢磨着哪些应用又占空间又没啥用的,就把它删了吧。
你比较来比较去,最终很可能就把比特币的客户端删除了。因为,这200G的数据对你来说并没有什么用,实在是对硬盘的浪费啊。
我们知道,比特币是一个点对点网络,要依靠大量节点来组成去中心化的基石,如果大家都和你一样的想法,节点数越来越少,岂不变成了中心化网络系统,比特币的意义也就不复存在了。
(2)验证缓慢
区块链交易,都要经过节点的验证。节点怎么验证呢?
唯一的做法就是与本地的账本数据进行校验,那么在这样一个海量的数据存储中进行数据的校验匹配,显然速度是快不了的。
那在我们目前的架构中,比如淘宝、京东、微信,它们是如何处理大数据问题呢?
它们是架构了规模庞大的负载均衡系统,将数据进行了切分,分摊到全国各地成千上万台服务器上去解决的。
那区块链能这么做吗?
目前来看,很困难。
为什么呢?因为:
首先,区块链基本都是免费开源系统,没有商业官方会为此收费,而构建一个庞大的集群系统,是需要耗费大量设备和人力成本的。
再者,区块链中的节点都是独立运行的,节点之间没什么依赖,如果将一个节点的运行拆分成一个集群,技术上复杂不说,而且很难保证一个节点能顺利访问整个区块数据。如果一个节点上的数据被切分到多台设备,又难以保证这些数据的可靠性。
最终,我们知道,区块链的理念是通过一个分布式、去中心化的网络结构,通过一套可靠的共识规则实现自治管理系统。如果这个完全节点本身就不能保证总是能可靠地访问完整的区块数据,那还怎么去谈自治管理呢?
(本文出自杜豆豆《白话区块链》读书笔记的部分摘录。)
(未完待续)
原创不易,非授权不得转载,转载请注明出处。如果您觉的文章有用,别忘了在文末点赞哦。
读更多好书,请访问我的文集:《一生必读的万卷好书》
欢迎加入“万卷好书读书会”:在这个群里,大家可以分享电子书,交流读书心得,以文会友,自由点赞支持。目前该群已超过100人,需要群主发邀请才能进,有兴趣的简友请加微信dudoudou189联系我。读书会座右铭:在浮躁的时代,安心读书写作,养育心灵。
我已晋升五十万钻高级合伙人,欢迎使用我的专属会员推广链接:https://www.jianshu.com/mobile/club?ref=3debb0de。订阅会员,享受最优惠福利。
网友评论