投资有风险 入市需谨慎
APP
下载火星财经客户端

扫描下载APP

微信公众号
火星财经二维码 火星财经

火星专栏 | 曹锋博士谈公链:浅谈多链原理

曹锋 ·

04月09日

热度: 131168

提升区块链的处理能力,已成为很多项目的目标,然而,效率、去中心化与安全的不可能三角法则永远成立。

什么是原生多链系统? 

所谓原生多链系统是区别于传统的区块链单链系统而言的。我们知道传统的区块链系统都是单链系统,比如著名的比特币区块链系统和以太坊系统,都是典型的单链系统。单链系统很显然是一个比较简单而优美的设计。它为区块链数据的同步、共识和安全这方面提供了非常好的基础。某种角度来说,这种链式结构促成了比特币和以太坊的成功。这种成功也让区块链技术得到了更多的认可,人们越来越多地希望把更多的大规模应用放到区块链来做。

很显然,单链系统,包括以太坊或者比特币,目前都遇到了大规模区块链应用的性能瓶颈,难以像传统互联网一样承载大规模的并行交易,保守估算有28800倍的性能提升空间。因此多链的想法就自然孕育而生。很显然,多链是一种非常有效的提高系统并行化的方法。事实上,PCHAIN并不是世界上第一个多链系统。但是它却是世界上第一个支持是EVM的多链系统。

在PCHAIN之前的其它多链系统都没有很好的支持EVM,而往往基于传统的NodeJS、Java等传统软件或互联网编程语言和虚拟环境来进行计算。但是我们知道,基于这些传统语言,一方面没有一个良好的计费机制,因而系统容易陷入无限循环而down机,另一方面也使得整个智能合约运行的过程不可被追溯。

那为什么在PCHAIN之前都没有这样的系统出现呢?其实原因非常简单,因为EVM虚拟机自身在不断的发展,它有一个自身成熟的过程。另外一方面,它的区块链编程语言Solidity相对较新,目前在世界范围内对掌握EVM知识体系的团队都是非常少见的。当EVM自身也有执行效率不高这方面的问题,因此以太坊也相应成立了Just In TimeEVM的方向来提升EVM的性能。但不管怎么样,基于EVM的智能合约,已经成为世界上最大的智能合约生态。因而PCHAIN提供对于EVM进行原生多链级别上的支持是具有非常重要的意义。

1.jpg

图1. 主链 + 侧链结构示意 

PCHAIN的多链的结构图如图1,简单来说是由一根主链以及若干派生链所组成的。但是这个设计并不是简单的结构上的改变。

在PCHAIN多链系统背后的设计思想包括哪些呢?首先PCHAIN的上图结构是一个区块链数据上的结构。从物理上来说,区块链系统由多若干个网络节点构成。这些节点分别用来处理PCHAIN里的主链和派生链。这就会有一些机制上的一些选择。一种最简单的选择就是所有的节点同时处理主链和派生链上的所有的交易请求。如果是这样处理的话,和单链区块链系统的所有节点处理单链上的交易会有什么样的区别呢?可能出乎一般的认识,即使PCHAIN基于这样的一种网络节点选择,我们依然可以基于多链结构的区块链,相对于单链系统,取得线性级别的性能提升。

2.jpg

图2.PCHAIN VS. 传统单链系统

为什么是这样?完整的区块链生成过程,包含有三个主要的步骤。第一步是候选区块的生成,第二步是候选区块的广播,第三步是最新区块的共识。在传统的单链系统中,这三个步骤都没有办法并行完成。简单来说,第一步,更多的需要依赖于系统的CPU或GPU或特殊芯片的计算能力,而第二和第三步过程中,需要依赖于网络的通讯,第三步中间也部分依赖于计算能力。

在多链系统中,从各条派生链之间的通讯,在绝大多数情况下是不需要的,所以一方面极大的减少了通讯代价,另一方面非常容易形成一种流水线结构,那不同的派生链之间的通讯和计算,完全有可能并行化。

另外,如果在全局范围内,把网络中所有节点分配在不同的派生链和主链上的话。那么,这个系统的并行化整体会进一步的提升,如图3所示。

