作者:Qingzhou
今天,我们可以看到很多公链都在使用多链结构,例如跨链项目波卡、COSMOS,例如以太坊的分片(旧路线图)结构。从技术逻辑上看,多链结构存在于很多的生态里,那些只要包含不同分层和不同链(或节点)间通讯的过程,都需要用到多链结构上的一些设计。
本文中,我们就来看一看多链的设计里很重要的一个部分,安全性的相互保护。
PoW链的互相保护
白计划在很早期的时候已经看到过一些安全性保护的方案,那时还是行业焦点没有聚焦到PoS网络(以太坊)上的时候,加密货币行业对PoW带来的安全性还是极为推崇的。
几年间,出现了很多PoW网络被攻击的事件,这其中的原因和PoW网络的算力有关,PoW网络的共识过程里算力也是决定因素之一,也就是我们所说的51%算力攻击,当拥有超过51%的算力就可以生成一条攻击链,替代原有的最长链。
这里是攻击者利用租用的或者自有的算力攻击了网络,这对于很多算力总值不高,算力不够分散的网络,是很常见的。例如处于客户端变更问题的ETC网络、算力不足的BTG网络。
所以,我们可以思考,一个算力很低的PoW网络,在不改变网络结构、共识算法、造成分叉的前提下,如何提高自身网络的安全性?
这里就可以选择寻求保护的思路,对于一个低算力区块链,是可以利用高算力区块链做保护的。理解起来很简单,低算力区块链相信高算力区块链具备足够高、足够分散的算力,而具备更高的安全性。
图为利用BTC网络保护BTG网络的结构设计案例
低算力区块链的安全性不高是因为很容易出现账本的双花,所以如果把低算力区块链的账本通过密码学和通讯协议的方式打包到高算力区块链的区块里,就在自身区块链外还有一个公正的证明,这个证明就可以反向证明原有区块链的数据是否是正确的。
这个就是高算力区块链把自己的安全性共享给低算力区块链的思路,因为区块链本身就是一个分布式的证明系统,只要符合可以安全进行证明的思路,都可以成为具备安全性,那很多缺乏安全性或者需要更高安全性的网络就可以通过这种证明的方式获得安全性(例如一些刚刚创世的网络)。
除了PoW链因为算力低需要保护外,在多链结构里,“复制证明”的过程很多,所以保护关系广泛存在于多链的设计里。
那些具有保护关系的多链结构
为什么会有多链结构?根本原因还是需要靠多链结构解决一条区块链无法解决的问题,也就是扩容、数据共享、安全性等。
在多链的设计里,安全性依旧是核心,因为区块链的最大亮点就是解决双花问题。
我们看到的很多设计为多链的案例,都是靠安全性进行的。
例如我们看到的最多的设计:锚定币,锚定币是在一条具备更高性能的网络上流动资产的很好设计,而锚定币,是单一资产受到另一条链保护的结果。
这个设计可能理解上并不明显,因为例如以太坊并没有利用比特币网络的安全性,而是比特币利用以太坊网络增加资产的流动性。
我们把这个思路再往清晰推论,当a链,需要b链的出块来确认a链上的信息安全与否的时候,就是b链在保护a链。在这个结构里,a链也会产生自己的数据,但b链区块链里的数据才具备证明能力。
图为波卡的多链结构
这个结构,我们可以用波卡的中继链、COSMOS的Zone链,跨链方案的桥以HUB,还包含以太坊信标链和分片的设计,以及plasma的侧链等。
他们的共同特征都是如此:下层的链依靠上一层的链来做到最终账本的确认,下一层链需要上一层链为自己证明链上数据是正确的。
当自己的链有共识的时候,自己的链可以安全独立运行,当需要获取一些证明的时候,就可以从上一层链获取正确的信息。
跨链中继的安全保护结构
2019年COSMOS大火,2020年Polkadot大火,两个都是跨链项目,两个项目的生态都是多链结构。在多链结构里,最终提供安全性的就是两个项目的主网,COSMOS的是COSMOS HUB,而Polkadot即Polkadot主网。
对于波卡生态和COSMOS生态里接入的链来说,都需要依靠主网的安全性,那这个安全性的体现,就体现在链和主网的中继部分。COSMOS里是Zone,波卡则是中继链。
波卡中继链和Zone的作用是一样的,都是为了链和链的通讯存在的一个中转、具有安全证明的部分。
首先要说的是,中继部分,是负责信息传递的部分,最简单模型的是网关,主要是信息传递加翻译的功能,升级之后就是中继节点,执行信息通讯过程,而当这个部分具备了自己的账本、共识后,就有更高的安全性。就可以成为一个保护其他链的部分。
图为COSMOS的链结构
在COSMOS和波卡里,中继的部分级别都很高,因为中继的节点,都是主网节点的一部分,其全节点同步的数据,就是链的总帐本。而中继的节点也包含下层链的节点,也就是下层链和中继链的账本也是同步的。中继链的共识保护着下层链的账本安全,下层链也参与了中继链的共识过程。
侧链或者layer2的特殊性
中继的存在,是在跨链这种确实是多链的结构里,而在以太坊这样生态中唯一主网的结构里,所有其他的链,都是分叉的以太坊,或者通过一个节点同步以太坊的数据,而利用以太坊主网的数据安全性。
这种方式常见于侧链。
这个结构就是交易和合约运行的过程都在侧链上,而交易的结构上链,结果数据被以太坊主网打包,成为安全的证明。
在侧链的惯有介绍里,都会介绍侧链是依靠主网提供安全性的,即便是侧链自己有共识,但侧链自身的会存在需要主网数据同步的时候,即侧链上的数据源并不可信,而只有打包到以太坊区块里数据,或通过以太坊的节点协同后的数据才可信。
图为以太坊侧链方案Matic的技术结构
例如在侧链上运行Defi,那读取的ERC20代币的数据以及DEX上的代币价格,都以以太坊链上数据为准。
侧链是Layer2的一种,那广泛的layer2解决方案确实都需要主网提供安全性,也就是提供数据确认,生成链上的证明。这里存在一个逻辑是,layer2的存在,是为主网扩容的,所以,layer2网络是否是独立网络,有没有共识并不是主要的设计目标,因为很多layer2解决方案是没有链的,只有智能合约。
所以,我们今天的主题是链和链的保护关系,那已经做成自己链的layer2解决方案,都会是符合今天的讨论范围的,因为都需要主网的安全性庇护。
以太坊的分片和其他分层设计
除了其他的设计之外,目前理解链之间保护的,其实以太坊2.0的分片结构是很明显的。
从结构上分析,分片,是一种主链和子链结构的表现,这个结构里,主链是负责最终确认的,那安全性自然是主链负责。
未来,当信标链负责以太坊全网的出块确认时,以太坊的每一个分片,即被分为独立区域的链,都会有自己的一个小账本,然后通过分片链间的通讯方式,形成一个总帐本,然后总账本被信标链打包。
这里面,分片链的功能就是计算、存储、结果输出,然后与信标链通讯,最后同步信标链的总账本。
即便以太坊2.0现在换了路线图,现在以太坊也在使用数据分片,这是把数据产生后的结构分为了独立的部分,也类似链下的分片,只不过不是把链的节点分为了单独的片。
这种安全性保护的关系都有分层的需要,所以,很多链的设计上就借鉴了这样的思路。
图为Oasis的分层设计思路
例如把共识层单独设计,这样共识层负责全网安全性,而那些计算的部分就单独放在共识层外的链里进行处理,例如Oasis Network里把共识层之外设计成了Paratime,也就是单独的Paratime链,这些链形成自己的账本交给共识层,安全性被共识层保护着。
再例如Phala的共识层之外,设计了pRuntime,是运行在TEE里的单机链节点,也是一个个链的分片,其数据的安全性,也是由共识层确认出块的数据保护的。
加密货币网络技术已经很成熟了,因为从这些年的链的设计就能看出来,项目方对解决方案的理解已经足以打造更好的基础设施和应用了,不过值得提高的是一条链想要成功,不是技术决定的,而是决定于链的运营,链的运营的难题,项目方和创业者还在摸索中。