zkUniswap:首創zkAMM

2023-10-08 16:10:13
感謝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函數計算的步長為:

該邏輯是由專業庫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):

性能指標

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 的計算成本。我們的假設表明

從本質上講,交換的執行可以在鏈上連續完成,但是實際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的代碼

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

突破傳統預言機:Chaos Labs 發布 Edge,如何保障超 300 億美元交易的安全?

從隱祕中嶄露頭角:Edge Oracle Network 今天,@chaos_labs 推出了 E...

coincaso
36 1周前

mETH協議將迎來爆發:參與Methamorphosis活動,解鎖$COOK空投和重質押收益

mETH協議正在“COOK-ing”。$mETH已經是第四大ETH LST,有50萬枚$ETH被質...

coincaso
32 1周前

Hypernative 榮獲1600 萬美元融資,如何打造 Web3 安全防线

隨着 DeFi 的不斷發展,安全性仍然是該生態系統面臨的重大挑战,每年因安全問題而導致的資產損失高...

coincaso
44 2周前

特朗普強勢入局加密市場!DeFi項目首度曝光,創始團隊引發軒然大波

World Liberty Financial 白皮書中列出的四名團隊成員之前曾在 Dough F...

coincaso
58 2周前

ENA代幣暴跌超80%,算法穩定幣將陷入死亡螺旋?

在加密貨幣的世界裏,算法穩定幣一直是投資者和开發者心中的白月光,它代表着一種理想狀態,即使在最不確...

coincaso
42 3周前

Polymarket獨領風騷,萬字盤點各鏈預測市場現狀

以太坊創始人Vitalik Buterin,近期對公衆對預測市場的普遍誤解進行了深刻闡釋。他堅決地...

coincaso
49 3周前