分片技术终焉之战:谁来保障分片网络的安全?



  • 状态分片开发难度、分片网络1%攻击问题以及跨分片交易,一度被视作是分片类项目落地的主要障碍;不过,随着开发者不断推理论证,这三种问题的解决方式也逐渐清晰,本文将着重分析分片网络面临的安全问题,浅析当前主流方案。

    1%攻击与随机性节点分配方案

    1%攻击本质上是51%算力攻击的变种,或者可以理解为51%算力攻击在分片网络中的另一种实现方式。其攻击流程大致如下:区块链网络切分为N个分片之后,单一分片算力都只有全网的 N分之一。恶意节点利用全网 51/n %的算力就可以攻击甚至占领一个分片,从而使全网丧失有效性,这就是所谓的 1%攻击问题。

    这一安全问题的来源在于每个分片都有自己的节点验证者,这些验证者数量有限,相比较全网而言被暴露、攻击的可能性会更大,单个片区的安全性就会比整条链更差。而伴随着分片数量不断增加,算力攻击成本越来越低,网络安全性也会随之下滑,理论上来讲给定数量的验证器,分片越多,任何单个分片被破坏的风险就越大。

    了解问题的核心后,解决措施也一目了解:其一是保障验证节点的随机性,如果攻击者无法判断出哪个节点处理验证过程,那么攻击者就极不可能在同一分片中获得所有验证者,从而大大降低了它们破坏系统的能力。其二则是确保全网算力能够作用到所有分片,并参与各个分片的确认工作,这一措施将会使单一分片的算力难度提升至全网高度,从根本上杜绝算力攻击问题。

    先说随机性方案,也是目前分片类项目应用最广的安全方案。其安全逻辑在于区块链网络必须以充分随机性方式将验证节点分配给分片,并确保验证节点投票权足够均匀(例如通过上限),随机分配过程以及验证节点都不会进行任何针对特定分片的计算。这也就意味着节点会被随机匹配各项工作,且节点自身也无法判定会被匹配哪项工作,进而规避了节点作恶的可能性。

    为了实现这种计算,几乎所有现有设计都包含一条单独的区块链,负责执行维护整个网络所需的操作。这个链在以太坊中称为信标链(Beacon Chain),负责生成随机数、为分片分配节点、接收分片的信息更新等等功能。

    但是信标链也并非“银弹”,同样存在性能瓶颈,因为信标链需要做一些记账计算工作,且这些计算量是与系统中分片的数量成正比的,所以分片数量越多,信标链的计算工作量就越大,可以说依托于信标链、随机性方案的分片网络与生俱来存在可扩展性限制的问题。

    随机性方案之外,并行挖矿如何保证分片安全?

    保障分片网络安全,并非只有随机性方案一种。分片网络的安全问题在于算力攻击难度降低到全网的N分之一,反过来如果能够将分片的算力难度提升至全网级别,无疑也能够最大限度保证网络安全,就此则产生了全新的安全性方案——并行挖矿。

    在一般的分片环境中,一份算力原本只能作用在一个分片,通过并行挖矿,这一份算力可以作用在所有分片上,从而将每个分片链的难度提高到和全网算力同等的水平,所以仍然保证了只要恶意节点的算力占全网不超过 51%,就无法攻击任何一个分片。

    具体而言,在并行挖矿的逻辑中,参与并行挖矿的算力分别构造多个链的区块,将这些区块的块头构造成一个可信数据源,然后探测 nonce 并计算哈希,一旦哈希满足某个链的难度要求,即完成了此链的一个新区块打包,这个新区块包含了之前构造的此链的区块,以及区块块头在块头Merkle树的Merkle Proof,从而提供了区块交易的 include 证明。

    除却安全性,并行挖矿同时还会带来收益的提升,对于矿工而言,参与并行挖矿的收益很明显,其有机会获得多个链的出块奖励,矿工为了最大化收益,都会尽量启用并行挖矿,从而使其安全机制被最大程度的发挥出来。理论上分片数量越多,矿工算力收益越高。

    区块链分片扩容本就是相对空白的蓝海地带,伴随产生的基于信标链的随机性方案也好,又或者全新的并行挖矿机制也罢,都仍需时间和实践的验证,目前尚难预测谁将成为主流方案,但却不能否认这些技术都在探索着公链安全性的极致。



  • MultiVAC的动态重分片就是保证分片安全的吧?感觉正好是解决文中说的这个问题!!