风险提示:央行等十部委发布《关于进一步防范和处置虚拟货币交易炒作风险的通知》, 请读者提高风险意识。

zkUniswap:首创zkAMM

本文介绍zkUniswap,这是一种首创的zkAMM,它使用zk协同处理器来减轻swap计算负担。

Marsbit
Marsbit
热度 ...

原文标题:zkUniswap: a first-of-its-kind zkAMM

原文作者:diego

原文来源:ethresear

编译:Kate

感谢Cairo, William X, Trace, jseam, Barnabé Monnot, Xyn, Filip Siroky, Colin Roberts, Thogard, Alex Nezlobin和其他人的慷慨反馈。

什么是zkUniswap?

zkUniswap是Uniswap V3的一个分支的概念验证研究,它使用zkVM (RISC Zero)来计算部分链下swap。当用户开始swap时,在链上发出请求。该请求由一个中继接收,该中继使计算脱离链,然后将输出(和相应的证明)发送给EVM中的回调函数。如果证明有效,则执行swap并满足请求。

在GitHub上查看zkUniswap的代码

什么是zkAMM?

zkAMM是自动做市商(AMM)的一种变体,它在协议中集成了零知识证明。这可以通过利用zk协同处理器减少swap步骤的计算来实现,就像这里讨论的情况一样。值得注意的是,与zk-rollup上的AMM不同,证明的验证是由协议本身完成的,允许它存在于不使用零知识证明的媒介中(如以太坊主网)。

zkAMM的意义是什么?

随着计算zk证明变得更便宜,从长远来看,计算链下swap可能会比计算链上swap更便宜。通过允许我们将部分交换过程外包到EVM之外,zkAMM让我们在不放弃信任保证的情况下摆脱EVM的限制,因为证明可以很容易地在链上进行验证。

swap步骤是什么?

swap步骤位于swap执行的核心。解释文档在UniswapV3的代码库中,swap步骤输出如下:

1. 金额转入和转出后的价格

2. 要兑换的金额

3. 要收到的金额

4. 将收取费用的输入金额

具体来说,由Uniswap V3Pool 3中的swap函数计算的步长为:

zkUniswap

该逻辑是由专业库SwapMath实现的。

技术蓝图

链下zk协同处理器

zkUniswap有效地利用zk协同处理器来执行swap步骤。该协议使用zkVM作为客户机程序来运行该步骤。这个程序是用Rust编写的,你可以在这里找到它,它使用了一个Uniswap V3 math库。

zkVM的证明程序生成一个收据,其中包括一个日志(该步骤的输出被提交到其中)和一个密封,这是一个zk-STARK。此收据用于验证日志中的输出是否正确执行了步骤程序。

链上swap请求和结算

用户通过在链上发出请求来启动swap,这是通过调用requestSwap 完成的。它们传递的输入和swap的输入是一样的。在本例中,中继器Bonsai接收请求并计算脱链步骤。然后中继将包括输出和证明在内的数据发送给函数invokeCallback。该函数验证证明,如果认为证明有效,则调用执行该步骤的回调函数,即settleSwap。

验证证明

使用了STARK-to-SNARK包装器,这样密封的zk-STARK就会在Groth16证明器中进行验证。这使得证明的验证更加有效,以至于我们可以在链上进行验证。用Solidity编写的Groth16验证器允许调用invokeCallback。

并发控制

由于交换是非原子的,因为请求和执行是在不同的交易中进行的,因为证明不是在EVM中进行的,所以在发出请求之后和执行交换之前,池的状态可能会发生变化。这将是非常有问题的,因为证明是针对发出请求时池的状态进行的。因此,如果在请求挂起期间对池进行更新操作,则要发布的证明无效。

为了防止这些问题,通过requestSwap将锁放在池上,如果锁处于活动状态,则阻塞除settleSwap之外的所有操作。这可以防止在swap过程中池的状态发生变化。如果回调成功调用,则由settleSwap解除锁。如果swap在预定的时间(由LOCK_TIMEOUT定义)之前没有完成,则锁将超时。因此,如果中继失败,变得无响应或发布无效证明,则池不会永远锁定。超时时间可能是几分钟,如果不是几秒钟的话,因为生成证明所需的时间相对较短。

锁拍卖

用户为了能够锁定池而相互竞争,因为一个池一次只能持有一个锁。调用requestSwap的第一个交易将锁定它,而其他交易必须等待swap解决或锁定超时。由于交易可以由构建器重新排序,因此用户可能希望付费让构建器首先包含自己的交易。这意味着价值将被MEV所损失。

然而,zkUniswap采取了不同的方式,使用可变利率渐进式荷兰式拍卖(VRGDA)拍卖这些锁。这使协议可以通过直接拍卖锁来获取该价值。此外,这些锁是按照一个时间表连续拍卖的,这样协议就可以最大限度地延长池被锁定的时间。如果销售提前,协议就会认识到需求数量的激增,并自动更新价格以反映这一点。同样,如果销售滞后,协议降低价格以匹配需求数量。总而言之,这被证明是协议的另一个收入来源。

