📢 Gate廣場 #NERO发帖挑战# 秀觀點贏大獎活動火熱開啓!
Gate NERO生態周來襲!發帖秀出NERO項目洞察和活動實用攻略,瓜分30,000NERO!
💰️ 15位優質發帖用戶 * 2,000枚NERO每人
如何參與:
1️⃣ 調研NERO項目
對NERO的基本面、社區治理、發展目標、代幣經濟模型等方面進行研究,分享你對項目的深度研究。
2️⃣ 參與並分享真實體驗
參與NERO生態周相關活動,並曬出你的參與截圖、收益圖或實用教程。可以是收益展示、簡明易懂的新手攻略、小竅門,也可以是行情點位分析,內容詳實優先。
3️⃣ 鼓勵帶新互動
如果你的帖子吸引到他人參與活動,或者有好友評論“已參與/已交易”,將大幅提升你的獲獎概率!
NERO熱門活動(帖文需附以下活動連結):
NERO Chain (NERO) 生態周:Gate 已上線 NERO 現貨交易,爲回饋平台用戶,HODLer Airdrop、Launchpool、CandyDrop、餘幣寶已上線 NERO,邀您體驗。參與攻略見公告:https://www.gate.com/announcements/article/46284
高質量帖子Tips:
教程越詳細、圖片越直觀、互動量越高,獲獎幾率越大!
市場見解獨到、真實參與經歷、有帶新互動者,評選將優先考慮。
帖子需原創,字數不少於250字,且需獲得至少3條有效互動
剖析EIP-7702:以太坊帳戶抽象的重大突破與未來展望
深入解析以太坊帳戶抽象發展歷程與未來展望
本文分爲兩大部分:
上半部分從2015年首個AA提案出發,系統梳理目前爲止的EIP提案主要內容,探究AA歷史提案的演進過程,並綜合評價各方案優缺點。
下半部分重點對比EIP4337提出後面臨的市場低迷反饋,深入分析即將納入以太坊下一版本升級的EIP7702。該提案一旦合並,將全面改變鏈上應用形態。
EIP-7702具有劃時代意義,下面詳細闡述。
1. 帳戶抽象的背景
1.1 帳戶抽象的定位
以太坊創始人Vitalik在2023年底更新ETH路線圖時,對帳戶抽象的設定未作改動。當前主流模式正從EIP-4337進入下一階段"自願轉換EOA帳戶"。
在EIP4337推出一年多後(2023年3月1日在丹佛WalletCon上正式發布),其仍未獲得廣泛應用,盡管用戶普遍認可其價值。在這種矛盾的市場環境下,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)和合約帳戶(CA)。EOA的所有權和籤名權由同一實體持有。私鑰持有者不僅擁有帳戶"所有權",還能"籤名轉移所有資產"。
這由以太坊帳戶交易結構決定。標準交易結構中無From字段,資金轉帳實際通過VRS參數(用戶籤名)反推From地址。這涉及ECDSA等非對稱加密和單向門限函數等概念,由密碼學保障安全性,但也導致了當前EOA地址產權合並的困境。
EIP4337核心是在交易字段中增加Sender Address,實現私鑰與操作地址的分離。
產權分離的重要性在於:
私鑰難保護:丟失私鑰意味着失去全部資產。
籤名算法單一:原生協議僅支持ECDSA籤名驗證。
籤名權限過高:無原生多籤功能,單籤即可執行任意操作。
交易手續費只能用ETH支付,不支持批量交易。
交易隱私泄露:一對一交易易分析帳戶持有者隱私信息。
這些限制使普通用戶難以使用以太坊:
首先,用戶必須持有ETH(承擔價格波動風險)才能使用以太坊應用。
其次,用戶需處理復雜的費用邏輯,Gas price、Gas limit、交易阻塞等概念過於復雜。
最後,雖然許多錢包或應用試圖優化用戶體驗,但效果有限。
因此,解決方案在於實現帳戶抽象,將所有權(Owner)和籤名權(Signer)解耦,從而逐步解決上述問題。
歷史方案雖多,最終匯聚爲兩種路線。
3. AA歷史提案脈絡梳理
問題的解決方案看似有多個EIP提案,但歸根結底是兩種核心思路。每個未通過的EIP考慮的問題都匯聚成了現有方案的突破點。
3.1 第一種路線:將EOA地址轉爲CA地址
2015年11月15日,Vitalik就EIP-101提出以合約作爲帳戶的新結構。將地址改爲只有代碼和存儲空間,支持ERC20支付手續費,通過預編譯合約將原生代幣改爲類ERC20存儲餘額,簡化交易字段。
這一大躍進式變革會大幅改動底層設計,讓每個帳戶地址都擁有自己的"代碼"邏輯(正是EIP-7702要實現的效果)。
衍生功能包括:
交易支持更多加密算法,由地址內部Code指定驗籤鑑權方法。
具備抗量子攻擊特性,因代碼可升級。
讓以太幣具備與ERC20合約一致的功能,如代扣授權。
提升帳戶自定義空間,兼容社交恢復、SBT支持、密鑰找回等。
未能繼續推進的原因是步伐太大,對當前交易哈希衝突問題、安全性隱患考慮不周,但每個優點理念都成爲後續EIP4337及EIP7702的核心功能之一。
後續一系列EIP試圖完善這一邏輯:
EIP-859:主鏈帳戶抽象(2018-01-30)
解決Code部署問題,如交易方合約未部署,則用交易附帶code參數執行合約錢包部署。提出新的PAYGAS操作碼,除支付gas外,作爲交易參數中驗證部分與執行部分的分隔符。
雖然當時未獲通過,但成爲EIP7702的核心邏輯之一。EIP7702的每筆交易結合特殊交易結構,可附帶一定代碼,讓EOA地址在本次交易中擁有合約能力。
EIP-7702:設置EOA帳戶代碼(2024-05-07)
Vitalik提出EIP-7702作爲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能通過這兩個opcode授權合約代替EOA身分調用其他合約。
EOA可將已籤名消息(交易)發送至信任的合約(Invoker),此Invoker合約可利用AUTH和AUTHCALL操作碼代替EOA發送交易。
EIP-4337:用交易內存池實現帳戶抽象(2021-09-29)
受MEV啓發設計,核心價值是完全避免共識層協議更改。
提出新的事務對象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的實際效果,可實現:
但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 數據結構
定義新交易類型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中執行的代碼。用戶簽署交易同時簽署要執行的合約代碼,作爲二維列表存在,可批量存放多個操作信息,執行批量操作。
authorization_list = [[chain_id, address, nonce, y_parity, r, s], ...]
4.3 交易生命週期
4.3.1 驗證階段
交易執行開始時,對每個authorization_list的[chain_id, address, nonce, y_parity, r, s]元組:
4.3.2 執行操作階段
"新"版本僅更改代碼部署行爲。
不再將帳戶代碼設爲contract_code,而從authorization_list中檢索代碼address並設爲帳戶代碼。
執行授權代碼時,從authorization_list的address字段指定地址加載代碼,在籤名者帳戶上下文中執行。
用戶合約代碼實際存儲在鏈上特定地址,非直接包含在交易中。
操作指令和相關參數存儲在交易負載的data字段。
4.4 EIP-7702的價值
對Web3錢包全鏈路有變化,用戶體驗巨變。EOA發起普通交易可類似合約執行多種邏輯,如批量transfer。影響CeFi場景交易鑑別,影響充提歸集手續費。
打破多個定勢: