简版 区块链本质论(4): 性能本质之容量

区块链本质论

区块链被大家关注是件好事情,但非常不希望看到各种区块链项目盲目上马,造成各种社会资源的浪费。区块链技术本身尚在发展阶段,还有很多核心技术问题有待突破,对区块链技术本质还充斥着各种不同的理解。后面几天我们将就区块链的计算本质,技术难点,业务调整,社会影响等方面和大家分享。


(4) 性能: 状态容量

状态容量之于区块链,就好似内存大小之于一台电脑一样。但是这一点不像吞吐量的TPS被大家所关注。状态容量很少被各种项目拿来大肆吹嘘,是因为这个容量不是太好测定,同时要扩容状态容量极其困难。

状态具体指用区块链中来表示链上每一个地址(即用户)和每一个应用的状态,所有需要准备好为验证随时到来的交易的信息的总和就是区块链的状态。典型的,比如,这个状态包含每个地址的账户余额。当链上应用丰富的时候,每个地址将有更多的信息用来表示各个地址在各个应用中的状态。

状态容量就是指一个区块链系统可以具备多大的有效内存空间用来表示整个链上的状态。链上状态是必须随时驻留在内存中,准备用来验证随时到来的交易的,这个部分信息无法放在硬盘上,否则会大大减低交易验证的吞吐量,从而极大地约束区块链整体的吞吐量。那么状态容量具体是多少呢?

王嘉平:简版 区块链本质论(1): 计算本质zhuanlan.zhihu.com93acf5ec6cbf8c1db820b4f9e3475d5e.jpeg

在第一篇计算本质中,我们介绍了,区块链网络中,每个参与节点需要随时准备好验证和更新下一个到来的区块,也就是说每个节点都完整地存储了链上每一个地址,每一个应用的状态。那么状态容量本质上受限于每一个参与节点的内存容量。从这个意义上来说,只要提高每个参与节点的内存容量,就可以提升一个区块链网络的有效状态容量。

但是,提高单节点内存容量首先这个提升非常有限,更大的问题是提高了参与者的进入门槛, 严重伤害了一个区块链网络的去中心程度。对于联盟链系统来说,尚可接受;但对于公链系统来说,这种提升状态容量是不可取的。如果要从本质上,提升状态容量,同时又不提高单个节点的内存压力,唯一的出路是全分片,至少是状态分片。不过这还是一个非常前瞻的学术研究方向,有兴趣的同学可以深入阅读下文:

王嘉平:突破区块链不可能三角:异步共识组 [Monoxide]zhuanlan.zhihu.com8e115206d25c47bc0af70f96dd74b96e.jpeg

这里顺便说一下,另一个涉及存储的信息: 交易历史。交易历史是从创始区块开始至今的每一条被确认的交易的总和。这个部分信息会不断积累,只增不减。例如,比特币系统,这个历史已经有200多GB了。这部分信息,一旦区块和交易被确认和执行,就不再涉及之后的区块验证和确认过程,所以可以完全放在硬盘上,而不占用内存空间。

当然这200多GB也是个事儿,硬盘容量也不是无限的。就比特币而言,消费级硬盘的发展速度也未必能赶上其历史交易记录的增长(每年最多约50GB)。但是已经有两类比较成熟的技术问题解决这个挑战。一个是checkpoint技术,可以使得节点丢弃掉陈旧的历史交易记录,另一个是RSA accumulator技术,可以使交易记录分散存储,不再要求每个节点都记录完整的全网交易记录。

这一篇的扩展阅读:

王嘉平:区块链公链如何才能快起来 (一)zhuanlan.zhihu.com5ade245cd2f31dcf93ef4124b628509c.jpeg

作者简介
国际计算机网络系统顶会NSDI 2019,发表了王嘉平博士团队关于高性能并行分片区块链系统的论文,这是中国人自主研发成果在区块链核心算法领域首次得到国际专家和同行的认可。

王嘉平博士原为微软研究院主管研究员,专注分布式系统,计算机图形学和视觉以及用于机器学习的GPU集群等领域的研究,有数十项研究成果发表于ACM SIGGRAPH/ToG顶级国际期刊,已授权的美国专利十余项。他师从沈向洋博士(现微软全球执行副总裁),在中科院计算所获得博士学位。他的博士论文获得2009年度全国百篇优秀博士论文奖,是该年唯一一名计算机科学专业的获奖者。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值