ZK链架构解析:构建价值互联网的下一代区块链技术

本文深入探讨ZK链架构如何通过零知识证明技术解决区块链扩容难题,详细介绍Hyperbridge跨链方案、数据可用性策略及ZK Stack定制化框架,为构建可扩展的价值互联网提供完整技术方案。

ZK链架构介绍:为价值互联网提供动力的技术体系

区块链扩容挑战

当前,以太坊每秒处理约12笔交易。为了支持全球金融活动上链的未来,我们需要能够每秒处理数百万笔交易。然而,由于其去中心化特性,区块链难以扩展。圣杯一直是水平可扩展性——类似于互联网,不同的服务器托管不同的网站,多个不同的链可以并行托管不同的应用程序。

已有许多尝试水平扩展的实验,如Polkadot、Cosmos、Near甚至现已过时的Eth2.0愿景,所有这些都有多个分片或多个链。所有这些解决方案都处理互操作性,因为分片和桥接是一起设计的,两者都是生态系统的组成部分。不幸的是,在这些解决方案中,分片之间永远无法完全信任彼此。

与此同时,以太坊社区通过验证链下计算在链上解决了信任问题,发明了Plasma、乐观汇总和其他解决方案。现在很明显,零知识证明是未来,因为它们提供加密安全性。以太坊将对所有人开放。DA层和ZK汇总将共同提供一个安全且可扩展的生态系统。但汇总之间将如何互操作?既然我们已经弄清了构建模块,现在是时候再次将系统作为一个连贯的整体来审视。

问题:当前的桥接解决方案

当前桥接解决方案的状况一团糟。有一些好的解决方案,例如原子交换,可以在不同区块链之间实现无需信任的资产交换。不幸的是,它们不适合通用消息传递。

为了在链之间传递信息,引入了基于经济激励的桥接。这些要求运营商锁定资金,这些资金可以根据仲裁过程被削减。

潜在的设计空间很大,存在几个潜在问题:

  • 仲裁过程不是无需信任的;dapp开发者必须考虑涉及的风险
  • 这些桥接通常不跨链转移真实资产;它们只释放已锁定的资金。这使得过程昂贵
  • 链可以硬分叉。这是它们的权利,但危及整个桥接生态系统
  • 即使经济激励合理,黑客攻击也可能发生

解决方案:ZK链 + Hyperbridge

Hyperbridge这个名字来自传统网络,用户可以使用超链接导航网站。类似地,我们的汇总将通过Hyperbridge连接,连接ZK链的分形树。

使用在L1上具有共享桥接合约的汇总,以及汇总之间的原生桥接,可以解决上面列出的所有问题:

  • 汇总具有无需信任的验证桥接
  • 原生桥接可以轻松销毁和铸造原生代币,用于生态系统成员之间的转移
  • L1作为单一事实来源,因此汇总不能硬分叉
  • 生态系统可以协调硬分叉,以防使用L1上的治理框架发现漏洞

Hyperbridge本身将是一个智能合约系统,验证其他链上发生的交易的Merkle证明。原始资产锁定在L1的共享桥接合约中。这意味着整个生态系统的流动性是统一的。

不幸的是,并非所有汇总都能利用这些属性。特别是,乐观汇总的L1最终性非常慢,使得无需信任的桥接变得不可能地慢。

这就是ZK魔力拯救的地方。ZK汇总的L1结算很快(低至几分钟),由于有效性证明的加密性质,我们可以安全地连接链。

ZK链用户体验

随着我们旨在让数十亿用户加入Web3,用户体验必须成为优先事项。用户将在不同的链上拥有钱包,通过跨链钱包管理统一。这仍然是一个热门的研究主题。

用户的钱包将显示他们所有的资产,中继器将处理桥接、销毁和铸造要在目标上使用的资产。ZK链将具有唯一标识符,当与ENS/Unstoppable域配对时,将使接收方地址看起来像电子邮件地址。

桥接将成为协议的一部分,因此它将与传输一起内置到钱包中。桥接时间将是证明结算时间,根据ZK链的不同,为1-15分钟。由于只需要中继器作为外部基础设施,桥接成本将最低,与gas费用相当。

想象一个跨链Uniswap交易。你用钱包开始交易。然后中继器将1 ETH传送到Uniswap链,ETH被交换为DAI。最后,中继器将DAI转移回你的原始链。所有三个步骤都是同一"半原子"交易的一部分。所有这些都在几分钟内完成,感觉就像你没有离开原始链(除了确认时间稍长)。

当在更便宜的链(validiums)上设置钱包时,它们必须信任托管组织不会丢失资金。与中心化交易所不同,这些资金不能被窃取,只能被冻结,这也伤害托管组织!风险将在钱包中明确说明。

资金转移后,用户可以在目标ZK链上正常使用它们。由于账户抽象,两个交易可以合并为单个交易。对于大多数交易来说,这将完全安全,但由于证明者延迟,有些可能会被抢先。

(超)可扩展性

有效性证明为生态系统提供基本可扩展性。拥有单个区块链就像运行单个CPU,同时运行多个ZK链提供并行化。

共享证明者是赋予生态系统超可扩展性的机制。如果每个ZK链都想独立地将其证明结算到L1,L1上的总负载仍将与ZK链的总数成正比。共享证明者聚合不同ZK链的证明,在单个证明中将它们全部结算在L1上。

共享证明者将是可选的,ZK链可以选择不参与。在这种情况下,它们可以直接将以太坊结算证明,费用更高。它也将是去中心化和广泛可访问的,意味着运行证明者的硬件要求将尽可能低。

ZK链的另一个选择是分形扩展,即L3及以上。这些也将是生态系统的一部分,并与其他ZK链具有互操作性。在同一L2上结算的L3之间将具有更快的消息传递,并通过L2强制交易具有廉价的原子性。这对于Validium来说是一个特别好的解决方案,因为它们不向L1发送数据。唯一的缺点是如果L2回滚,回滚的可能性更高。

可扩展性的进一步要求是数据可用性。这将由EIP-4844和最终的Danksharding提供。在此之前,可能使用validium、zkPorter和外部DA层。

主权

所有ZK链在生态系统中都将是主权的。这意味着两件事:

首先,L3及以上将能够退出其L2,要么自己成为L2,要么成为另一个L2上的L3。

其次,ZK链将能够无许可地加入和退出生态系统,将其所有资产添加或移除到公共池中。加入是不言自明的,每个人都有权启动新的ZK链并通过链工厂合约加入生态系统。

退出通常不是同样明智的决定,因为与其他ZK链的互操作性将丢失。然而,生态系统有时可能由于治理而升级,在这种情况下,每个ZK链都有权愤怒退出是必要的。在这种情况下,将有一个强制升级期,在此期间,不同意升级的ZK链可以以协调的方式退出。

从构建者角度看ZK链

核心桥接协议

由于我们的VM原生LLVM支持,智能合约将在生态系统中用许多不同的编程语言编写。开发者将可以选择使用原生桥接,不需要外部第三方。资产、函数调用、通用消息和历史数据都可以无需信任地跨链转移。

此生态系统中有三种类型的桥接。固有的L1-L2桥接、zkPorter分片桥接和hyperbridge将使用一组类似的接口运行。

L1-L2桥接是异步的。这意味着在发送交易执行后,目标链上的交易可能失败。这需要不同于传统智能合约的智能合约设计。请注意:zkPorter桥接将是同步的,类似于EVM中的原子跨合约调用。

还有另一个属性,L1→L2方向是原子的。L2验证者自动在目标上发起调用。L2→L1不是原子的,是用户(可能是dapp开发者)在目标上发起调用。

Hyperbridge在技术上类似于L2→L1桥接,它们将是异步且非原子的。然而,在账户抽象、外部中继器和汇总上较低费用的帮助下,用户将不必在目标链上发起调用。这意味着用户体验将感觉像L1→L2桥接。

除了跨链调用,还可以在交易内部执行跨链视图,访问生态系统中其他链的任意数据。

替代桥接协议

我们还在研究ZK链之间的异步原子性,而不牺牲去中心化。这将使hyperbridge像L1→L2桥接,交易将被自动调用,但仍将单独回滚。

这种构造使用相同的组件,ZK链、共享证明和DA层,只是配置略有不同。这意味着交易被接收的保证将是加密的,而不仅仅是由中继器经济保证。这将使智能合约能够跨链转移资金,即使是大量资金。

不幸的是,不同ZK链之间的同步交易是不可能的。共享排序器确实允许交易之间的原子依赖关系,当与共享构建器配对时,构造更强大。然而在这一点上,系统与具有多个分片的zkPorter一样中心化。ZK链将自由参与任何外部协议。

模块化:ZK链定制

ZK Stack将提供的主要定制选项如下所述。开发者当然可以自由实现自己的组件和定制。

排序交易

  • 中心化排序器 — 在此模式下,将有一个单一中心化操作员,具有传统的REST API来接受用户的交易。必须信任操作员保持活跃性,不滥用MEV,不允许未最终确定交易的重组,因此操作员的声誉将起重要作用。此选项的最大优点是它可以提供最低可能的延迟来确认交易(<100ms),这对于HFT等用例至关重要。
  • 去中心化排序器 — 在此模式下,ZK链将使用共识算法协调哪些交易包含在块中。它可以是任何算法,因此开发者可以重用现有实现。
  • 优先队列 — 这仅仅意味着没有任何排序器:所有交易可以通过底层L2甚至L1链的优先队列批量提交,利用它们更强的抗审查性。

数据可用性

每个ZK链可以使用智能合约接口管理其数据可用性(DA)策略。它可以使用下面描述的选项之一或一些更复杂的逻辑。

  • zkRollup — 这是我们的默认推荐策略:块结束时每个更改的存储槽的值必须作为calldata发布在L1上。
  • zkPorter — 我们已经有工作的zkPorter守护者测试网,我们正准备开源。
  • Validium — 我们通常不鼓励主流用户信任基于validium的解决方案。
  • zkRollup(仅输入) — 此策略将要求发布完整交易输入而不是最终存储更新。
  • zkRollup(自托管) — 一个极其有趣的选项!在此模式下,用户自托管他们拥有的所有账户的数据。

ZK Porter中的逻辑状态分区

每个ZK链可以有一个或多个逻辑分区,这些分区是同一状态的一部分,但存在于单独的子树中并强制执行不同的数据可用性策略。从用户的角度来看,它们将显示为单独的ZK链实例(具有自己的链ID、单独的钱包连接、区块浏览器视图等),但可以同步互操作。

同步性很重要,因为它支持分区之间的原子交易,解锁几个独特用例:

  • 透明读取另一个分区的状态
  • 在分区之间使用闪电贷款

隐私

ZK链可以通过多种方式添加隐私:

  • Validium — 对于在validium模式下运行的ZK链,只要操作员保持块数据秘密,对外部世界的隐私是开箱即用的。
  • 隐私协议 — 要实现用户级隐私,需要专门的L3协议。
  • 自托管汇总 — 基于用户维护的数据可用性和自证明的链下状态转换,将长期提供终极隐私和无限可扩展性。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计