当前位置:首页 > 知识 >

ZK-Rollup:区块链的二层网络和扩容方案

区块链为了保持去中心化,需要由多个节点来运行。但多个节点的构架也导致了整个区块链系统的速度问题。随着区块链上面的项目不断增加,扩展性也渐渐成为一个大问题。

所有layer2扩展性的解决方案背后的核心思想都是允许交易中的多方以某种方式安全地进行交互,而无需在主链(即layer1)上进行交易,但在某种程度上,仍然会利用以主链区块链开发社区出现了许多所谓的第2层(layer2)协议,例如侧链(sidechain)和ZK-Rollup。这篇文章简单介绍了这两种方法的技术细节以及它们的优缺点。

侧链是什么

Layer2的扩展解决方案促使了侧链的开发。侧链是一个与主链分开的独立分类账,主要用于记录由主链上单个交易打包并且引用的多个交易。

侧链的核心思想是拥有一个完全独立的区块链。侧链拥有自己的验证者和运营方,并具有往主链来回迁移资产的能力,并且可以将每一个区块头映射到主链上用来防止分叉。

映射是一种安全保障,提供了防止验证者暗箱操作导致分叉的可能性。

在上图中,侧链生成区块,并将其映射到主链上。映射就是将侧链区块的哈希值存储在主链上。侧链上的分叉选择规则原理是如果这条链不是建立在上一个映射的区块之上,就不会被公认。在上图中,即使侧链的验证者相互勾结并在生成区块A后尝试生成更长的链A->B->C,只要区块A已经映射到主链,那即便A->B->C是较长的链,这个较长的链也将被侧链参与者所忽略。

如果参与者希望将资产从主链转移到侧链,那他们需要首先将资产“锁定”在主链上,并在侧链提供资产已被锁定的证明。如果要解锁主链上的资产,他们首先要在退出侧链,并且提供退出侧链后的退出证明。

但是事实上,尽管侧链可以利用主链的安全性来防止分叉,但验证节点仍然可以合谋并执行另一种称为无效状态转换(invalidstatetransition)的攻击。这背后的原理是利用了主链不可能验证侧链产生的所有区块的性质(因为如果主链可以验证侧链的所有区块,那侧链就没有存在的意义了。侧链的主要用途就是避免主链验证每笔交易,从而达到增加可扩展性)。因此如果超过50%或66%(取决于区块链共识结构)的验证者合谋,他们可以创建一个完全无效的区块,该区块就可以从其他参与者那里窃取资金,映射此类区块到主链,将这些钱占为己有。

目前有一些解决无效状态转换的方法,但是这些方法知道今天尚未在实践中实现,本文也不一一列举。目前,大多数侧链都是建立在验证节点不腐败的假设上来运行。

有没有什么解决方案能不需要这种假设也能够照常运行?ZK-Rollup可以做到这一点。下面我们将着重介绍这个技术。

ZK-Rollup是什么

ZK-Rollup是一种layer2扩展的解决方案,从某种意义上说,“ZK-Rollup”实际上也是一个侧链,因为它可以产生区块并将这些区块映射到主链上。但是,与之前分析的侧链最大的不同就是ZK-Rollup并不信任rollup中的操作方。操作方可以在任何时候停止生成区块,生成无效区块,或者尝试其他形式的对抗行为。

类似于常规的侧链,操作方无法在任何之前在映射到主链

猜你喜欢

关注我们

微信二维码

微信