可扩展性
可扩展性
我们在 Aztec 的目标是让隐私变得轻而易举。这就是为什么我们的汇总旨在以比主网低得多的成本为您提供完全私密的以太坊交易。
我们认为隐私是以太坊可扩展性路线图的关键缺失部分,因为它的用户功能本质上是非经济的。
但是隐私也必须是负担得起的,为了了解我们如何以便宜的价格获得隐私,我们需要对汇总经济学进行更深入的研究。
📖以太坊扩容背景
您可能已经熟悉两种共识以太坊扩展解决方案之间的区别:Optimistic Rollups (ORUs) 和 zkRollups (ZKRs)。我会让 Vitalik在这里解释一下。
但如果你想要我的看法,这里是 Optimistic Rollups 和 zkRollups 之间的基本权衡:
😅乐观
乐观汇总块生产者发布包含状态根的以太坊交易。生态系统“乐观地”认为系统的状态是有效的。
在 7 天的挑战期内,任何人都可以通过下载交易块并将之前的 Merkle 根状态与新的 Merkle 根状态进行比较来证明状态转换的无效性。
如果存在无效的状态转换,他们可以提交欺诈证明,导致区块生产者被削减,区块链状态回滚到其原始状态。
请注意,使用乐观汇总执行事务的成本非常接近免费,因为它本质上是由单个排序器完成的计算成本(就像某处的计算机)。但是,将数据发布到以太坊仍然存在可变成本。
⚫ 零知识
在零知识汇总中,汇总会产生大量固定成本。ZKR 不是被动地等待欺诈证明,而是主动向以太坊第 1 层发布简洁的零知识证明,以验证一组链下计算(“有效性证明”)。
虽然由于零知识证明的确定性,zkRollup中链外交易的安全性是无可挑剔的,但必须有足够高的交易吞吐量来摊销向以太坊发布证明的成本。
Tl;dr:
乐观:没有固定成本,最终确定性推迟了 7 天的挑战和退出期;如果发生欺诈,区块链状态会回滚
zk:高固定成本,最终性受限于 rollup 的速度,没有挑战或退出期,没有可能的欺诈(警告:只要密码学按预期工作)
🧮 简单的汇总数学
Aztec 当然是零知识汇总。(事实上,它是一个递归的 zk-rollup——一个 zk-zk-rollup,但我们会讲到的)。
这意味着它确实会产生将基于 SNARK 的证明发布到以太坊的固定成本。但这也意味着它具有高度可扩展性。
📈可扩展性
我们所说的可扩展性是什么意思?在区块链环境中,可扩展性意味着交易的边际成本随着每笔增量交易而下降。边际成本下降得越快,东西的可扩展性就越大。
在成本方面,乐观汇总没有固定费用,但在足够多的交易量下,zkRollups 很快克服了其固定成本的劣势,并以卓越的数据压缩力战胜了乐观汇总。
所以:zkRollups 更具可扩展性。
现在,如果您考虑大多数第 1 层,包括以太坊,它们是反可扩展的。通过以太坊的交易越多,每笔边际交易的成本就越高。
➗ zkRollups 为孩子们
这是 Aztec 和其他 zkRollups 的可扩展性方程的学童图:
希望这能让您了解 Aztec 如何扩展我们自己的汇总:
降低发布汇总的成本(我们对此进行控制)
增加每次汇总的事务数(我们主要控制这个)
降低发布通话数据的每笔交易成本(我们对以太坊没有控制,但我们可以选择成本更低的数据可用性解决方案)
让我们一一解决这些问题,将当前系统与一年前的性能进行比较,并讨论它们对未来网络性能的意义。
💸 发布汇总
在 Aztec 当前的技术范式中,我们称为 UltraPlonk 的证明系统的改进,向以太坊发布证明的成本约为 550,000 gas,比zk.money首次推出时便宜约 30%。
随着我们下一代证明系统的出现,我们预计这一数字将降至约 180,000 气体,[超级密码名称已编辑] 。
🚌 每个汇总
我们当前的系统最近从 zk.money 启动时的每个汇总 112 个事务升级到每个汇总 896 个事务,吞吐量提高了 8 倍。
在最近一次升级之前,Aztec在幕后工作的方式是:
在浏览器中生成一个证明
然后将 28 个客户证明聚合成一个“内部”汇总证明
然后将 4 个内部汇总证明聚合成一个“外部”汇总证明
然后在我们所说的根汇总电路中验证“外部”汇总证明——该电路确定了确保在 Aztec 上按预期执行的所有底层工作的有效性。然后,最终的证明将发布在链上以供后代使用。
这是证明上证明上的证明。
对于 Aztec Connect SDK 的发布,我们通过优化外部汇总电路将外部汇总的容量增加到 32 个内部证明。28 * 32 = 896。魔法。
这就是为什么我们要经历所有这些令人头疼的事情,编写可以有效验证递归 Plonk 证明的电路。
如果您到目前为止一直在关注,那么每笔交易的汇总成本份额下降了:
750k / 112 = 6,700 gas;至
550k / 896 = 614 gas → 提高了 11 倍!
我们认为这很值得发明新的密码学形式。
☎ 通话数据
除了验证 Aztec 的链下交易的证明之外,Aztec 还必须为每笔交易发布调用数据¹,以便任何人都可以重建 Aztec 的汇总状态并证明链下计算的有效性。
目前,将呼叫数据发布到以太坊的成本是每字节 16 gas。Vitalik 已经提交了EIP-4488,将调用数据的成本降低到每字节 3gas,同时还有另一个提案,令人困惑地命名为EIP-4844,它提供了一种新的数据格式,专门用于降低在以太坊上发布数据的汇总成本。
Aztec 广泛支持降低以太坊数据成本的努力,我们将在另一篇文章中讨论这两个 EIP 的细节。
目前,对于我们的架构而言,将成本扩展到数百个事务之外,会逐渐接近调用数据的成本。(参考)
请注意,Aztec 发布呼叫数据的链对于安全性至关重要,因为如果 Aztec 的汇总提供程序停止运行并且一旦提供程序重新联机就需要重建系统状态,则数据可用性是主要问题。
请注意,虽然汇总提供商倒闭只能冻结用户的资金,而无法窃取资金,但只有在状态可用时才能重新计算区块链状态(因此数据可用性)。
这就是为什么在可预见的未来,我们打算将汇总的状态发布到以太坊——它目前是 Lindy-est、最安全的链,具有一致且经过验证的正常运行时间。我们也很高兴探索我们自己的第一方链下数据可用性解决方案和像 Celestia 这样的第三方链。
目前,Aztec 交易需要在链上存储许多项目:
交易查看键(8,480 gas)²
加入拆分呼叫数据(2,064 gas)³
对于 DeFi 交易,调用数据进行存款和索赔 (2,064 * 2)⁴
总计:14,672 gas气体
🕔回顾和未来会怎样
自从 zk.money 在主网上推出以来,Aztec 的 zkRollup 已经有效地扩展了。即将推出的 Aztec Connect SDK 可为以太坊 DeFi 服务节省高达 100 倍的成本,同时提供完全的隐私保护。
尽管加密交易增加了复杂性,但阿兹台克人的私人交易成本总是比以太坊公共交易的成本便宜——你总是免费获得隐私(或比免费更好)。
房间里的一头大象是以太坊的数据成本。通话数据代表了 DeFi 交易的绝大部分(88.8%)gas 成本。随着时间的推移,随着证明验证成本的下降和汇总规模的进一步扩大,呼叫数据将占交易成本的近 100%。
届时,扩展 Aztec 也意味着优化以太坊。
注意:
通话数据是目前以太坊上最便宜的数据存储形式。它是一种特殊形式的内存,用于存储函数参数(因此“调用”数据,因为它用于调用外部函数)。
需要查看密钥才能查看加密交易并阅读交易的详细信息。与状态不同,它们对系统的活跃性并不重要。
加入-分割电路是一个简单的公式,可确保正确添加(加入)和分割(分割)Aztec 加密笔记。它遵循简单等价(a + b) = (c + d)。
DeFi 电路确保资产正确交付到 Aztec Rollup(存入)并从 Aztec Rollup 返回(提取)。
Last updated