比特币的技术缺陷:区块链信息越来越大怎么办?


发布者 ourjs  发布时间 1495682769417
关键字 技术前沿  分享 
因为分布式存储和验证机制的设计,比特币需要存储历史交易来验证交易合法性,但随着交易量越来越大,区块链也越来越大,扩容已经不能从根本上解决这个问题,比特币会不会因技术问题崩盘?以下是转自知乎:

区块链的一个很大问题在于其中会包含所有的历史交易,这样下去整个链的信息会越来越大,我昨天下载区块链的完整信息已经要大于20G了。这样下去肯定不是个办法啊,这个问题有没有好的解决办法?如果不能解决的话会成为区块链协议的最大问题。


1,交易数据量越来越大,安装一个比特币客户端,光钱包数据就要同步好几天,以后会越来越大。
2,交易确认速度太慢,交易处理能力也很弱,每秒钟能处理的交易数无法满足大规模的使用。
3,比特币自身强调分散和去中心化,但是目前越来越依赖中心化


以下引和知乎上某些用户的观点:

作者:潘志彪

数年来,随着比特币的蓬勃发展,比特币交易数量越来越多,而单个区块体积有1MB的最大值限制,因此区块空余空间显得越来越小。如图所示,区块体积中位数在2015年里得到了翻番,从1月份的292KB快速增长至12月份的749KB。


比特币区块体积大小(来源:区块元http://blockmeta.com

扩容问题在2015年得到了充分的重视与讨论,在2015年06月左右陆续推出了诸多扩容方案,代表有BIP100,BIP101,BIP102,BIP109,BIP248 等若干方案(表X)。



虽然提出来各种方案,但基本可以划分为两类:长期规则派与短期搁置派。长期派偏理想、规则型,一口气敲定便不再折腾,典型代表BIP101/103,设定一个增长规则,便不再调整。短期派则认为未来不可预测,固定的规则过于简单暴力的解决问题,希望设置一个短期数年方案暂时先避开,搁置至未来解决,代表为BIP100,但由于投票过程复杂,后简化为BIP102/109等,而BIP248则一口推迟至2020年,近几年就简单采取翻番增长。

自2015年06月以来,经过了大半年来的大范围的反复讨论,目前长期规则派基本完败。2015 年12月比特币香港扩容会议由Pieter Wuille提出了隔离见证(Segregated Witness)之后,扩容问题甚至已经简化为仅升级至2MB,但陷入了关于实施时间点的争论之中。

一个看似简单的扩容技术问题,却引发比特币社区花了大半年时间,开了数次全球技术会议、私下打无数口水仗,却依然未有明确定论。其背后深刻原因是,区块限制值上调是无法真正解决比特币扩容问题的。


扩容问题

总的来说,根据对比特币网络的理解,有两个划分:清算系统,现金系统。


清算系统

比特币区块链是全球的、分布式的、有限容量的、代价昂贵的系统。每一笔交易的价值含量是不一样的,当块容量不够用时,我们应该保障高价值的交易进块。高价值的交易有意愿有能力支付足够高的网络手续费,从而获得足够高的优先级进块。

随着比特币的繁荣,交易数量会越来越大,有限的块容量会使得低价值的交易(例如发送1分钱)永远无法进块,因为低价值的交易不可能支付高网络手续费。进而网络退化为清算系统,低价值含量交易被赶出,这些交易由第三方记账系统进行代替完成。

在闪电网络出现之前,第三方记账系统主要是链外钱包提供商。用户信任某第三方钱包平台,把比特币存入其中,同一平台用户之间转账仅带来账户余额变更,并不会产生比特币交易。


现金系统

现金系统意味着所有交易均应该进入区块,那么当块容量不够用时,则应该及时提高块体积限制,对系统进行扩容。短时间可能发生交易入块堵塞,但长期来看所有交易应该均可以入块。人人都享有比特币系统带来的巨大便利和优势。


扩容大小的选择

我们进行一个简单的估算,假设每个交易大小为512字节,手续费单位为0.0004/KB。那么有如下表格:



根据VISA在2015年的记录,全年共产生92,064百万笔支付交易,折合比特币网络数据:


若提高区块体积限制至30MB,最大的问题不是CPU计算能力瓶颈,而是块的传播与存储。

30MB的块可能会导致全网孤块率和空块率大幅上升,一年产出1.5TB的区块链数据也超出大部分节点机器的硬盘容量。基于这1.5TB的数据,区块链浏览器、钱包服务商等则可能膨胀10倍达到15TB,对于目前来说已经远超普通机器/数据库的磁盘容量。

诚然,这些数据对与中性化的系统而言,并不具有多么大的挑战性,但对于一个全球分布式系统而言,则非常具有挑战。会极大削弱节点数量,提高开发接入门槛,使得比特币变得中心化。

扩容争论的最后,还是倾向于2MB,使得升级过程更加可控一些,风险更低一些。


——《区块链:从数字货币到信用社会》(中信出版社)




作者:何晔

这个问题需要新一代的白皮书来解决
中本聪应该意识到了这个问题,但他选择逃避,留给后人
而后人也觉得这个问题相当棘手
起因整理一下,中本聪(可能)为了规避这个问题,设定10分钟产生一个区块。
众所周知,交易记录在区块里
如果你拿比特币买了任何一样东西,付钱走人的时候,此时这笔交易还在网络上流动,还没有写到块里去。
也就是说这笔交易可能会失败,被拒绝
店家让你走人就是他承担这个风险
然后由于比特币本身的共识机制,即便写进块里也无法确认是否写进永久记录,一般是写到6个块我们承认不太可能会更改,因为记录失败的可能性到6个块的时候已经非常低
简单计算一下,理论值需要1小时。
事实上因为网络的关系,这个时间是波动很大的
这给工程带来了很大的困扰,就是你写块,读块的时候,你不知道这个数据是不是永久存在的。
第二就是10分钟一个块对工程来说太难受了。
工程需要尽可能的快,需要减少到秒级
这当然也是可以得
结果就是块增加的很快。
第三就是块大小,网络速度,都会在大规模应用下产生瓶颈
不知道大家有没有注意过比特币的交易量
1个块1600笔交易,也就是说10分钟1600笔交易,每秒3笔交易左右
而银联在2016年春节的日交易量破亿,
也就是说每秒1000笔交易级别
每笔交易占用512字节,每5秒产生一个区块
也就是日产生8.6T数据规模
实际工程应用,至少要留出5倍的余量
现在的技术就像开一部玩具车,这部玩具车当然很精巧,很有趣,但是当贸贸然把它开上高速,那就是一场灾难。
现在比较理想的,就是把它退化成一个清算系统
这也可以拿来检测一个人的理论水平,如果TA没有对上述问题做出认识和回答,就贸贸然说,这也可以,那也可以。
那他还是个外行



补充: 2017-12月

中心化交易可能更有前景


腾讯公司主席马化腾日前在一个分享会上表示,区块链的发展方向有两个,一个是公用方向,去中心化,一个私有方向,有类似央行制度,中心制账户。他指出,相对更看好私有方向;数字货币是有可能取代实体货币的。

个人基本同意,未来有可能产生一种跟比特币算法相似的全新的数据货币。每个人只需要保留交易结果就可以了,交易过程交给央行保存,如果全球央行采用统一算法生产和交易数字货币,就能跟比特币一样全球流通了。而且这样好处也有很多:

保留比特币总量不变这个特性。初始区块大小确定,符合比特币算法的数据货币总量就是确定的。央行也不能随意更改。

解决比特币交易频率的限制,完整的交易过程只需要保存在几个大规模数据中心即可,并且也有可能并不需要完整保存交易记录。

每个币都是标识唯一的,交易过程就是可追朔的,将有效防止货币被盗,或被骗的情况。










 热门文章 - 分享最多
  1. JavaScript使用ES6的Class面向对象继承时 this is not defined 解决方法
  2. Docker改名Moby:急于商业化陷入品牌更名乱象
  3. Java已快过时?斯坦福大学将JavaScript作为计算机科学入门课
  4. TCP/UDP协议比较:在Node.JS中UDP服务器和客户端通信示例
  5. Node.JS通过原型和类继承EventEmitter,实现收发事件的几种方法
  6. "永恒之蓝"比特币勒索病毒(WannaCry)的攻击原理
  7. 周鸿祎:一些程序员没有商业意识,却又很自负,一看就知道不会创业
  8. Node.js网页抓取:一个最简单的http请求客户端示例(request client)
  9. Node.JS用Socket实现FTP Server服务器和Client客户端
  10. Node.JS更改Windows注册表regedit的几种方法

 相关阅读
  1. Phantom.js维护者Slobodin退出,著名自动化测试与智能爬虫框架前景不明
  2. Java已快过时?斯坦福大学将JavaScript作为计算机科学入门课
  3. 2016 年崛起的 JS 项目
  4. OnceVI前后端分离的数据可视化报表工具简介
  5. 关于华为优化30、40老员工的争议
  6. GitHub 第一坑:换行符自动转换
  7. NodeJS连接Redis:在(Raspberry Pi)树莓派上安装Redis并设置开机自动启动服务
  8. 传言GITHUB正在寻求第二轮融资,或面临估值下降、清算或被微软收购
  9. 2016年收入最高的5个编程语言,JavaScript最流行,Java和C没在前5
  10. Java 之父求职被嫌年纪大,硅谷公司现在喜欢“小鲜肉”,不爱“老古董”

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA