用百万笔每秒,表示区块链性能?错!

当被问及区块链的性能时,相信大部分人都会用一万笔每秒或者十万笔每秒,这样具体的数字来表示区块链的性能。井通科技的CTO杨建新说到,其实这是没有意义的,因为区块链的性能具有整体的结构,不能仅仅通过数字来表示。 此外,杨建新介绍了区块链的性能现状,深刻剖析了目前区块链性能遇到的困境,以及如何通过四大优化方案来破除困境。读完此文,相信你对区块链性能会有一个全面的认识。

井通科技CTO 杨建新

作者 | 杨建新

整理 | 科科

以下为杨建新在CSDN区块链大本营、柏链道捷(PDJ Education)以及极客帮创投联合举办的第六期区块链技术开发者沙龙上的发言内容,区块链大本营在不改变原意的情况下作了精心的整理。

大家好,今天下午非常开心,可以跟大家一起交流有关区块链性能结构方面的东西。我会从以下三个部分来介绍:

第一部分,主要从区块链的性能定义、区块链的性能现状是什么样、现在遇到哪些性能瓶颈这几个方面来介绍。

第二部分,介绍有哪些性能优化的方案。

第三部分,介绍我们自己的区块链项目在性能优化方面的一些解决方案。

区块链的两个性能指标

第一个部分,关于区块链的性能,有两个指标来衡量。

一个指标是响应时间

因为区块链是集交易和清算于一体的系统,所以响应时间其实包含两部分,一部分是交易所需时间,另一部分是清算所需时间。

另外一个指标是吞吐量。吞吐量是指单位时间内完成的交易数量。

在区块链之间进行的是点对点的交易,而每个具体交易之间是各不相同的。对于每一个区块链,当被问到性能时,大部分人都会说一万笔每秒或者十万笔每秒,用具体数字来表示区块链的性能。其实这是没有意义的,因为区块链的性能具有结构,包括:

  • 链上性能、链下性能;
  • 去中心化性能、中心化性能;
  • 全局性能、局部性能。

因此我们不能仅仅看具体的数字,要从整体的结构来了解区块链的性能。

区块链两大杀手级应用

说完了如何了解区块链的性能之后,我们来看看区块链现在有什么比较好的应用。

Gartner(信息技术研究和分析公司)认为区块链现在是比较早期的,区块链并不能满足我们现在的业务要求。比如,双十一每秒要进行几十万笔的交易,而现在的区块链每秒也就进行几笔或者二十笔左右交易,远远不能满足现在的要求。但是,我们换一个角度来看呢?其实你会看到,区块链能做的事情还是比较多的。

比如,我们用区块链来做支付,计算是很快,反而用传统方式来做,花费的时间会比较长。所以区块链在这方面就能解决问题,这是从两个角度来分析事情。

如果我们以传统方式来思考区块链,是满足不了我们的业务要求。所以现在很多人认为,区块链没有作用,区块链没有杀手级的应用。因为在传统业务里面,根本产生不了杀手级的应用。想产生杀手级的应用,我们应该从区块链的角度来思考。

其实区块链现在有一些杀手级应用,一个是代币众筹,也包括以太猫、分叉币。另外一个是发币,对于发币是很容易的,但是发币之后应该怎么办?

对于发币之后,有两种处理方式,一种方式是建立一个金融系统。但是,自己建立一个系统,信任度没有那么高。那怎么提高信任度?比如有一份文件,如果是央行发出的,大家都信任。但是有没有一种方式,即使不是央行发出的,也能让大家信任。其实有另外一种方式,就是通过区块链来解决这个问题,所以发币是区块链一个比较好的应用。

区块链性能条件

其实,区块链上面的应用还是比较少,或者说在区块链上面的应用效果还是不太好,在区块链性能方面还需要提高。由于区块链是一个分布式异步管理,所以在提高区块链性能方面,可以从以下几方面来思考:

第一,分布式异步环境。由于我们所处的环境不同,时间不一样,比如,北京时间和美国时间。所以,区块链没有通过依赖时间达成一个共识。

第二,共识机制。由于各个节点诚实度不一样,有一些节点可能是诚实的,有一些可能是不诚实的,如何在这些节点中通过一个共识机制构建出一个大家共同认同的结果。

第三,交易功能复杂度。大家在以太坊做转账交易的时候,认为手续费是比较高的,可能需要二十一万GAS。但是,做合约交易,你会发现手续费更高,可能就需要三十几万或者六十几万GAS等。为什么呢?因为合约的执行步数多,每一步都要收费的。而根据交易功能的复杂度,每一笔交易的合约步数又是不一样的。所以如何降低交易功能的复杂度、减少交易费用,都是可以考虑的。

第四,链式复杂度。链的复杂程度不一样,大家都在同一个链,链就是一个帐本,大家在一个帐本里面进行记录交易。在账本之间有些交易只需要简单的记录,而一些交易的记录需要执行脚本,附加一些计算,增加了交易记录的复杂度。

第五,硬件节点条件也不一样。如果硬件好一点,速度就会快一点,性能就会高一点。但是区块链还是得看当时的条件以及要求,看能不能满足你的要求。

区块链性能现状

那区块链性能的现状到底是怎样的呢?现在区块链速度确实不是太高。

比特币区块链现在能达到7笔每秒,它的响应时间是10分钟,这是一个平均的时间。

此外,以太坊现在能达到20笔每秒。

还有,PBFT可能能达到几千笔每秒。当然,上面的数字都包括转帐支付和合约交易所需要的时间。

如果区块链现在基本能达到几万笔每秒、几百万笔每秒,大家现在也不会坐在这里讨论了。那么,现在区块链在性能方面遇到了哪些困难?

区块链性能困境

区块链本身确实有一些性能难点,有几个部分。

第一,中心化和去中心化的困境。大家认为节点数量越多越好,自然用户就会越多。但是节点多了以后就很难达成共识,比如屋子里面只有我一个主持人,大家要决定一件事情,我决定就行了,比较简单。但是如果一件事情,让大家都来做决定,这个事就费劲了。

第二,可信化和非可信化的困境。区块链环境里面,可信和非可信的条件各不相同。传统互联网是有可信的共识机制,这些可信共识的基础是网络可信。但是,在区块链里面,网络的环境不一定可信,即需要防止所谓的拜占庭攻击。

第三,链上性能和链下性能的困境。现在所有区块链的优化算法,都是在将交易和清算分开的基础上做的。先在一个分区里面核心做交易,交易完成之后,再深入到整体区块链里面达成共识,完成整体的结算。

所以现在在链下交易已经做了,再搬到链上,交易的速度自然就高了。其实链上的功能是被削减了,削减了原来的交易功能,现在只做清算,不做交易。

第四,全局性能与局部性能的困境。全局的性能是依赖全局清算的性能,局部的性能是指专业的性能。比如我俩今天要做生意,咱俩之间清算就行了,别人也不需要知道,到时候咱们选择一天,比如某天夜里的时候,到链上再做清算。这是一个局部优化的方案。

第五,结构化方案与优化方案的困境。区块链是一个列表,所以优化的时候可以优化一个列表、两个列表,或者一个图、一个网络,甚至整体结构性的优化。而选择哪种优化方案?取决于你是想做一个简单的优化,还是做一个整体结构性的优化。

所以,对于区块链性能,建议大家从结构这一方面考虑,而不是一个纯粹的数字,也不是一个纯粹的解决方案。

性能优化方向

说了区块链性能现在的一些困境,那下面简单介绍一下,现有的几个优化方案。

第一,多链的优化方案。即多条链各自运行自己的交易,之后再确定一个时间,做一个清算。

第二,中心化的优化方案。区块链现在有两个方向,一个是社区化,另外一个是中心化的优化方案。但是社区化这种模式不涉及商业应用,商业应用的速度快,节点也没有那么不可信,我对节点信任更多,这样就可以做中心的优化方案,从而提高性能,这也是符合业务需求的。

第三,局部优化方案。目前交易是在整个场景进行,其实没有必要,只要在局部进行就行了,可以大幅提高性能,这是一个局部的优化方案。下面详细介绍这几种方案。

多链优化方案

多链优化方案一种方式是通过侧链机制来解决性能问题。侧链机制是区块链主链的资产到另一条侧链里面。资产其实代表一个业务,怎么理解呢?其实多链之间是有结构的,有一些链负责做帐户,有一些链负责做交易。链与链之间的职责,是按角色进行分配的,从而提高区块链的性能。

此外,还可以以一种树链方式来解决性能问题。树链是不同链之间互联,它有一个主链,并在主链上面有很多子链,类似于人类的家谱。

闪电网络,闪电网络也是有一个主链,同时有线下链条。闪电网络更多像一个通道,咱们之间的交易,不需要到主链去清算。

中心化优化方案

对于中心化的优化方案,一种方式是可以做一个大的计算中心,这是一种方式。

单个节点交易缓存方案。两个节点之间做交易,其中一个节点可以跟其他很多节点建立专门通道。

大家要理解,去中心化不是简单的去中心化,去中心化也有一个度。

