EIP7791提案(Gas2ETH)旨在引入一个新的操作码,允许智能合约将gas直接转换为ETH,并转移到指定账户,无需额外交易。此提案可能改变以太坊生态,为公共产品和DApp提供新的盈利模式,并激励合约优化,但同时也可能使交易复杂化,影响手续费市场和ERC4337 Paymaster。
最近一個叫做 GAS2ETH 的 EIP, 由於有可能收入明年的以太坊升級(Glamsterdam 硬分叉),在 X 上引發許多討論。它是一個相對簡潔的 EIP 提案,卻有改變以太坊網路層、應用層、乃至各種公共財專案的潛能。這篇文章希望可以簡明扼要地介紹這個 EIP,還有分享我個人對於這個 EIP 的想法。

簡單複習一下:現在的以太坊中, gas(燃料)是用來衡量運算量的單位。它反映了一個節點執行一筆交易中的每一個步驟實際上耗費的資源。
在簽署一筆交易時,發送者必須要設定 gas (或稱作 gasLimit)作為這筆交易會用到的運算量上限,若一筆交易在執行過程耗費 gas 超過這個上限,就會被判定為交易失敗。另外,所有交易被收入區塊時,也會用實際運行交易消耗的 gas 量,乘上 gas price 成為最後總付出的手續費。(gas price 包含了 base fee 與 priority fee,但這裡可以把兩者合併一起看)。
在現有的框架下,gas 的功能相對單純:它代表了一筆交易消耗了多少 節點的資源,可以用以判斷一筆交易的複雜度,也決定手續費的多寡。而一筆交易的「手續費」是用戶付給以太坊網路中的 validator 以確保交易被收入的,屬於以太坊網路層協議的規範,跟這筆交易所要驅動的特定智能合約沒有關係。若有用戶需要付 eth 給智能合約,則需要在交易中另外夾帶一比 eth (或稱為 value、 msg.value) 。

現有的交易流程中,gas 與 gasPrice 決定了付給以太坊網路層的費用,value 則代表呼叫合約時附帶的 eth。
而這個 Gas 2 ETH 的提案,想要藉由一個新的 opcode,簡單的做一件: 讓智能合約可以直接將 gas 轉換回 eth,並加到某個帳戶裡。
具體來說,當合約執行時,它可以使用這個新的 GAS2ETH opcode, 從一個獨立的 GAS2ETH budget 中扣除任意數量的 gas,扣除的量乘上當下的 gas price,可以直接變成 eth 並加入指定的地址,無需任何額外交易。
這個額外的 budget 初始化為 tx.gas_limit,但與執行用的 gas 分開計算,因此不會影響合約的正常執行。
另外值得注意的是: GAS2ETH 消耗掉的 gas 將不算在整個 block 的 gas 上限裡,也不會影響 base fee 的變化。
GAS2ETH 跟 msg.value 的差別以結果來看,把 gas 轉換回 eth,跟現在以太坊交易中夾帶 msg.value 的作用其實差不多,都是某一個地址收到了來自交易發起者的 eth。但實則有兩個關鍵的區分:
透過 GAS2ETH 當作收費手段,可以直接從一筆交易的「原生手續費」中收取費用,完全融合現有用戶與錢包既有的交易流程。
我們上面的圖中使用 Uniswap 舉例,大家可能覺得區分「手續費」跟付給合約的「msg.value 」很正常,因為若是想要使用 Uniswap 賣出 eth,交易附帶著一些 eth 很合理,這個使用情境也不像真的被合約「收費」。
但如果這個合約換成 Safe 的多簽合約錢包,且 Safe 合約錢包要求每筆交易都要付少量 eth 作為 使用費,這樣的情況下若是使用 msg.value,就代表每個用戶呼叫合約時都要附帶 eth,非常麻煩;反之如果有了 GAS2ETH,用戶就不用想這麼多,一樣只要在交易的時候,指定想要付的 gas price,錢包幫忙算的總 gas 會自動包含 Safe 想要收取的 gas。交易執行時,合約再自動使用 GAS2ETH 轉換部分 gas 為使用費即可。

有了 GAS2ETH 之後可以將要付給「合約層」的費用,跟原生的交易手續費合併在一起,透過 gas 支付。
P.S. GAS2ETH 跟 transfer 有另一個執行上的細節差異,就是 GAS2ETH 會直接增加收款者的 eth 餘額,並不是進行一個 call 的呼叫。所以並不用擔心對方是否是合約、或 re-entrancy 等等問題,但這也代表我們有了更簡單的方式強制轉帳給某個帳戶。
GAS2ETH 收費可以與節點層同步、隨網路用量變動這樣的收費方式除了方便以外,也會自動隨著網路使用量(gas price)變化,跟 validator 的手續費同步。這是一個美好的理想狀態:理論上合約層的協議們如果都採用這樣的收益模型,就可以跟以太的節點們共進退:大家都有一樣的經濟誘因,在以太坊的使用量越大時,收益越多。
過去曾經有不同的團隊試圖用這種方式收費:比較有名的是 0x Protocol:他們的 V3 推出時,就包含了一個 隨著 gas price 變動的 protocol fee。每當訂單媒合完成的時候,taker 需要支付定值 protocolFeeMultiplier 乘上 gas price 的費用給 0x。
但由於 gas price 是不斷變動的數值,這代表 taker 要在確認訂單的時候,往往要高估現有 gas price,多送一些 eth 在交易中,免得突然 gas price 暴漲導致交易失敗(多付的會由合約退款)。0x 也允許大家用 weth(ERC20 版本的 eth)付款,合約會自動試著從 taker 的錢包裡面轉需要的 weth 到合約裡面。但無論哪一個選項,用戶要嘛要把一些 eth 轉換成 weth 存在錢包裡;要嘛需要每次接單都多丟一些 eth,並承受交易失敗風險。這造成 0x 從 V3 到 V4 都讓使用者怨聲載道,整合 0x 也成為一件麻煩的事情,總是伴隨著非常糟糕的 UX。0x 最終也推出了 RFQ,並且捨棄了 protocol fee。
如果有了 GAS2ETH ,這樣的收費方式有可能會再度成為主流。
上述兩點簡單敘述了,為什麼 GAS2ETH 好像沒有很特別,但其實作用很大。因為 GAS2ETH 創造了一種更直接、跟以太坊網路更綁定的收益模式,同時確保用戶在體驗方面也可以無痛銜接,這對不同種類的合約都有很大的影響。
在目前所有種類的合約中,應該只有金融類型的協議(DeFi 合約)是有可能賺錢的:由於交易帶有金融價值,現有的 DeFi 協議,收益設計大部分都是從用戶真正交易的 token 中抽點稅,例如借貸平台中,賺取借方與貸方的利息差;或是永續合約用 notional value 取 BPS 作為協議收入。除了 DeFi 以外,類型的協議都很難賺錢。
若是有了 GAS2ETH ,智能合約就可以更單純地收取 使用費。這讓一些開發合約錢包、DAO toolkit 的團隊有營收手段,且隨著越多人使用合約,收益也會越高。這能解決現在許多以太坊上面的合約因為是「公共財」而無法創造營收的問題。
DeFi 儘管已經有既有的收益模型,GAS2ETH 也能讓收費模式更多樣化,例如上述 0x 這種媒合交易的協議;GAS2ETH 也適合被用在一些如清算保護的自動化的服務,讓用戶可以支付跟「執行交易」相對應的費用。
目前以太坊上無法有效收費的最直接影響,就是讓代幣經濟學(Tokenomics)成為主流。無論什麼類型的應用,基本上現在都是靠著發代幣在彌補營收短缺,並靠著機制設計確保代幣可以保持其價值,定期幫助團隊變現。
如果有了 GAS2ETH 這種收費模式,所有類型的合約都可以使用這種單純的盈利模型。例如像 USDC 這樣的穩定幣,若是每次轉帳,約有固定其手續費 1% 的 gas 被付給穩定幣商(例如定價 200 gas),這就是一個非常簡易、符合穩定幣的發展目標的收益模型。
我認為這是一個更合理的解法。應用層可能因此出現更多單純來提供服務的合約,他們不必為此搞一套代幣以及 governance 系統。目前已經有代幣的項目,也能因此為持有者們增加額外的收入管道。
這樣的收費機制也會變相獎勵「合約優化」:幫用戶節省越多 gas,自然可以跟用戶要越多「小費」。這讓整個網路上的合約開發,不論是 DeFi 協議、還是公共財類型的合約,都會自然地出現很多動機做 gas 優化。這會讓以太坊整體可以執行的交易更多,更有效率地被所有人使用。

