EIP-7702: 以太坊帳戶抽象的新突破與未來發展

深度剖析以太坊帳戶抽象的歷史演進與未來展望

引言

本文將從兩個主要方面探討以太坊帳戶抽象(AA)的發展歷程:

首先,我們將追溯自2015年首個AA提案以來的歷史脈絡,系統梳理迄今爲止的各項EIP提案的主要內容,深入挖掘AA提案的演進過程,並對各方案的優劣進行全面評估。

其次,我們將重點分析EIP4337推出後市場反應低迷的原因,並深入探討即將納入以太坊未來版本升級的EIP7702。這一提案一旦合並,將從根本上改變鏈上應用的形態。

EIP-7702堪稱一項劃時代的變革,讓我們一起深入探討其中的奧祕。

深入解讀以太坊帳號抽象賽道的過去與未來

1. 帳戶抽象的背景

1.1 帳戶抽象的意義定位

以太坊創始人近期再次更新了ETH發展路線圖,但其中關於帳戶抽象的設定並未改變。當前主流模式正從EIP-4337,過渡到下一階段的"自願轉換EOA帳戶"。

盡管EIP4337推出已逾一年,但市場反應卻相當矛盾 - 用戶普遍認可其價值,但實際使用率卻不高。在這種情況下,EIP-7702的進度大幅提前,並已確定將在下次升級中合並。

1.2 帳戶抽象的市場現狀

經過一年半的發展,EIP4337在主流公鏈上的地址總數僅有1200萬,其中以太坊主網上的活躍地址更是只有6,764個,與EOA和CA的地址數相去甚遠。以太坊主網上的獨立地址數已達2.7億,可見EIP4337在主網上幾乎毫無實質性進展。

然而,這並不意味着AA的本質價值受到影響。EIP4337的設計注定了它難以很好地解決主網的向前兼容性問題。隨着各類L2鏈普遍嵌入原生AA,EIP4337的地址數在L2上獲得爆發式增長,其中Base和Polygon鏈7月的月活用戶分別達到100萬和300萬,相當可觀。

因此,問題並非出在EIP4337的設計上,而是源於主網與L2之間的差異,它們需要各自適合的解決方案。

深入解讀以太坊帳號抽象賽道的過去與未來

2. 什麼是帳戶抽象?

帳戶抽象本質上解決的是產權分離問題。

以太坊虛擬機(EVM)架構中有兩種帳戶類型:外部帳戶(EOA)和合約帳戶(Contract Account)。在EOA中,帳戶的所有權和籤名權由同一實體持有。擁有私鑰的人不僅擁有帳戶的"所有權",還有權"籤名轉移所有資產"。

這一特性由以太坊帳戶交易結構決定。以太坊的標準交易結構中實際上並沒有From字段。交易發起方的地址是通過VRS參數(即用戶籤名)反向解析得出的。

這種設計雖然通過密碼學保證了安全性,但也導致了當前EOA地址產權合並的困境。

EIP4337的核心效果是在交易字段中增加了Sender Address,從而實現私鑰與被操作地址的分離。

產權分離如此重要的原因在於,EOA設計衍生出諸多問題:

  1. 私鑰難以保護:丟失私鑰意味着失去所有資產。

  2. 籤名算法單一:原生協議僅支持ECDSA籤名和驗籤算法。

  3. 籤名權限過高:無原生多籤支持,單籤即可執行任意操作。

  4. 交易手續費只能用ETH支付,不支持批量交易。

  5. 交易隱私容易泄露:一對一交易易於分析帳戶持有者信息。

這些限制使得普通用戶難以使用以太坊:

首先,用戶必須持有以太幣(並承擔價格波動風險)才能使用以太坊上的應用。

其次,用戶需要處理復雜的費用邏輯,如Gas price、Gas limit、交易阻塞(Nonce順序)等概念對用戶而言過於復雜。

最後,雖然許多區塊鏈錢包或應用試圖通過產品優化提升用戶體驗,但效果有限。

因此,突破困境的關鍵在於實現帳戶抽象,將所有權(Owner)和籤名權(Signer)解耦,從而逐步解決上述問題。

歷史上提出了多種方案,最終匯聚成兩條主要路線。

3. AA歷史提案脈絡梳理

問題的解決方案看似有多個EIP提案,但歸根結底只有兩種核心思路。每一個未被通過的EIP所考慮的問題,最終都匯聚成了現有方案的突破點。

3.1 第一條路線:將EOA地址轉變爲CA地址

早在2015年11月,Vitalik就在EIP-101中提出了以合約作爲帳戶的新結構。這一方案建議將地址改爲只包含代碼和存儲空間,支持用ERC20代幣支付手續費,通過預編譯合約將原生代幣改造爲類ERC20代幣(具備代扣授權等功能),並將交易字段簡化爲僅包含to、startgas、data和code。

這一方案可謂是革命性的變革,會大幅改動底層設計,使每個帳戶地址都擁有自己的"代碼"邏輯(這正是當前EIP-7702要實現的效果)。

它還能衍生出其他功能,如:

  1. 支持交易使用更多加密算法,由各地址內部Code指定驗籤鑑權方法。

  2. 具備抗量子攻擊特性,因爲代碼可升級。

  3. 賦予以太幣與ERC20合約一致的功能特性,實現代扣授權,無需消耗原生幣。

  4. 提升帳戶的自定義空間,支持社交恢復、SBT、密鑰找回等功能。

該方案未能繼續推進的原因很簡單:步子邁得太大,對當時的交易哈希衝突問題和安全性隱患考慮不周,因此一直擱置。但其中的每一個優點理念都成爲了後續EIP4337和EIP7702的核心功能之一。

