千层蛋糕:Layer-2 指南

大家好?

我是 Zac,Aztec 的 CEO。我们发明了 Plonk 这种通用型的 ZK-SNARK 技术和 zk.money,这是世界上首个隐私 rollup 项目,也是最近部署至以太坊主网的其中一个 L2 协议。

随着越来越多 Layer-2 团队将其技术部署到以太坊主网上,不断将扩容以太坊的愿景转化为现实,Layer2 上的风景变得让人越来越着迷。

但如果用户还没有融入到这个生态中,并且还没搞懂 Layer-2 相关的术语,那么用户就有可能会踩雷了。

令人失望的是,大多数人解释 Layer-2 解决方案都是因为与其的利益相关,并且会偏向某个特定的技术 (i.e. 没错,就是他们的协议所使用的那种技术!)

那我和他们有什么不同呢?完全没有!但至少我坦率言之,而不是假装公正,对吧?

我将尽我所能公平地概述。基于区块链的密码学/扩容方案的世界很小,因此每个开拓其边界的团队都值得我们尊重。所以我想我们应该参与其中!

什么是 L2,为什么它这么重要?

Eth 1.0 的交易吞吐量有限,导致了极高的交易费。

ETH 交易费主要来自:

状态存储变更的费用

交易数据的费用

计算的费用

Layer-2 解决方案则将上述一项或多项工作委托给一个构建于以太坊之上的次级网络。

一般来说 Layer-2 有两种类型,每一种都有自己的安全要求和取舍:optimistic rollups 和 zk rollups。而 Aztec 定义了第三类:隐私 rollup。

Optimistic Rollups

一个 optimistic rollup 就像是微型版本的以太坊,它自己作为一个网络也能承载智能合约和交易。

Optimistic rollup 会定期将交易区块广播至 Layer-1 的一个智能合约中。这些“区块”包括区块中每一笔交易的完整交易数据,除此之外什么也没有。Layer-1 上的智能合约不执行任何计算或进行任何存储更新。这大幅减少了发布一个区块的成本。

之所以称之为乐观 (optimistic) 的 rollup,因为该方案假设默认情况下每一笔交易都是有效的 —— Layer-1 上的智能合约不会直接检查其有效性。

相反,如果有用户认为某笔交易不正当 (如,双花交易),他们可以发布一个“欺诈证明”。而这时,Layer-1 上的智能合约就可以利用 rollup 发布的区块数据来验证那些涉嫌欺诈交易的有效性。

该操作成本非常高,但只有在怀疑有不正当行为时才必须这样做。

如果作恶行为坐实了,那么发布该 optimistic rollup 区块的实体 (通常称为验证者) 将丢失一些他们所质押的加密货币。

Optimistic rollups 依赖于这种经济共识来确保交易是正当的。

Optimistic rollups 的提款等候期时间通常比较久 (比如,一周)。这是因为,一旦某笔交易被发布至 rollups 中,用户需要等待是否有人指控其交易无效以及有无欺诈证明被发布至网络中 (这就像婚礼中牧师问“有人反对吗...”时出现的令人尴尬的沉默)。

等待欺诈证明的时间会大幅减缓提款时间

Optimistic rollup 中执行交易的主要成本是将交易数据发布到链上的费用。所有 rollups 都面临这个数据可用性问题,不管是 optimistic rollup 还是其他的 rollup。为了防止自己的资金被冻结,用户需要拥有权限以访问 rollup 的所有交易数据。要么将这些数据发布在 Layer-1 上,要么需要用户额外的信任假设 (比如,相信一些侧链会允许用户访问这些数据)。

在我撰写本文时,如果你所使用的 rollups 没有将其交易数据发布至链上,这意味着你只能祈祷你所依赖的中心化服务商不会冻结你的资金了。

优点:

功能丰富。可以复制 Eth1.0 的架构并支持只能合约。

与 zk-rollups 相比,更容易构建和部署

缺点:

提款退出时间较长。从交易执行到交易被视为‘安全有效’ (即无欺诈证明提出) 需要等待约一周的时间。

退出时间缓慢的问题可以借助承保人来缓解 (就是那些收取少量费用,提供 L1 资金流动性的一方,旨在让用户实现快速提款)

ZK Rollups

由二级网络处理计算和存储。

