设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

区块链的可扩展性问题及解决方案对比

发布时间:2018-10-31 08:21 所属栏目:19 来源:区块网
导读:区块链的性能问题 VISA是目前世界上广泛使用的信用卡品牌,区块链要达到实用水平,性能上至少需要能跟VISA之类的支付系统作比较。根据VISA在2015年的记录,全年共产生92,064百万笔支付交易,平均2920tps,按平均每笔交易512字节左右计算,全年交易数据量约

区块链的性能问题

VISA是目前世界上广泛使用的信用卡品牌,区块链要达到实用水平,性能上至少需要能跟VISA之类的支付系统作比较。根据VISA在2015年的记录,全年共产生92,064百万笔支付交易,平均2920tps,按平均每笔交易512字节左右计算,全年交易数据量约47TB。

而目前主流 区块链 性能情况是,比特币每秒只能进行大约7笔交易;以太坊每秒10-20笔。目前这些区块链的交易性能都无法与VISA相比。更严重的是,目前比特币和以太坊的矿机都需要存储全量数据,而单个机器的存储容量是有限的,若无法解决这个问题,即使交易性能提升了,若按每年新增数据量47 TB算,那么这些数据很快就会超过单机的容量,到时候整个区块链网络都无法继续运行。

那么,比特币和以太坊这种拥有海量节点的区块链系统,为什么性能却这么低呢?为什么区块链的可扩展性这么差呢?

原因分析

区块链是去中心化的账本技术,需要保证开放性、自治性、不可篡改等特性。去中心化是指使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。也就是说,系统中任意节点都需要对交易数据进行全量计算和存储。因此,区块链是没有可扩展性的,即系统的总体性能受限于单个节点的性能上限,即使加入了大量节点,系统的总体性能也无法提升。

可扩展性是传统分布式系统的基本特性,但区块链由于去中心化的要求,可扩展性却难以满足。业界总结了一个三元悖论描述去中心化与可扩展性之间的矛盾,它尚未被严格证明,只能被称为猜想,但实际系统设计过程中却能感觉到时时受其挑战:

去中心化(Decentralization),安全性(Security)和可扩展性(Scalability)这三个属性,区块链系统无法同时满足,最多只能三选其二。

区块链的可扩展性问题及解决方案对比 

上图演示了区块链如何在这三个因素之间作选择及对应的策略,例如若若要满足安全性与去中心化,则需要所有节点参与共识、计算、全量存储,但由此带来的问题是失去可扩展性,也就是系统的总体性能无法随着节点的增多而提升;若要满足可扩展性与安全性,则需要中心化管理,需要保证参与共识的节点是可信的;若要满足可扩展性与去中心化,则采用分散存储、计算的策略,不做全量共识,则攻击网络的难度降低,安全性难以保证。

提升区块链系统性能的方案

我们知道,影响区块链交易性能的主要因素包括共识机制、交易验证、广播通信、信息加解密等几个环节。从这些环节入手,我们可以得到一些提升性能的方法。

共识机制

从PoW到PoS再到DPoS和各种BFT类算法,共识机制不断创新,区块链平台性能也得到大幅提升。

交易验证

从交易验证机制角度出发,目前有几种优化处理方式:

1.闪电网络(Lightning Network)和状态通道(State Channels),这两种策略是保持底层的区块链协议不变,将交易放到链下执行,通过改变协议用法的方式来解决扩展性问题。链下的部分可以用传统的中心化的分布式系统实现,性能具有可扩展性。在这种策略下,分布式账本上只是记录粗粒度的账本,而真正细粒度的双边或有限多边交易明细,则不作为交易记录在分布式账本上。缺点是存在中心化的系统。

2.分片处理(sharding),以太坊项目正在研发中的分片(shard)方案的总体思路是每个节点只处理一部分交易,比如一部分账户发起的交易,从而减轻节点的计算和存储负担。

3.多链架构(Multi-chain)的思路则是将原本的一条链分成多条链,每条链都负责部分计算和存储业务,并且有可扩展性,即链的数量可以随着业务量和数据的增加而增加,系统的总体性能随着链的数量的增加而提升,系统的存储空间也能随着链的数量的增加而扩大。

广播通信

P2P网络是区块链的核心技术之一,因此P2P网络通信的效率对性能的影响非常重要。为了能改善广播通信性能,需要提高节点机器的物理配置,提供高速网络连接,并采用减少广播的共识算法,如DPoS等。

信息的加解密

信息的加解密是区块链的关键环节,主要是哈希函数和非对称加密两类算法。区块链系统中可以采用更高性能的加密算法以提升交易验证的性能。

方案对比

上述优化方法中,共识机制、广播通信、信息加解密是算法层面的优化,尽管这些方案也是重要的优化,但其没有解决根本性的问题,其性能提升仍然受限于单机性能,不是可扩展的,因此性能提升有限,本文不再详述;交易验证的几个优化方案则是可扩展的方案,其中闪电网络和状态通道是链下执行的方案,采用中心化的系统提升区块链性能,与区块链去中心化的理念相悖,而且使用复杂、用户体验差(例如闪电网络要求交易中的双方以及中间人都必须同时在线、线下系统开发复杂因为要寻找可用的支付通道、不适用于大额交易等),无法得到广泛使用。因此EOS、以太坊、Cosmos及迅雷链等高性能区块链项目均采用分片或多链方案。

分片或多链方案的思路是一样的,都是让每个分片或分链进行部分交易数据的处理和存储,每个分片和分链可以并行处理不同的交易数据,这样分片或分链的数量越多,系统的总体性能就越高,这两者都是可扩展性很强的方案。

1.EOS的多链实现方案

EOS的技术白皮书中并没有描述多链的实现方案,只描述了支持跨链通信的IBC(Inter Blockchain Communication)协议,跨链交互通过简化生成消息存在的证明和消息序列的证明来实现。EOSIO声称主链可以支持3000以上的TPS,通过IBC可达到100万TPS。

EOS的多链架构其实是侧链方案。开发者可以单独部署一条EOS侧链(公链、私链都可以),运行自己的Dapp,这些侧链有可以有自己的委员会,见证人以及计算资源,有自己的代币,这些代币有自己的增发方式,而且代币可以和EOS通过接口进行锚定去实现包括锁定在内的某种操作。侧链最大的特征双向锚定(two-way-peg)技术,它使得在侧链流通的Token价格总是与EOS价格保持一定比例或者直接采用EOS。

因此EOS的多链架构并不是对主链本身进行可扩展性改造,只是期望通过子链来分担主链的压力。

2.以太坊的分片技术(Sharding)

分片(Sharding)是以太坊正在开发中的技术,其大致设计思路是:将区块链网络中的每个区块变为一个子区块链,子区块链中可以容纳若干(目前为100个)打包了交易数据的Collation(大概可以称为“校验块”,为了在分片的情景中将其与区块的概念区分开),这些Collation最终组成一个在主链上区块;因为这些Collation是整体作为区块存在的,所以其数据必定是全部由某个特定的矿工所打包生成,本质上和现有协议中的区块没有区别,所以不再需要增加额外的网络确认。这样,每个区块的交易容量就大概扩大了100倍;而且这种设计还有利于未来的继续扩展。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读