GAS2ETH 能成為 Dapp 的新引擎
雖然 GAS2ETH 能為合約層帶來更多正面的彈性,但它也可能會造成一些潛在的影響。這不一定是負面的,但是可能會對各個角色、甚至以太坊手續費市場造成相當多副作用,可以期待未來有更多的研究。
最簡單也最直接的影響,就是我們會破壞一些原本以太坊交易的設計。
像最前面提到的,原本一筆交易的 gas 跟 gas price 都是只跟「網路層」相關的參數,跟一個合約的執行基本上沒有關聯;而 msg.value 則是設計為「交給合約處理」的 eth;有了 GAS2ETH 之後,會讓這兩個原本設計的分層變得模糊:未來交易中的 gas 不再單純代表複雜度,每個帳戶也多了除了原生轉帳以外的強制支付方式。
P.S. 這種「不呼叫合約」的支付方式,也有另外一個 EIP-5920 提議要透過一個PAY opcode 來完成,看起來 Execution Layer 想要這個功能是勢不可擋。
GAS2ETH 也會對 block building 生態系造成很大的影響:目前以太坊大部分的 proposer 大多都使用 MEV-boost 來增進收益,其中 builder 會跟 searcher 一起合作尋找 MEV 的機會,並向 proposer 競標區塊的排序權,這是現在被稱為 PBS 的機制。Builder 跟 searcher 一起尋找的額外利潤都來自 用戶交易的 MEV。
有了 GAS2ETH 之後,將多了一個 App 以及用戶可以直接付費給 builder 的管道,這使得用戶不再必須透過支付給 proposer 的 priority fee 來影響交易順位,而是可以利用 builder 這個角色,直接支付小費或是 bribe。這可能會影響未來的 order flow 更多往中心化的 builder 角色集中,也可能出現許多與特定 builder 合作的應用。
在 ERC4337 的生態中,支付交易手續費的人都是 bundler,而用戶可以使用不同種類的 paymaster 來幫忙最後「報銷」這筆費用。
如果有現有的 AA 錢包幫用戶出交易手續費,很明顯的可能會讓人開始想辦法坑 paymaster 的錢,偷偷拿來執行一些 GAS2ETH 的合約,並把一些手續費變成 eth 轉給自己。這會讓 paymaster 的日子很難過:如果限制最高 GAS2ETH 可使用 gas 上限的話,可能會影響使用某些正當含有 GAS2ETH 的 App 時的體驗,不限制的話又有可能被薅羊毛,可能要引入其他的機制來篩選要補助的交易。
以上就是幾個比較直接會受到此 EIP 影響的生態系。
我認為這個 EIP 真的有非常巨大的潛力,不論是核心想解決的付費 UX,還是對以太坊上公共財專案帶來的影響力,都非常令人期待。
以太坊的更新歷史中,有許多能夠改變底層特性的 EIP,例如 EIP7702、Transient Storage、CREATE2 等等。儘管提出的時候一樣都有一些對既有生態系衝擊的疑慮,最終都大大提升了應用層的方便性、彈性,最終對整體的生態系往往都是加分的。也因此我認為我們可以用更正面的角度來看待這種簡潔且充滿彈性的提案,也非常期待它被納入下次的硬分岔。
以太坊是一個使用者付費的網路沒錯,但是一直以來這些費用都不是付給合約的開發團隊,而是付給以太坊的網路節點。儘管應用端的團隊們因此創造出了代幣經濟學,我卻始終不認為這是好的解法。查理蒙格有句名言: “Show me the incentive and I’ll show you the outcome”。我認為這完美解釋了為什麼目前的應用層往往讓人留下充滿投機的印象,因為這正是目前的獎勵機制能夠創造的唯一一種環境。
有了這個 EIP 之後,我期望看到的是未來應用層團隊的 incentive 本質上的轉變 — 更多人有誘因去為網路整體效能做優化、公共財專案得以延續、應用層凡事都要「為代幣賦能」的習慣也將被打破。

一起加入 GAS2ETH 的討論與設計吧!
因此最後鼓勵大家如果有興趣,可以去 Forum 多看看大家的討論或表達對它的支持。目前提案的這個階段,可能還有非常多沒有人想過的問題,如果大家想到什麼問題,也可以提出來跟世界各地的以太魔術師們一起討論。
P.S. 順便推薦大家一個好用的網站 — forkcast ,可以追蹤每個 hardfork 正在被討論、或是已經納入和拒絕的 EIP。
- 本文转载自: medium.com/taipei-ethere... , 如有侵权请联系管理员删除。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!