3.jpg

图3.PCHAIN 交易分组处理 Sharding – 交易分发

当然,这里也会引入一个新问题,就是如何在保证单个派生链上的节点,彼此串通作弊的问题。因而,PCHAIN考虑引入了奖励惩罚函数,通过这个奖励惩罚函数的设立,使得单条派生链上的节点,尽可能的均衡,避免出现中心化的倾向。

PCHAIN的多链不仅仅是在并行化的考虑,由于这样的一种新的区块数据结构的出现,我们可以看到,在单条派生链中的交易是相对独立的,并且结构上会非常趋于相同。在一般意义上,我们甚至可以认为,单条派单链上的交易或区块是由单一智能合约所构成的。因而在整个单条链上的区块中所存储的数据结构会非常具有相同,这为后一步的数据压缩提供了可能,也使得整个区块中间的交易数据更为规整。

这里又产生了一个新问题,就是当PCHAIN多链系统中部署的智能合约过多的时候,理论上来说会产生非常多的派生链,比如成百上千个不同的派生链。这对整个多链系统中的节点资源是一个巨大的消耗。PCHAIN通过启发式规则来解决这个问题。这些规则会保证,当某个智能合约处于一个小规模运行范围时,它更加倾向与现有的某些小的派生链进行合并,只有当它的交易量大到某一个程度上才会独立的拆分出来一条新的派生链。而当某些超大规模的智能合约运行时,系统甚至会为这个单一的智能合约产生多个不同的派生链,这些派生链某种意义上来说是一种分片机制。

对于主链,为侧链提供注册,查找,存储,存证等功能;并支持跨链交易。而具体的业务逻辑,可以创建一条侧链去单独完成。这样就避免了所有的业务交易都在一条链上完成的情况,从而大大减少了主链的运行和存储压力,而侧链也能消除原来单链模型下的其他业务的干扰。

当然,我们在讲到PCHAIN的分片机制时,实际上往往不是指多条派生链的这种物理和逻辑上的分离。而是可以应用在甚至单条派生链内的独立分片技术。因而多链结构,在分片技术的支撑下,会进一步的提升整体系统的并行化,提高整体系统的吞吐量。

对于节点较多的特定链条,采用交易级别的Sharding。当某一链条的节点较多,并且交易过多时,PCHAIN会自动在该链内部启用此Sharding机制。具体实施如下:1.   对当前时间点做标记,作为一个新纪元(epoch)的开始。

2.   PCHAIN首先通过可验证的随机函数,区隔链条中的所有节点,依次将它们分成不同的小组,这些分组叫做执行组。并通过同样的过程,选取部分‘有资格’的节点另外形成一个小组,这个小组叫做治理组。

注:‘有资格’是指有足够的PCH并申请成为治理组的一员。

3.   将进入的交易进行分类,例如根据发起请求的用户的不同,将交易发到特定的执行分组,该组内部对该交易进行执行和验证,在交易级别达成共识。

4.   在一个特定的时间间隔之后,所有的执行分组会将执行验证后的交易列表打包提交给治理组,治理组对来自于不同执行分组的这些交易列表汇总后在区块级别达成共识,形成区块,并广播到全网。

5.   在每一个纪元的时间结束时,确保所有节点都同步到最新的区块,状态一致;随后进入新的纪元。

在这种方式下,交易真正有了并行的执行验证,在单一链条内摆脱了单节点处理能力的魔咒。

提升区块链的处理能力,已成为很多项目的目标,然而,效率、去中心化与安全的不可能三角法则永远成立。下面我们对比了PCHAIN多链机制与POW和DPOS的区别。

微信截图_20180409170022.png                                   

 图4 去中心化、效率对比图


本文为火星财经原创稿件,版权归火星财经所有,未经授权不得转载,转载须在文章标题后注明“文章来源:火星财经”,若违规转载,火星财经有权追究法律责任。

关键字: 公链 火星专栏 曹锋

推广
相关新闻

涨幅榜

你可能感兴趣的内容
下一篇

全球首个“多链多共识”的公链意味着什么?