以太坊 DeFi 的 Gas 消耗是否還有改進空間?
本文發布於DODOZoo,作者:雷明達,DODO創始人。
我在這裡系統介紹下 Gas 問題。
Gas 的使用機制
首先,以太坊的 Gas 是一種預付機制。在 DEX 的使用過程中,你會看到三個 Gas 數值
A. DEX 前端展示的 Gas
B. 錢包簽名時看到的 Gas limit
C. 在 Etherscan 看到的真實 Gas 消耗
打個比方,你去住酒店:
A. 攜程上看到的酒店價格預估 1000
B. 酒店要刷你預付款 3000
C. 走的時候結帳,住宿加酒水真實花掉 1200
下面我們先著重討論真實消耗,再討論如何讓這個數字儘可能真實地展示給用戶。
什麼叫 Gas 貴?
我們所講的一筆交易用了 100 美金 Gas,指的是:
「Gas * GasPrice * ethPrice」
這裡面,GasPrice 由用戶決定,要快速成交就多花點,不著急就少花點。ethPrice 由市場決定。
真正受產品影響的,是 Gas 消耗本身。所以要真的深入了解 Gas,我們討論的基礎,就要從美元,變成 Gas 數量。
數量級概念
那麼 Gas 主要消耗在什麼地方了呢?
兩大部分: 1. 數據寫入 2. 外部調用
所謂的 Gas 優化,指的就是用儘可能少的數據寫入和外部調用,來完成業務邏輯。
寫入數據花費大約 20,000~5,000 Gas,合約調用花費大約 3,000 Gas,這是最大頭的部分,由於計算執行環境的複雜,在生產環境中,下面所有提到的 Gas 消耗都是會小範圍浮動的。
一筆 ERC 20 轉帳涉及兩次寫入,大約花費 60,000 Gas
一筆 ERC 20 Approve 涉及一次寫入,大約花費 45,000 Gas
一筆 Uniswap 單跳交易,大約花費 110,000 Gas (e.g. USDT→ETH)
一筆 Uniswap 兩跳交易,大約花費 170,000 Gas (e.g. USDT→ETH→UNI)
一筆 Uniswap 三跳交易,大約花費 230,000 Gas (e.g. USDT→ETH→WBTC→LINK)
由此可見,同樣在 Uniswap,一次 Swap 也可能 Gas 消耗差距很大!
這還是在路由策略非常簡單的情況下。如果路由策略開始變得複雜,例如 1inch 或 Matcha,一筆交易的 Gas 可以在 150,000 到 1,000,000 之間浮動。
因此,不能簡單地講某個平台的 Gas 貴。
看起來聚合器的 Gas 比 Uniswap 貴很多,是不是應該拋棄聚合器?
並不是這樣的。
聚合器雖然 Gas 貴,但這不是傻貴。貴是因為有額外邏輯要執行,而這些額外邏輯會帶來很大的利潤。如果利潤能覆蓋 Gas 的額外開銷,那就應該使用聚合器。
在過去聚合器可能不太在意 Gas,但現在 Gasprice 和以太坊價格的提高,使得 Gas 的美元開銷增長了 100 倍。所以在 DODOV2,我們會綜合比較 Gas 和報價,給出平均成本最低的解決方案。
DODO 貴不貴
貴,也不貴。
DODO 在執行路由時,會在原始流動性外包一層函數調用,會比流動性源頭貴 40,000 gas 左右。
但是:
1、經過 gas 補貼後,DODO 的 Gas 消耗可以做到和流動性源一樣甚至更便宜。
2、考慮到報價的優勢,雖然 Gas 的開銷大,但平均成本在 DODO 最低。
如何合理地展示 Gas
回想之前酒店的例子。
如果你是攜程,你的目的是儘可能真實地展示用戶實際花銷 。
普通用戶都已經被教育好了,去住酒店,刷的預授權肯定比消費的多,也不會太在意。
A. DEX 前端展示的 Gas
B. 錢包簽名時看到的 Gas Limit
C. 在 Etherscan 看到的真實 Gas 消耗
但是以太坊用戶還遠遠沒有理解這些機制,他們不知道錢包彈出的是預授權。如果你在網頁上直接顯示數字 C,但錢包彈出的數字 B 很大,用戶會感到非常困惑。
所以在 DODO 的網頁上會先顯示數字 B,以保證和錢包端的統一。再顯示數字 C,以保證沒有讓用戶望而卻步。
這裡 0.084 是數字 A,即錢包預授權。0.084-0.042 是數字 C,即 DODO 預估你真正的花銷。在此場景下,你真正的花銷和 Uniswap 單跳是差不多的。
DODO 的 Gas 還有改進空間嗎?
有的,在 DODOV2 主要體現在以下幾方面:
• 綜合比較 Gas 和報價,避免出現報價優勢,卻因 Gas 過貴而使用戶利益受損的情況;
路由的改進,減少上層計算開銷;
• V2 池子的 Gas 優化,減少下層計算開銷;
• 更準確的 Gas Price 估算,讓用戶精準插隊(這一點要感謝星火礦池的 Gasnow 服務);
• 支持 BSC,L2 平行遷移。
總結
Gas 是所有項目躲不開的痛,這是一種幸福的煩惱。我經歷過以太坊 1 gwei 打包交易的慘淡時光,那時鏈上交易和不要錢似的,但是生活卻非常難捱。
如今 DeFi 的價值被發現了,人們的交易活躍度大大提高,Gas 價格也水漲船高。每個項目方都有義務,以最少的讀寫操作完成業務,為以太坊生態省出寶貴的區塊空間。
另外,每個項目方也都有義務,為用戶尋找一個便宜且安全的 L2 解決方案。
DODO 一直將 Gas 問題當作一個科研項目,並走在科研的第一梯隊裡。我們期待用戶可以儘早體驗到 V2 帶來的 Gas 優化,並歡迎任何關於 gas 優化的提議。