DEX 不僅是 DeFi 的重要發展,也是整個加密領域最大的發展之一。在加密領域,CEX 是最大的價值捕獲者。如今的 DEX 逐漸演變成為 CEX 的實質對手。本文由專欄作者 藍狐筆記 撰稿,不代表動區立場。
(前情提要:專欄觀點|去中心化交易所 (DEX),是未來牛市的助推器?)
在DeFi 領域,DEX 是最重要的組成部分。
根據 Dune Analytics 的 統計,過去 7 天的 DEX 交易量已經超過 40 億美元。
Uniswap 當日的交易量也超過 3 億美元,這些交易量都是記錄在鏈上的真實交易量,不可做假。
在今年年初的時候 Uniswap 上鎖定的資產量才 1,500 萬美元左右,即便是兩個月前的 7 月 25 日也才 8,000 多萬美元,而僅僅兩個多月後,Uniswap 鎖定資產量超過 20 億美元,可見其發展的迅速。
– 兩個月時間Uniswap的鎖定資產量從不到1億飆升至超過20億美元 –
延伸閱讀:Uniswap 總鎖倉量 TVL「飆破 20 億美元」,DeFi 還未退燒
DEX 的難題
雖然 DEX 發展迅速,但盛況之下並非沒有缺陷。
如今的 DEX 交易量往往由投機交易、挖礦等因素驅動,掩蓋了一些需要重視的問題。
這些問題包括高費用、速度慢、低吞吐量、用戶體驗差等。
參與過挖礦的用戶都深有體會,在擁堵的高峰期,挖礦 gas 費用幾十美元,甚至上百美元也是常有的事情。
– 擁堵時以太坊上的高額gas費用 –
由於多數 AMM 模式的 DEX 執行都是在鏈上完成,每個交易每個操作都需要等待區塊確認,這導致交易速度過慢。
對於用戶來說,swap 本意是兌換,但這種兌換的體驗不夠理想。
目前大多數的 DEX 都是基於以太坊,以太坊的 TPS 大約不到 20,對於不斷增長的交易需求來說,這樣級別的吞吐量是明顯不夠的。
延伸閱讀:以太坊2.0|Spadina測試網遇麻煩!下週「Zinken彩排」成11月主網如期上線關鍵
DEX 的技術出路
目前的 DEX 用戶還是相對小眾的加密用戶,即便如此,也不堪重負。假設,DEX 要跟 CEX 競爭,要對 CEX 形成足夠的競爭壓力,它還需要解決上述的基礎設施滯後的問題。
為了解決這些問題,目前有兩個選擇,一是離開以太坊,進入其他公鏈進行構建,正如目前 Serum 在 Solana 上構建 DEX 一樣;二是依然留在以太坊上,利用 Layer 2 的技術進行擴展,同時等待以太坊的分片。
在其他公鏈上構建 DEX 的優勢是,費用、速度、吞吐量等問題都可以得到極大緩解;不足之處在於它從頭開始,需要較長時間構建,因為 DeFi 上在以太坊上已經有足夠多的樂高技術,且形成了一定程度的網路效應,同時在網路安全性上以太坊也更高。
還有第二種方案是依然基於以太坊,但充分利用 Layer 2 技術,以實現對 DEX 現有問題的解決。筆者之前也提到過 Layer 2 賽道,其中 Zk-Rollup 在安全性上有它的優勢,同時也可以解決費用、吞吐量等問題,適合於 DEX 方面的構建。
延伸閱讀:以太坊 Layer 2 賽道解析:技術路徑權衡利弊後,哪些項目應該關注?
延伸閱讀:公鏈 DeFi 戰場|波卡 Polkadot 是否有機會撼動以太坊?
ZeroSwap 的 Layer 2 方案
ZeroSwap 是基於 Zk-Rollup 技術的 DEX。
ZK-Rollup 是一種 Layer2 的解決方案。ZeroSwap 試圖解決上述 DEX 存在的問題,它的核心在於通過應用 Zk-Rollup 技術實現低費用、快速的兌換體驗,同時它還具有高級別的安全性。
利用 Zk-Rollup 技術,將 ERC20 代幣轉移到 Layer 2,所有的代幣交易和兌換發生在 layer 2,不過由於它可以通過不斷生成的零知識證明保證 layer 1 和 layer 2 狀態的一致性。
由此可以無須等待區塊確認時間,無須繳納高額 gas 費用,實現更快速度的兌換,同時還擁有 layer 1 級別的安全性,這是接近於 CEX 的代幣兌換體驗。
延伸閱讀:散戶回血!以太坊「Gas 費用降 80%」創近期新低,DeFi冷卻、Layer 2方案成助力
具體來說,ZeroSwap 利用了 zkSync 的 Zk-Rollup 技術。
zkSync 是 Zk-Rollup 技術的一種實現。
首先是用戶將簽名的交易提交給驗證者。驗證者將多筆交易執行 rollup 操作,合併為一個區塊,並將更新後的合約狀態樹的根哈希、與之相對應 SNARK 證明發送到鏈上的合約。驗證者也會把交易對應的狀態增量發送到鏈上,由此人們可以重新構建交易後的狀態。
由於 SNARK 證明和狀態增量都會經過鏈上合約的驗證,可以證明所有交易的合法性以及區塊數據的可用性。
因此,驗證者是無法篡改狀態的,也無法挪用 Layer 2 上的資金,因為所有狀態的改變都需要對應證明,這是無法偽造的。
此外,在這個過程中,資金並沒有託管給第三方,私鑰依然由用戶掌握。
從 zkSync 的 Zk-Rollup 實現可以看出,Zk-Rollup 的核心思想是通過大量交易聚合,以及鏈上智能合約來解析和驗證這些交易,並使用零知識證明技術將這些聚合交易的證明上鏈,從而實現 layer 2 層面的代幣交易。
在這個過程中,大部分計算和儲存都發生在鏈下,鏈上儲存的數據大大減少,資金鎖定在智能合約。
同時,由於鏈上儲存了 SNARK 證明和交易狀態增量,即便是驗證者不工作,用戶也可以通過鏈上數據恢復交易,取回鎖定的代幣。這可以保證代幣的安全性,用戶依然掌控了私鑰,這方面它跟目前 Layer 1 的 DEX 沒有什麼區別。
在保證安全性的前提下,它可以做到的極大地降低交易費用、加快交易速度,實現好幾個數量級別的體驗提升。
SNARK 驗證的 gas 消耗遠低於驗證大量交易的 gas 消耗,將完整狀態儲存在鏈下的成本也遠低於儲存在鏈上。從理論上,Zk-Rollup 可以通過 layer 2 方式實現以太坊的可擴展性,與此同時極大降低交易費用。
目前 ZeroSwap 基於 zkSync 的 ZK-Rollup 進行 layer 2 技術實現,它適合於構建安全的去中心化的兌換協議。
它支持基本的代幣兌換,包括存入代幣、轉帳和兌換、提取代幣。
存入代幣是指將代幣從 Layer 1 轉移到 zkSync 的 Layer 2 上;轉帳和兌換是指在 Layer 2 上進行代幣轉移和代幣的交易,其好處是基本上無須手續費;最後是代幣提取,將 Layer 2 上的代幣轉回至 Layer 1 帳戶。
ZK-Rollup的安全性
ZeroSwap 基於 Zk-Rollup 的技術構建了去中心化的 DEX 協議。
從表面上看,ZeroSwap 是類似於 Uniswap 的 AMM 模式的 DEX,但從底層技術實現和用戶體驗看,它們之間又有一定的區別。
它跟當前 Uniswap 的最大區別在於可以極大降低交易費用,極大提高交易速度,可以實現接近於 CEX 的兌換體驗,同時還能保證 Layer 1 級別的安全性。
考慮到其他的 Layer 2 方案,例如 Optimistic rollups 和 Validium 技術,雖然它們也能極大提高交易速度以及降低交易費,但它們在安全性上做了較大的平衡。
(六大layer2技術的綜合比較,Source:Alex Gluchowski)
鑑於 ZK-Rollup 在安全性上的重視,基於 Zk-Rollup 的 DEX 是未來的發展趨勢。
從 ZeroSwap 的計劃看,它預期是在 10 月底上線,鑑於 Uniswap 的 Layer 2 還沒有推出,ZeroSwap 有可能成為第一個推出基於 ZK-Rollup 的 AMM 模式的 DEX。
延伸閱讀:Uniswap即將迎來 V3 ,有什麼值得期待的?DEX其他項目還有機會嗎?
ZeroSwap 的整體框架
從大框架來說,ZeroSwap 系統包括了鏈上智能合約、鏈下 ZeroSwap 服務端、零知識證明系統以及前端用戶界面。
具體如下圖:
(ZeroSwap的整體框架,Source:ZeroSwap白皮書)
鏈上智能合約是部署在以太坊上的一組智能合約。
用戶的代幣會存入其中,它還會記錄和驗證 Layer 2 狀態的更新和對應的證明,它是連接鏈上和鏈下的橋樑。
ZeroSwap 的 Layer 2 服務端處理鏈下的交易,一方面它通過接口跟用戶發生交互,一方面它監聽以太坊鏈上的交易。
交易請求會放入 ZeroSwap 的內存池,區塊提議者對交易進行 Rollup,生成新區塊,狀態 Keeper 則負責更新 Layer 2 中的代幣狀態,並將其發送給 Committer。
Committer 跟 Prove server 通信,獲得對應交易的證明。
這些狀態和所對應的 SNARK 證明會發送到鏈上的 ZeroSwap 智能合約。
ZeroSwap 的零知識證明系統兩個特點。
一是具有分佈式架構,其 Prove server 支持多個 Prover,多個 Prover 可以查詢 Prove server 的證明任務,在生成證明後返回給 Prove server。
二是採用了 PLONK 的零知識證明算法,它可以極大降低零知識證明的使用門檻。
PLONK 的全局信任設置只需要生成一次,電路規模在一定範圍內可複用。
ZeroSwap 的交易過程會反映到其狀態樹的變化上。ZeroSwap 的狀態樹是高度為 34 的默克爾樹,用於記錄當前系統中所有帳戶的餘額狀態。根節點 Root 的子節點為系統中所有帳戶節點,帳戶節點包括普通帳戶節點和 Pair 帳戶節點。
普通帳戶節點用於記錄帳戶內所有代幣的狀態,可以有多個葉子節點,每個葉子節點代表一個類型的代幣以及其數量。
Pair 帳戶節點用於記錄 ZeroSwap 中某個交易對資金池的狀態。它只包含兩個葉子節點,每個葉子節點代表該資金池中其中一個代幣的餘額和類型。
(ZeroSwap上的狀態樹,Source:ZeroSwap白皮書)
總結來說,ZeroSwap 在技術有自己的特色,例如它採用了 Plonk 證明系統,其 ZK 證明電路可以支持不同大小,其初始可信設置只需一次,且在已有設置上可升級;在 Layer 2 層面實現了 Uniswap 的兌換邏輯,有可能成為首個實現基於 ZK-Rollup 的 AMM 模式的 DEX,如果順利實現,可以極大降低用戶的費用,加快交易速度。
ZeroSwap 的用戶操作的背後
跟目前 Layer 1 上的 DEX 相比,基於 Layer 2 的 ZeroSwap 上有哪些操作?
這些操作的背後跟 Layer 1 上的 DEX 又有什麼不一樣?從用戶前端操作的角度,ZeroSwap 比 Uniswap 多了存入和提取代幣的操作,其他操作基本一致。
從交易者的角度,在 ZeroSwap 上完成交易,需要哪些操作?這些操作的背後是什麼?
相對於 Layer 1 上的 DEX 交易來說,Layer 2 上的 DEX 交易需要將代幣從 Layer 1 帳戶上存入到 Layer 2 的帳戶,之後才能進行代幣的兌換或轉帳。
這裡會涉及到代幣的存入、轉帳、兌換以及提取操作。
首先是向 Layer 2 帳戶存入代幣。用戶將以太坊鏈上的代幣存入 ZeroSwap 的合約,一旦 ZeroSwap 監聽到用戶在鏈上將代幣轉入 ZeroSwap 的合約之後,它會根據交易的詳情更新狀態樹。
ZeroSwap 會根據交易找到相應的帳戶,並根據存入金額更新帳戶中該代幣的餘額。
如果帳戶還沒有相應代幣的葉子節點,首先會創建該代幣的葉子節點,然後在更新狀態。葉子節點的狀態更新會導致根節點哈希的改變。根節點哈希會與存入交易的 SNARK證明一起發送到鏈上的 ZeroSwap 合約中。
其次是在 Layer 2 上進行轉帳和交易。在 ZeroSwap 上進行轉帳就是把一種代幣從一個帳戶發送到其他帳戶的過程。轉帳也由用戶在 Layer-2 上發起,ZeroSwap Server 收到轉帳請求後找到相應的收發帳戶,更新這兩個帳戶下的代幣餘額狀態。
更新後的狀態樹的根節點哈希和轉帳相對應的 SNARK 證明一起發送到 ZeroSwap 的智能合約上。
不過,它並不是鏈上的代幣轉移,因為代幣還在 ZeroSwap 合約中。用戶在 Layer 2 上進行交易,它本質上是用自己的代幣與 Layer 2 中代幣對資金池中的代幣進行兌換。
用戶將其在 ZeroSwap 帳戶下的某個代幣發送到相應的代幣對帳戶,ZeroSwap 則根據 AMM 算法計算出用戶可以獲得的相應代幣的數量,並發送給用戶帳戶。
與此同時,ZeroSwap 將更新後的狀態樹根節點哈希以及兌換操作所對應的 SNARK 證明發送到 ZeroSwap 合約上。
在代幣兌換後,跟轉帳操作一樣,鏈上的代幣狀態不會發生改變,因為代幣還在 ZeroSwap 合約中。
(ZeroSwap上兌換操作流程,Source:ZeroSwap白皮書)
最後跟 Layer 1 上的 DEX 不同,Layer 2 上的 DEX 代幣要回到 Layer 1,用戶還需要將代幣從 Layer 2 帳戶提取到 Layer 1。
當用戶從 ZeroSwap 中提取代幣時,首先用戶在 Layer 2 上發起,之後 ZeroSwap 伺服器會收到用戶的提幣請求,之後更新該用戶帳戶下對應的代幣狀態,並將更新後的狀態樹根節點哈希以及提取操作的 SNARK 證明發送到鏈上的 ZeroSwap 合約。
合約進行驗證,然後將合約中鎖定的相應代幣發送到用戶在鏈上的帳戶。
這一點類似於傳統 CEX 的提幣操作,不過不同的是,用戶可以自由掌控 ZeroSwap DEX 的提幣,而 CEX 的提幣則會受限於 CEX 機構。
在 AMM 模式的 DEX 中,交易者要完成交易,首先要有代幣對的流動性池。
那麼如果從流動性提供者的角度,在 ZeroSwap 上如何提供流動性,如何移除流動性?其背後是什麼原理?
延伸閱讀:DeFi 解析|SushiSwap 遷移掀戰,探索 Miniswap 的 DEX 之路
流動性提供者如何添加流動性?
首先由用戶在 Layer 2 上發起添加某個代幣對流動性的請求,ZeroSwap 伺服器收到請求後會找到對應請求人的帳戶和代幣對帳戶,然後根據 AMM 算法要求將用戶帳戶下的兩種代幣轉入到代幣對帳戶。
系統根據當前代幣池的資金量,計算出用戶可以得到的 LP 代幣數量,LP 代幣代表了用戶在流動性池中權益份額。
狀態更新後的狀態樹根節點哈希和對應的添加流動性證明一起發送到 ZeroSwap 合約中。
(往代幣池注入流動性,Source:ZeroSwap白皮書)
流動性提供者如何移除流動性?
首先由用戶在 Layer 2 上發起移除流動性的請求,ZeroSwap 伺服器收到用戶請求後會找到對應請求人的帳戶並銷毀相應數量的 LP 代幣。
同時,該代幣對帳戶會根據銷毀 LP 的數量按比例將兩種代幣返回給請求人的帳戶。
狀態更新後的狀態樹根節點哈希和相應的移除流動性操作證明一起發送到 ZeroSwap 合約中。
最後,ZeroSwap 上還有一個提取流動性的操作,它並不是移除流動性,而是將流動性池的 LP 代幣從Layer 2 提取到 Layer 1。
從操作過程看,它跟其他代幣從 Layer 2 提取回 Layer 1 是一致的。
不過不同點在於 LP 代幣還有一個「鑄造」,需要在 Layer 1 生成 LP 代幣,發送到相應帳戶。
ZeroSwap 什麼時候推出?
根據 ZeroSwap 發布的計劃看,2020 年 10 月 10 日可以在以太坊測試網上使用,支持 Layer 2 交易池的創建、兌換以及流動性的添加和移除;2020 年 10 月 20 日支持多個交易池的組合;2020 年 10 月 30 日正式推出,在以太坊主網上啟動,支持類似於 Uniswap 的各種功能;2020 年 12 月 30 日實現 Plonk 證明系統的電路優化,以及證明性能 GPU 優化;2020 年 11 月初開啟流動性挖礦。
延伸閱讀:幣安 CZ:Vitalik 15年上線以太坊「證明我錯了」;我看好 2.0 但這是場硬仗
Layer 2 與 DEX 的發展
DEX 不僅是 DeFi 的重要發展,也是整個加密領域最大的發展之一。
在加密領域,CEX 是最大的價值捕獲者。如今的 DEX 逐漸演變成為 CEX 的實質對手。
不過,目前的 DEX 在可擴展性、交易費用、交易速度、交易體驗等方面依然存在短板,無法達到 CEX 的水平;但隨著 Layer 2 解決方案的推出,尤其是 Zk-Rollup 技術的推出, DEX 會逐漸解決其短板。一旦這些技術上的短板得以解決,DEX 有機會走向大規模的人群的採用,進而在實質上真正成為 CEX 的對手。
📍相關報導📍
深度探討|DeFi、CeFi和傳統金融捍衛者之間的戰爭
最完整的 DeFi 入門全導覽:為什麼去中心化金融是加密史上第二個突破?
觀點|Defi 為何「難以走向主流大眾」?阻礙 CeFi 集成 DeFi 的 8 個原因
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。
LINE 與 Messenger 不定期為大家服務