此後又有一系列EIP試圖完善這一邏輯:

EIP-859:主鏈帳戶抽象(2018-01-30)

該提案試圖解決Code的部署問題。其核心作用是,當交易方合約未部署時,使用交易附帶的code參數執行合約錢包部署。此外,還提出了新的PAYGAS操作碼,除支付gas外,也作爲交易參數中驗證部分與執行部分的分隔符。

雖然當時未能實現,但這一思路成爲了現今EIP7702的核心邏輯之一。EIP7702的每筆交易結合特殊的交易結構,可以附帶一定的代碼,從而讓EOA地址在本次交易中具備合約能力。

EIP-7702:設置EOA帳戶代碼(2024-05-07)

這是本文後續討論的核心EIP,由Vitalik提出,作爲EIP-3074的替代方案。因此EIP-3074被棄用,EIP-7702確定將在即將到來的ETH Prague/Electra(Pectra)硬分叉中納入,具體內容我們將在後文詳細展開。

3.2 第二條路線:讓EOA地址驅動CA地址

EIP-3074:增加AUTH和AUTHCALL操作碼(2020-10-15)

該提案建議在EVM中添加兩個新的操作碼AUTH和AUTHCALL,使EOA能夠通過這兩個操作碼授權合約代替EOA身分調用其他合約。

簡而言之,EOA可以將一個已籤名的消息(交易)發送到自己信任的合約(稱爲Invoker)上,該Invoker合約可以利用AUTH和AUTHCALL操作碼代替這個EOA發送交易。

EIP-4337:用交易內存池實現帳戶抽象(2021-09-29)

這一提案受到MEV的啓發而設計,其核心價值在於完全避免了共識層協議的更改。

EIP-4337提出了新的交易對象UserOperation,用戶將此對象發送到內存池中,由bundlers從礦工角度批量打包並交付合約執行交易事務,本質上是將底層的交易與帳戶運作提升到合約層面執行。

EIP-5189:通過背書人操作抽象帳戶(2022-06-29)

這可以視爲對EIP4337邏輯的優化,通過建立資金罰款背書(endorser)機制來防止惡意Bundler的DoS阻塞攻擊。

3.3 其他支持AA的提案

EIP-2718:新交易類型的包裝信封(2020-06-13)

這是一個已經最終確定的提案,它定義了一種新的交易類型,作爲未來新增交易類型的信封。

其最終效果是,在引入新交易類型時,通過特定編碼來區分不同類型的交易,從而只需考慮向後兼容性,而無需向前兼容。最常見的例子是EIP1559,它區分了交易的手續費,使用了新的交易類型編碼,同時不影響最初的legacy交易類型。

EIP-3607:禁止EOA地址部署合約(2021-06-10)

這是AA路徑上的補充方案,用於防止合約部署地址與EOA地址衝突的問題。它會控制合約生成方法,禁止系統將代碼部署到已經是EOA地址的地址上。這個風險實際上很小,考慮到以太坊地址長達160位,雖然存在使用私鑰碰撞出指定合約地址私鑰的方法,但即使投入比特幣全網算力,估計也需要一年時間。

3.4 如何理解帳戶抽象的發展歷程?

首先需要理解轉爲CA後的價值

這基本上就是EIP-4337的實際效果,它可以實現:

  1. 支持多籤和社交恢復
  2. 支持批量交易
  3. 支持使用ERC20代幣支付gas費
  4. 支持交易限額
  5. 支持無gas交易(代付gas)
  6. 支持帳戶鎖定(冷熱錢包切換)

然而,EIP-4337的核心缺點是違背人性動機原則。

它看似更好,但陷入了市場發展的死循環:許多Dapp尚未兼容,用戶不願使用CA地址,甚至使用CA會產生更高的交易成本(普通轉帳場景下,交易費用可能翻倍),過度依賴Dapp本身的兼容性。

這就是爲什麼它至今在以太坊主網上未能普及的原因。

成本是用戶最重要的衡量標準,必須降低成本。

但要真正降低GAS,就必須通過以太坊本身的軟分叉升級,修改GAS計算或操作碼的GAS消耗等模塊。既然要進行軟分叉,爲何不直接考慮EIP-7702呢?

深入解讀以太坊帳號抽象賽道的過去與未來

4. 全面解析EIP-7702

4.1 EIP-7702簡介

該提案通過引入新的交易類型,允許EOA在單筆交易中臨時具備智能合約的功能,從而支持批量交易、無Gas交易和自定義權限管理等業務操作,且無需引入新的EVM opCode(影響向前兼容性)。

它使用戶無需部署智能合約就能獲得大部分AA能力,甚至支持第三方代用戶發起交易,而無需用戶提供私鑰,只需籤名授權信息即可。

4.2 數據結構

EIP-7702定義了新的交易類型0x04,該交易類型的TransactionPayload是以下內容的RLP編碼序列化結果:

rlp([ chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, destination, value, data, access_list, authorization_list, signature_y_parity, signature_r, signature_s ])

其中新增的authorization_list對象存儲籤名者希望在其EOA中執行的代碼。用戶簽署交易的同時也簽署要執行

ETH-4.25%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 4
  • 分享
留言
0/400
RektRecoveryvip
· 21小時前
唉……又一个AA提案,可能会像4337一样被搞砸。现在就这么说吧。
查看原文回復0
熊市炒面师vip
· 21小時前
新提案终于来了,4337还没捂热乎
回復0
Degentlemanvip
· 21小時前
又整新活了?我看看
回復0
跳跃的蜡烛线vip
· 21小時前
真就说了半天啥也没讲哈
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)