区块链性能扩展 吹出去的牛还得靠技术来一一实现

 

第一部分:分析 


可能有人会问,为什么中本聪在最初设计区块链的时候没有考虑性能?其实,并不是中本聪不想,而是其中面临一个如何取舍的问题。这就涉及到了分布式系统设计层面的一个三元悖论,如下图所示:


viewfile.jpeg

  

第二部分,进一步分析


去中心化使任何人都可以公平地参与到这个分散的生态系统中。扩展性关乎在给定网络上处理交易的能力。如果公共区块链要为大众所用,那么它们必须能够处理数百万用户同时在线的情况。安全性则与账目的不可篡改性和抵抗攻击的能力有关,例如抵御双花攻击、算力攻击、女巫攻击、DDoS攻击等。

 

之所以称之为三元悖论,意思是图中这三个技术指标不能同时被满足;当满足其中两个,剩下的那一个指标一定不能被充分满足。例如,比特币(Bitcoin)和以太坊 (Ethereum)的区块链设计注重去中心化和安全性,就是以牺牲可扩展性为代价的。与之形成对比的是EOS,设置了21个超级节点,降低了去中心化的程度,并一定程度上提升了扩展性,但也因此被质疑有中心化的倾向。

 

这三项指标是此消彼长的,需要相互权衡的关系。扩展性提升的同时,势必需要削弱设计中去中心化或安全性的。其中安全性在产品应用中是不可或缺的,实际设计中我们看到的几乎都是牺牲部分去中心化来换取扩展性提升,例如分片、侧链、DAG等,其都可以简单地理解为为了提升扩展性而在去中心化上做出了让步。换个角度,全网同步处理事务也的确在某种意义上浪费了资源约束了扩展性,是不是可以相应的缩小这些处理事务的范围,并相应的提升性能?

 

第三部分:解决方法或者有可能解决的方法


基于这个思路,目前流行的几种扩展方案可以这样简单理解:

 

分片(sharding)是将区块链网络划分成若干能够处理交易的较小的网络,由这些较小的网络来并行地处理原先需要全网处理的事务。

 

侧链(SideChains)(包括子链、链中链概念),则是将一些需要高性能的事务放到另一个专门的分布式网络(侧链)中进行处理,待处理完后再将最终的状态反映到主链上。

 

有向无环图(DAG 不使用链的形态组织数据,改而使用互相引用的事务组成图状结构,可以想像DAG是多条区块链的相互引用交错,而其中某一条比其他的链拥有更高的权重。

 

虽然设计形式上不同,但本质上这几种方案还是为了一定地提升扩展性,使用了更小的去中心化网络并行地高效地完成原先全网同步完成的事务。

 

结尾


目前各种区块链扩展方案还处于刚刚起步的初期,哪种更为有效,哪种更符合场景的需求,在目前尚不得知。我们也有理由相信近期还会有新的扩展方案出现,最终哪些方能经得住推敲,哪些会成为通用的方案,十分值得期待。


(TACHION 老姜)

原创文章,作者:TACHION,如若转载,请注明出处:http://www.doubi.com/?p=234

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

QR code