對比Balancer、Curve和Uniswap三大DEX的Gas成本差異

本文作者:Yule Souza Andrade

用戶在以太坊區塊鏈中發現的主要用例之一就是無需中介即可在加密資產之間進行兌換的能力。 去中心化交易所或 DEX 是用于此活動的平臺, 它們可以概括為一類應用程式,允許您使用其池中可用的流動性將 ETH 或任何代幣交換為其他代幣。

DEX代表了以太坊上最廣泛的gas消耗應用, 根據 The Block 的統計,與代幣兌換相關的合約是消耗區塊鏈資源最多的合約之一,

盡管這些系統具有無需許可的性質、驚人的數量和無可爭議的成功,但在鏈上進行操作成本高昂,對某些用戶來說是一種負擔。 兌換成本可以分解為幾個不同的成本要素:

  • 價格影響
  • 流動性提供商費用
  • 滑點
  • 底層區塊鏈的交易費用

了解這些成本對于資本效率至關重要,并且如果做出正確選擇,用戶或可節省數千美元。

DEX中有幾個可供用戶選擇的協議應用,它們提供相同的代幣兌換核心服務, 本文旨在根據體驗對它們進行對比,也就是使用市場上可用的不同 DEX 時的交易費用成本。

為什么交易和 DEX 之間的 gas 成本會有所不同?

任何鏈上操作都需要根據它消耗的計算資源量來定價。 在以太坊網路中,gas 是用于衡量用于執行每個特定操作的計算工作量的單位,并直接影響交易成本。 由于每個協議采取不同的方法并且需要執行不同的函數來進行交換,因此每個交易/協議的消耗也不同,

一筆交易可以調用任意數量的函數并與許多不同的智能合約進行交互, 下面,我們可以看到使用 Tenderly 提供的工具進行的兩筆不同交易的 gas 消耗明細。 如您所見,第二筆交易最終比第一筆交易多花費了 70% 的 gas,

兩筆一般兌換交易所消耗 Gas的細節。來源: https://tenderly.co/ Dashboard

比較法

每個 DEX 都有其執行兌換的方法,但可以在它們之間確定一些模式。 為了比較不同 DEX 之間兌換的 gas 成本,每種都選擇了一個代表, Uniswap V2代表了傳統的恒定產品池,Uniswap V3引入了集中流動性池。Curve采用了混合和自定義曲線池;Balancer V2采用了加權池, 對于他們中的每一個,都設置了一個Dune儀表板:

  • Balancer:https://duneanalytics.com/yulesa/Balancer-Gas
  • Curve:https://duneanalytics.com/yulesa/Curve-Gas-Usage‌
  • Uniswap V2:https://duneanalytics.com/yulesa/Uniswap-V2-Gas-Usage‌
  • Uniswap V3:https://duneanalytics.com/yulesa/Uniswap-V3-Gas-Usage

儀表板允許通過在選擇框中輸入池地址來單獨檢查每個池。 它還有一個事務表來過濾異常值以進行更詳細的調查。

DEX gas對比儀表板,

在分析一個協議的多個池時,只有超過 100 筆交易符合上述標準的池才會被繪制出來,以獲得更相關的結果, 在分析與單個池交互的交易時,交易按兌換中涉及的跳轉次數進行分組,

涉及多次兌換的交易(在本例中為 2), 來源:https://etherscan.io/

兌換執行可以包裝在也執行其他代碼的事務中。 為了排除這種影響,只分析了直接調用協議金庫/路由器合約的交易。 此過濾器用于排除由 DEX 聚合器和合約路由的兌換交易,這些合約捆綁了多個會增加交易成本但與 DEX 協議本身無關的功能。

Balancer

Balancer池分布,

Balancer 的大部分交易來自 DEX 聚合器應用程式,例如 1inch、Metamask 等, 由于這些交易被排除在分析之外,這自然會減少可用的數據量。 盡管如此,仍有 14 個池符合至少 100 個直接調用交易的標準。 正如預期的那樣,當單獨評估每個池時,可以看到單跳交換和多跳兌換之間的顯著差異, 另一項發現是,池中代幣的數量不會改變使用它的交易的 gas 支出。 重要的是要記住,Balancer 中的 2 代幣池可能會也可能不會充當預言機——如果它們這樣做了,當存儲價格數據的內存槽被初始化時,gas 成本會更高一些。 這可以在這些池的移動平均圖表上查看。 請注意一旦所有內存插槽都已初始化,平均值是如何突然下降的。