局部优化方案

局部优化方案的一种方式是可信验证节点,是指交易不一定所有节点都要执行,可能就是一部分节点执行,其他节点同步,这时不需要对所有消息进行验证。

此外,还可以通过网络分区、分片的方式。这种方式的问题是不能把一个交易确定性放到几个节点上,否则这几个节点就有中心化的风险。同时,分区、分片需要足够随机化。还有一个问题,是分片里面要解决分片之后共识的问题。

结构性优化方案

结构性优化方案,是相对于整体的优化方案。

一种是层级共识机制,比如前面说到的做树链的公司,只要孙子节点之间达成共识就行了,如果设计的需要,再直接往上一层,那是子节点之间共识。

还有一种无共识机制。我只要验证前面一层,保证自己的交易可信就行,没有一个共识机制,不需要跟所有人进行确认。

我们的优化方案

说完上面的优化方案,我想介绍我们公司的三个优化方案,同时简单介绍一下我们的公司。我们公司注册在无锡,当时做了两个方向,一个方向是做P2P网贷的数据透明性,第二个方向是做区块链支付。现在我们在做的是区块链性能的优化方案。

下面是我们现在的三个优化方案,简单介绍一下。

第一,银关优化方案。井通公链是一个商业公链,商业公链需要支持商业应用的开发。但是,商业是可信的,或者部分可信的,需要用区块链来解决清算的问题,不是解决信任的问题。

第二,共识机制优化。优化的方向是无支持人的共识机制,周期性共识机制,或者多要求的共识机制。

第三,层级共识机制。层级共识是我们MOAC(墨客链)里面的层级共识,MOAC整体是一个基于POW的共识机制,而子链的共识机制各不相同。

我们现在主要在做几个方面,一个是井通公链,一个是MOAC社区化公链,以及我自己在推动的一个Callchain泛娱乐行业公链。无论是技术还是运营,我们都欢迎大家参与进来。今天的性能分享主要是这些,谢谢大家。

作者介绍

杨建新,井通区块链底层平台国内负责人,清华大学计算机硕士,国内最早的区块链开发专家之一,区块链底层架构师,区块链行业与密码数字货币领域丰富的实战经验与行业技术发展领军人物。主导了国内第一条商业公有链的开发,编制API、SDK等相关标准接口;开发了区块链企业级钱包、供应链金融等项目建设;国内智能合约最早落地的先驱者。

原文发布于微信公众号 - 区块链大本营(blockchain_camp)

原文发表时间:2018-05-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

分片:以太坊可扩展性问题的解决方案?

以太坊区块链的创新本质毋庸置疑,其智能合约功能促进了去中心化应用程序(DApps)和初首次币发行(ICOs)的发展。然而,尽管迄今为止以太坊取得了立竿见影的成功...

3664
来自专栏区块链资讯

我怎样才能参加比特币现金9月1日压力测试?

之前我们发布了一篇关于比特币现金将要在9月1日进行压力测试的文章。当时这还只是一个想法被放在Memo上讨论。目前这个压力测试已经做了很多准备工作,将允许任何人参...

1073
来自专栏区块链大本营

快讯 | 三位大咖共话区块链性能:侧链、分片和架构,下次别忘了到场

35510
来自专栏服务端技术杂谈

区块链智能合约以太坊

以以太坊为代表的智能合约,被认为是区块链2.0的产物。 区块链可以看作是一个操作系统,而比特币则可以看作其上面生长的明珠。 区块链开发可以看作是自己开发一套系统...

3276
来自专栏GAIAWORLD

GaiaWorld设计思考:平行链存在的价值

主链:即正式上线的、独立的区块链网络。可以这样说,区块链的存储数据的实体,一般认为是主链网络本身。比如BTC主网、ETH主网和即将上线的EOS主网都是主链。

1252
来自专栏区块链大本营

巨杉数据库王涛:区块链观点两极分化,程序员应关注其技术本质

2825
来自专栏逍遥剑客的游戏开发

Scrum方法

1588
来自专栏钱塘大数据

中国首个区块链标准《区块链参考架构》发布

作者:数据观 ? 2017年5月16日上午,在杭州国际博览中心举行的区块链技术应用峰会暨首届中国区块链开发大赛成果发布会上,首个区块链标准《区块链 参考架构》...

3688
来自专栏Phoenix的Android之旅

敏捷开发实践总结

敏捷开发它是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和XP就是敏捷开发的具体方式了,你可以采用Scrum方式也可...

693
来自专栏机器之心

入门 | 区块链vs传统数据库:分布式运行有何优势?

2636

扫码关注云+社区