ZK链架构解析:构建价值互联网的零知识证明技术
扩展区块链的挑战
当前,以太坊每秒处理约12笔交易。为了支持全球金融活动上链的未来,我们需要能够每秒处理数百万笔交易。然而,由于其去中心化特性,区块链难以扩展。圣杯始终是水平可扩展性。
类似于互联网中不同服务器托管不同网站,多个不同的链可以并行托管不同的应用程序。曾有许多尝试水平扩展的实验,如Polkadot、Cosmos、Near,甚至现在已经过时的Eth2.0愿景,所有这些都有多个分片或多个链。
当前跨链解决方案的问题
当前的跨链解决方案状态混乱。虽然有一些好的解决方案,如原子交换,可以在不同区块链之间实现无需信任的资产交换,但它们不适合通用消息传递。
为了在链之间传递信息,引入了基于经济激励的桥接。这些要求运营商锁定资金,这些资金可能基于仲裁过程被削减。
潜在的设计空间很大,存在几个潜在问题:
- 仲裁过程不是无需信任的;dapp开发者必须考虑涉及的风险
- 这些桥接通常不跨链转移真实资产;它们只释放已经锁定的资金
- 链可以进行硬分叉,这危及整个桥接生态系统
- 即使经济激励合理,黑客攻击也可能发生
解决方案:ZK链 + Hyperbridge
Hyperbridge的名称来自传统网络,用户可以使用超链接导航网站。类似地,我们的rollup将通过Hyperbridge连接,连接ZK链的分形树。
使用在L1上具有共享桥接合约的rollup,以及rollup之间的原生桥接,可以解决上面列出的所有问题:
- Rollup具有无需信任的验证桥接
- 原生桥接可以轻松销毁和铸造原生代币,用于生态系统成员之间的转移
- L1作为单一真相来源,因此rollup不能硬分叉
- 生态系统可以协调硬分叉,以防发现漏洞
Hyperbridge本身将是一个智能合约系统,验证其他链上交易的Merkle证明。原始资产被锁定在L1的共享桥接合约中。这意味着流动性在整个生态系统中是统一的。
ZK链用户体验
随着我们旨在让数十亿用户加入Web3,用户体验必须成为优先事项。用户将在不同的链上拥有钱包,通过跨链钱包管理统一。
用户的钱包将显示他们所有的资产,中继器将处理桥接、销毁和铸造要在目标链上使用的资产。ZK链将具有唯一标识符,当与ENS/Unstoppable domains配对时,将使接收地址看起来像电子邮件地址。
桥接将成为协议的一部分,因此它将与传输一起内置到钱包中。桥接时间将是证明结算时间,根据ZK链的不同,将在1-15分钟之间。
超可扩展性
有效性证明为生态系统提供了基本的可扩展性。拥有单个区块链就像运行单个CPU,同时运行多个ZK链提供了并行化。
共享证明器是赋予生态系统超可扩展性的机制。如果每个ZK链都想独立地将其证明结算到L1,那么L1上的总负载仍将与ZK链的总数成正比。共享证明器聚合不同ZK链的证明,在单个证明中将它们全部结算在L1上。
共享证明器将是可选的,ZK链可以选择不参与。在这种情况下,它们可以直接将以太坊结算其证明,费用更高。
ZK链的另一个选择是分形扩展,即L3及以上。这些也将成为生态系统的一部分,并与其他ZK链具有互操作性。
数据可用性
每个ZK链可以使用智能合约接口管理其数据可用性策略。它可以使用下面描述的选项之一或更复杂的逻辑。
可用的数据可用性选项包括:
- zkRollup:我们的默认推荐策略
- zkPorter:我们已经有一个工作的zkPorter守护者测试网
- Validium:对于企业链需要可审计性和隐私的情况完全合理
- zkRollup(仅输入):此策略将需要发布完整的交易输入而不是最终存储更新
- zkRollup(自托管):一个极其有趣的选项
ZK链定制化
ZK Stack提供的主要定制选项如下所述。开发者当然可以自由实现自己的组件和定制。
排序交易
- 集中式排序器:在此模式下,将有一个单一的集中式操作员,具有传统的REST API来接受用户的交易
- 去中心化排序器:在此模式下,ZK链将使用共识算法协调哪些交易包含在块中
- 优先队列:这仅仅意味着没有任何排序器
数据可用性 每个ZK链可以使用智能合约接口管理其数据可用性策略。它可以组合不同的数据可用性解决方案,例如结合zkPorter和validium。
隐私性
ZK链可以通过多种方式添加隐私:
- Validium:对于在validium模式下运行的ZK链,只要操作员保持块数据秘密,对外部世界的隐私就可以开箱即用
- 隐私协议:要实现用户级隐私,需要专门的L3协议
- 自托管rollup:基于用户维护的数据可用性和自证明的链下状态转换,将在长期内提供终极隐私和无限可扩展性
构建者视角的ZK链
核心桥接协议将使用许多不同的编程语言编写智能合约,由于我们的VM具有原生LLVM支持。开发者将可以选择使用原生桥接,不需要外部第三方。资产、函数调用、通用消息和历史数据都可以无需信任地跨链传输。
此生态系统中有三种类型的桥接:固有的L1-L2桥接、zkPorter分片桥接和hyperbridge将使用一组类似的接口运行。
除了跨链调用,还可以在交易内部执行跨链视图,访问生态系统中其他链的任意数据。
我们还在ZK链之间开发异步原子性,而不牺牲去中心化。这将使hyperbridge像L1→L2桥接一样,交易将被自动调用,但仍将单独回滚。