分別為 LINK/WET、USDC/WETH 和 WBTC/WETH 礦池分布,

Cu

Curve池分布。

從本文研究的 DEX 來看,Curve 有一個獨特的機制,這使得這個對比有時會不平衡, 每個 Curve 池(metapool除外)都是為其資產定制的,

Curve顯示了所分析的 DEX 之間最顯著的gas消耗差異, 這得到了部分解釋,因為 Curve 允許交換未封裝的代幣,如 DAI 或 USDC,而這個池設計為不依賴其他協議 IOU,如 cDAI 或 yUSDC,并且封裝和拆包過程是交易的一部分, 結果,雖然池中的資產積累了這些協議的好處,但它使兌換變得更加昂貴。

分別為 3pool、renBTC 和 Tricrypto 池分布,

Uniswap V2

Uniswap V2 池分布,

除了是此列表中最古老的協議外,Uniswap V2 還被廣泛采用。 協議中已經創建了 2500 多個池,服務于資產的長尾, 繪制上圖時施加了一些限制,但它們可以描繪協議中的 gas 成本。 一些最受歡迎的代幣,例如穩定幣和 BTC,廣泛用于 ABC <-> ETH <-> WBTC 等交易中的多跳交換。 有時 ABC 轉賬是 gas 密集型的,會增加涉及這些流行代幣的交易中使用的平均 gas。 再一次,在調查每個池時,交易 gas 使用之間最顯著的差異可以分配給每筆交易進行的跳數,

分別為 LINK/WET、USDC/WETH 和 WBTC/WETH 池分布。

Uniswap V3

Uniswap V3 池分布,

Uniswap 協議V3的最大擔憂之一是交換交易可能會花費更多的 gas, Uniswap V3 兌換受其造成的價格影響。 相對于可用流動性的訂單越高,它就越能推動價格跨刻度,離散的價格區間代表 0.0001% 的價格上漲或下跌,其中流動性需要調整, 由于大多數交易對價格的影響相對較小,因此交易成本中位數與之前的版本一致。 但是,在處理適度的流動性池時,用戶需要關注訂單對價格的影響,

分別為 LINK/WET、USDC/WETH 和 WBTC/WETH 池分布。

對比協議

每個協議的gas成本。

選擇了 Balancer V2 和 Uniswap V2 和 V3 共有的三個對等池來進行詳細比較——USDC/WETH、WBTC/WETH 和 LINK/WETH,由于 Curve 的方法不同,因此選擇了它的一些池來融入圖片,但不會參與比較,

可以觀察到,3 個 DEX 之間消耗的gas沒有顯著差異,觀察到的差異可能與為研究選擇的方法不精確有關,對于 2 次跳轉兌換,差異可歸因于交易中涉及的其中一個代幣合約中的轉移函數的二階效應,

此外,這里有一個表格,計算成本(以美元為單位)、當前 ETH 價格和 DEX 之間觀察到的大致差異,從一個角度來看,在 2000 美元的 ETH 場景中,gas 為 50 gWei,為 WBTC/WETH 2 跳交換選擇 Uniswap V2 而不是 V3 的差異將節省 3.12 美元,對于大于 1040 美元的訂單,典型的 0.3% LP 費用大于此差異,

不同場景的gas成本,

結論

該研究表明,所分析的 DEX 之間沒有顯著差異, 對交易使用的 gas 的最大影響是執行交換所必須進行的跳數, 1 跳和 2 跳交換之間的差異比 DEX 之間的差異更有意義, 此外,根據交易規模,兌換成本的其他因素,如 LP 費用或滑點,可能會對總成本產生更顯著的影響,

盡管 Curve 在 gas 支出方面有一些非常有競爭力的池,但它的一些礦池是用底層協議 IOU 設計的,包裝和解包過程會顯著影響它們的掉期,

感謝 Markus Buhatem Koch 的討論為這篇文章提供了幫助,

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