L2 将交易数据广播至主网,并提供有效性证明 —— 这是一种数学证明,证明交易是有效的。也就是说,将 L2 上的批量交易汇总成一笔大交易,并发送至 L1 某个智能合约中。

zkRollups 中的前缀 “zk” 代表着 “zero knowledge” (零知识)。然而,zkRollups 不提供隐私保护 —— 所有交易都默认公开,像 optimistic rollups 一样。之所以称之为 “zk”,是因为这种有效性证明通常是由零知识证明系统生成的 (例如,ZK-SNARK 或 ZK-STARK)。

这样做的好处在于,以太坊主网上就少了存储项更新和计算的开销。没有必要乐观地假设交易是有效的,如果证明是有效的,就可以确定交易是有效的。

这意味着 zkRollups 的提款时间比 optimistic rollups 要快许多,并且需要的信任假设也更少。

而房间里的白象是,零知识证明给一笔交易增加了惊人的计算开销。

为计算创建一个零知识证明比直接运行该计算要慢大概 100 万倍!这时一个粗略的估计,会根据所涉及的计算而有所不同,但对于在 Solidity 智能合约中的计算类型来说,这个估计是准确的。

zkRollups 通过将生成证明委托给具有大量计算资源的第三方 “rollup 提供商” 来处理这个问题。用户将依赖这些第三方服务商来为他们创建交易。Rollup 提供商可以审查或者抢跑交易,就像以太坊矿工可以做的那样。所需的算力越多,能够作为 rollup 提供商的主体就更少了,因此我们必须要从协议架构就充分解决审查问题。

当需要将智能合约移植到 L2 时,高昂的计算开销给我们带来了一些难题。完全兼容 EVM 是我们的目标,想要达到这个目标,就必须解决这个 100 万倍的减速问题。EVM 对 SNARK 极其不友好,因为字长是 256-位,并且原生支持 SHA3 和其他 SNARK-不友好的哈希算法。即便将计算证明委托给拥有大量计算资源的第三方也可能不足够。一种可能的解决方案就是,通过 FPGAs 或者 ASICs 把 zkSNARK 证明器算法直接写到硅中。Rollup 提供商将需要这种硬件来创建证明。

创建 zk 证明比运行一个普通程序要慢得多。我们研究的 Plonk 和 Plookup 将 SNARKs 的速度提高了一个数量级,但是与 optimistic rollups 相比,zkRollups 仍然存在性能问题。

通常,SNARK 和 STARK 编程语言不得不适应其底层证明系统的低效率。这两种语言通常难以实现可变长度循环和动态内存访问 (如动态数组和向量)。我们最新的 Plookup 研究中缓解了其中一些问题,但并非全部。

这意味着 zkRollup 可能会要求开发者将其合约移植到自定义语言中 (例如 Starkware 的 Cairo语言)。

对于那些不旨在实现完全 EVM 兼容性的 zkRollups 来说,有一个好处就是交易更加便宜。如果无需遵循 EVM 语义,那么就有可能减少每笔基本交易的广播数据量。Hermes network 就是这样做的。

优点:

交易成本可能比 optimistic rollups 更便宜

不需要欺诈证明,提款时间更短

缺点:

与 optimistic rollups 相比,添加功能速度更慢

依赖于使用自定义硬件的第三方来生成证明

可能需要功能有限的自定义语言

隐私 Rollups

Aztec 已于 2021 年 3 月在主网上线了隐私 rollup。用户可以将 ETH 封装到一个隐私屏蔽罩 (privacy shield) 中,并通过我们的在线隐私钱包 zk.money 发送隐私交易。

隐私 rollups 的技术与 zkRollups 的非常相似,但他们的用途完全不同。隐私 rollups 旨在为 L2 用户提供强大的隐私保证。用户匿名持有资金。当执行交易时,发送者和接收者都是匿名的,并且连转账金额也是加密的。

为此,我们使用了最先进的零知识证明系统 Plonk。我们在 2019 年发明了 Plonk,它很快便成为在区块链上开发零知识证明的团队中的行业标准。

在设计上实现隐私需要一个与 zkRollup 截然不同的 rollup 架构。我们采用的方法为“隐私优先”,因为我们知道,如果想要将公开的 L2 改造为拥有可编程的隐私性,那么往往需要牺牲用户体验或者激进地重构整个协议。

当前基于以太坊的隐私解决方案是混币器 (mixer)。混币器可用于匿名化用户的资金数额,但几乎没有其他用途。我们的隐私 L2 的完整版本将包括更多功能:

完全可编程的隐私型智能合约。隐私货币将有更高级的交易逻辑

NFT 的隐私所有权

可以完全隐藏 NFT 的属性,仅为该 NFT 的所有者可见

反洗钱和 KYC 检查可以直接通过编程写入隐私 代币/dApps 中 (例如,KYC tokens —— 用户可以在无需知道他们真实身份的前提下与可信任的对手方进行交易)

隐私性 DeFi!这是个很广泛的主题,需要专门写一篇文章来介绍 (很快就会发布出来了!)

只有一开始就把隐私放在首位,才有可能获得这些好处。协议的事务和状态模式也必须设计成与隐私特性相兼容。

优点:

实现隐私交易。用户的金融活动不会被第三方分析

Rollup 提供商也不能审查或者抢跑用户的交易。对那些提供商来说,每一笔交易就像一串随机数字

不需要欺诈证明,提款时间很短

不需要第三方执行计算,用户就可以单方面地提款

缺点:

比公开的 L2 贵 (但比主网便宜),直至数据可得性方案/Eth 2.0 推出

用户必须在本地构建隐私交易 zk 证明,不能委托给第三方。因而 zk 证明系统必须快如闪电

由于受到客户端构建证明性能的限制,隐私 rollups 添加功能的速度比 zkRollup 和 optimistic rollup 要慢。可以实现可编程性,但是实现完全兼容 EVM 还需要一段时间。

状态模式不同。价值必须像比特币那样以 UTXO ‘支票 (note)’ 表示,而不是通过以太坊的账户模型表示。当然,可以在应用程序中将其抽象表示出来。

在喧闹中寻求信号

L2 领域竞争激烈,想要在同行之前发布解决方案并且收获大批用户需要顶住极大的压力。

这可能会出现一些偷工减料的方案,并且需要添加额外的信任假设,而这些对用户来说是模糊的。

目前最大的问题就是数据可用性问题。

如果 L2 没有将其交易数据发布至链上,L2 的管理者就有可能冻结用户的资金。

每个 L2 团队都正努力地开拓当前扩容解决方案技术的边界。虽然这值得敬佩,但他们很有可能利用一些技术黑话来隐藏协议的缺陷。

如果用户正在考虑使用 L2,那么应该判断某个方案能不能充分解决下列问题:

该 L2 如何获得数据可用性?如果其交易费比以太坊上普通的转账费用低 20 倍以上,那么他们可能没有将所有数据广播至链上

用户可以仅凭借发布至以太坊主网上的信息单方面从 L2 中提款吗?

该协议有无公开的技术描述,以供第三方验证呢?

此外,对于 zkRollups 和 隐私 rollups,用户还需要考虑以下问题:

链上数据是否可证明有效?所有这些数据都会作为公共输入发送到 rollup 的电路中吗?

该 L2 依赖于集中式计算集群来创建 rollups 吗?如果是这样的话,他们有什么计划来防止审查和抢跑?当完全去中心化时,可能会有多少 rollup 提供商?

证明创建算法公开可见以及可审计吗?

未来的图景

接下来的一年将是 L2 领域里非常激动人心的时刻。无数协议将正式在主网部署,该行业里多年的研发与工程工作将迎来最繁荣的时刻。

对于 Aztec 的隐私 rollup 来说,我们关注的重点是将可编程的隐私智能合约带给大家。我们的 Plonk 和 Noir 编程语言旨在将高级程序编译成高度优化的 ZKSNARK 电路,这些电路的速度足够快,得以在浏览器中构建证明。该项技术将成为 Aztec 3.0 rollup 架构的基石,用户将可以使用 Noir 自定义电路。

通过将可编程隐私与扩容结合,我们为推动 web3 技术成为主流添加了最后一个缺失的环节。最终,web3 将能够与传统的 web2 技术在同一平台上竞争,并且以能否提供强大的隐私保证作为标准。我们希望能够培育一个繁荣的隐私加密货币和 NFT 生态系统,能够以保护隐私的方式与更多 DeFi 协议和更多传统金融服务进行交互。

我们已经推出了 zk.money,向大家证明这并不是什么疯狂的未来技术。我们已经开发了一些关键技术,以构建这个雄心勃勃的项目,现在我们要开始努力工作以实现我们的愿景。

来源 | aztec-protocol

作者 | Zac

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。