拍卖由池智能合约执行,期望在对requestSwap的调用中至少以锁的价格转移ETH。如果提供的ETH多于必要的ETH,则在调用结束时将剩余部分自动返回给用户。

Swap流程

我们使用BonsaiRelay智能合约在链上处理与中继的交互,这是中继接收回调请求(发出的事件)并最终发布数据的网关(具体来说,用到invokeCallback):

zkUniswap

性能指标

zkVM中的程序大约需要~154720个周期。requestSwap消耗的平均gas量为~194141(最差的~254198),setteSwap消耗的平均gas量为~64076(最差的~100000)。作为参考,一个未修改的swap调用使用大约~71279(最差的~111330) gas。requestSwap可以得到显著的优化,但这里的情况并非如此,因为Bonsai请求最终比swap更昂贵。

这份gas报告是在启用了优化器、运行了20,000次、Solidity版本为0.8.17的情况下完成的。

展望未来

这项研究的概念验证表明,zkAMM目前要取代传统的AMM还为时过早。然而,有几种方法可以改进这种设计,利用其独特的优势,以便在未来它们的价值主张变得更具吸引力。

Swap并行化

Continuations可用于并行化Swap。从概念上讲,Continuations允许将zkVM的单个会话的执行跟踪拆分为许多段,每个段都被独立证明。路径相互独立的swap可以用zkVM中的一个段来表示,然后这些段可以作为更广泛会话的一部分,被并行地进行验证。这允许对一批Swap的证明步骤进行并行化。

n 是批次中的swap数量, CAMM 是传统 AMM 的计算成本,并且 CzkAMM 是 zkAMM 的计算成本。我们的假设表明

zkUniswap

从本质上讲,交换的执行可以在链上连续完成,但是实际swap步骤的计算将使用这种方法在链下并行完成。这允许批次中最重部分的并行化,这在EVM中是不可能的。

正如Trace所指出的那样,对于并行swap,锁可能是并行拍卖的,因为swap涉及不同的池。

差异隐私

zkAMM的实例化不是私有的。为此,我们需要一些噪音。虽然超出了本文的范围,但值得指出的是,差异隐私可以通过利用统一随机执行(Uniform Random Execution)等隐私增强机制来实现,如本文所述。

廉价或无gas请求

William X 的一个想法是将请求在一个更便宜的、可选的数据可用性层(如L2)上传播到中继用来完成请求或zkAMM所在的层。这有可能降低提出请求的成本。

另一种可能性是用户通过生成他们在链下传播的EIP712签名来发出请求。然后,中继可以在满足链上请求的同时提供此签名。这样就有可能实现无gas的swap请求。

摆脱锁

Cairo和jseam独立提出的另一个想法是,不依赖于锁定池,而是让证明指定池的状态可以改变多少。这将使swap的执行成为有条件的,就像常规swap交易指定他们可以接受的滑点一样。

在这种方法中,证明的成本可能会更高,因为我们可能会为池本身的状态生成证明,而不仅仅是为swap步骤生成证明。在任何情况下,这种权衡对于摆脱锁在UX中的好处来说仍然是有意义的。

未来的工作

差异隐私整合的探索。

进一步优化证明生成过程。

批处理swap证明的并行化实现。

探索请求方法的替代实现。

在GitHub 上查看zkUniswap的代码

免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:Marsbit,如有侵权请联系删除。转载或引用请注明文章出处!

标签:

分享至
https://www.chainlook.cn/toutiao/1696740612.html

下一篇:

Tip Coin:Epoch 2 阶段申领将于 10 月 9 日 5:00 结束,无人申领的代币将被销毁

链观CHAINLOOK消息,Web3 社交应用 Tip Coin 发推表示,Epoch 2 阶段申领将于北京时 […]

免责声明:
链观CHAINLOOK作为区块链技术应用与Web3行业研究的智库媒体,旨在为中国区块链专家、学者们提供最新的行业资讯信息与数据样本,用于区块链技术研究与创新。本站所发布的文章仅代表作者的个人观点,不代表链观CHAINLOOK官方立场,本站所发布的区块链行业研究报告与数据分析成果是通过人工智能算法对数据内容进行分析与归纳生成,不代表任何投资暗示与建议,链观CHAINLOOK不承担法律责任。

风险提示:
虚拟货币不具有法定货币等同的法律地位,参与虚拟货币投资交易存在法律风险,链观CHAINLOOK坚决反对各类代币炒作,请读者提高风险意识,理性看待区块链技术应用及市场风险。

© 链观CHAINLOOK All Rights Reserved. 京ICP备18054193号-5