Dragonfly:從 AMM 交易處理效率來看 L1 公鏈究竟誰「快」

企業區塊鏈|Dragonfly:從 AMM 交易處理效率來看 L1 公鏈究竟誰「快」|元宇宙視界傳媒
(本文經授權轉載自 Foresight News,英文原文請見連結)

相比於單純的 TPS 數據,以 AMM 交易合約為基準來測試 Layer 1 公鏈性能更具公允性。

  • 撰文:DM,Dragonfly Capital 研究員
  • 編譯:iambabywhale.eth

多鏈格局已經成為了現實。以太坊缺乏可擴展性導致眾多應用及流量遷移至新一代的 Layer 1 公鏈。這些新公鏈大多兼容 EVM,也使得其與以太坊錢包和開發工具兼容,但這其中選擇從頭重建堆棧的 Solana 是一個例外。Solana 一直被市場認為是最快的區塊鏈,那麼問題來了:Solana 究竟比 EVM 兼容鏈要快多少?

企業區塊鏈|Dragonfly:從 AMM 交易處理效率來看 L1 公鏈究竟誰「快」|元宇宙視界傳媒

在回答這個問題之前,首先我們需要確定一個衡量基準。新公鏈總是喜歡宣稱自己的性能比以太坊高出多少多少,你會看到亂七八糟的數字、匆忙趕制的圖表以及比較主觀的 TPS 數據。而這些通常來自於營銷材料的 TPS 數據,幾乎都是胡說八道。

大多 Layer 1 公鏈本身公佈的 TPS 測試基準幾乎都是基於簡單的轉賬 — 即將代幣從一個賬戶轉移到另一個賬戶。簡單的轉賬很便宜,所以就會產生很高的 TPS,但事實是沒有哪個區塊鏈會在代幣轉賬上出現瓶頸,而且簡單轉賬並不能真實地反應用戶使用該公鏈的情況。除此之外,這些數據很多時候來源於開發者網絡或測試網絡而不是主網,總之我並不關心這條鏈理論上能做到什麼程度,我只關心當下實際的情況。

實際上,對公鏈 TPS 的測試沒有一個統一的基準,但所有與「基準」相關的事似乎都是很混亂的,充滿了誤導性營銷、欺詐以及單純為了滿足「基準」這樣的情況。

所以,我們究竟應該如何衡量 Layer 1 公鏈的表現呢?

這個問題有些棘手,因為性能包含了多個維度。

首先,性能始終需要與去中心化進行權衡。高度中心化的測試網和開發者網絡相比主網可能可以產生很高的數據,於是很多主網通過犧牲去中心化程度「擠壓」出了更高的性能。但是假設我們忽略去中心化,只關注性能,依然難以對區塊鏈性能進行測試,因為大多數新公鏈的數據可視性都很差。

7 年以來,以太坊被人們深入研究和理解,而相比之下大多數新公鏈的鏈上工具很少且數據可視性差,同時它們也在不斷發展,可能在你閱讀這篇文章的時候,這些基準已經過時了。此外,基準總是很隨意卻又陷阱重重,你最好的選擇就是去以一個有價值的東西作為衡量基準,然後盡可能謹慎地確認你的結果。這就是我們嘗試去做的事情。

我們所謂的性能包括兩個方面,吞吐量和延遲。

你可以將區塊鏈性能可視化,例如流過管道的水,交易就是水,你希望大量交易同時流過管道,但管道的長度決定了延遲,也就是說如果一個交易需要很長時間才能被執行,哪怕被執行之後可以立刻被確認,也是不理想的。

企業區塊鏈|Dragonfly:從 AMM 交易處理效率來看 L1 公鏈究竟誰「快」|元宇宙視界傳媒

延遲可以細分為區塊時間(兩個相鄰區塊的出塊間隔)和最終確認時間(區塊確定不會被回滾的時間),這兩個變量很容易衡量。

但是要實際測量吞吐量,你需要一個基準的測量單位即「做什麼的」吞吐量。

我們沒有使用代幣轉賬,而是使用以太坊上 Gas 消耗最高的產品之一:Uniswap V2,將其作為基準。如果你使用 Uniswap V2 上代幣交易類型的交易來填滿區塊,每秒可以有多少筆交易被確認?

我們選擇這個基準的原因是:1)它簡單且易於測量;2)每個區塊鏈上都運行這一個 Uniswap V2 風格的 AMM;3)它是常見的智能合約使用模式的典型。

對於大多數具有 Gas 模型的區塊鏈,該方案的實操難度並不高:首先找到區塊 Gas 上限和出塊時間,推導出鏈的 Gas / 秒吞吐量。然後找到一個 Uniswap V2 風格的 AMM 並進行等價的 SwapETHforTokens 交易,獲得每筆交易消耗的 Gas 數據,使用第一個數據除以第二個數據就能得出如果其區塊被類似的 AMM 交易填滿,可以實現每秒多少筆交易。

這並不是一個完美的基準,因為它沒有考慮並行交易(Uniswap 在同一個池子裡的交易是線性的),並且它也不能代表所有使用方式。但智能合約的使用是符合冪律分布的,並且最常用的 DApp 往往是 AMM。因此在一組基準測試中,我們認為該方案有助於全面瞭解性能。

假設和方法:在與 EIP-1559 達成平衡的 1500 萬 Gas 的上限下,以太坊每秒可進行 9.19 次交易;在 3000 萬 Gas 上限下,可以實現每秒 18.38 次交易(但如果保持這個狀態,費用將成倍增加),我們使用 swapExactETHForTokens 交易作為基準。假設礦工可以用 Uniswap 交易完美地填充 1500 萬 Gas 上限的區塊,每筆交易花費 123658Gas,這意味著我們可以將 1500 萬 / 123658 數學公式: $ \approx $121.3 個交易放入單個區塊,假設每 13.2 秒出一個塊,就意味著以太坊每秒可以處理 121.3/13.2 數學公式: $ \approx $9.19 次 Uniswap V2 交易。

我們將對列表中的其他 EVM 兼容鏈使用類似的計算方式。

(注意:我們忽略了使用 Rollup 方案的情況,因為所有的 Layer 1 智能合約都可以添加 Rollup。)