🎉 Gate xStocks 交易開啓啦,現貨、合約、Alpha齊上線!
📝 在Gate廣場發帖,曬出你的交易體驗或精彩截圖,瓜分$1,000大獎池!
🎁 廣場優質創作者5名,每人獨享$100合約體驗券!
🎉 帖文同步分享到X(推特),瀏覽量前十再得$50獎勵!
參與方式:
1️⃣ 關注 @Gate廣場_Official
2️⃣ 帶 #Gate xStocks 交易体验# ,原創發帖(不少於20字,僅用活動標籤)
3️⃣ 若分享到推特,請將連結提交表單:https://www.gate.com/questionnaire/6854
注:表單可多次提交,發布更多帖文可提升獲獎機會!
📅 7月3日16:00—7月9日24:00(UTC+8)
詳情:https://www.gate.com/announcements/article/45926
每一條體驗,都有機會贏取大獎!快在Gate廣場show出你的操作吧!
EIP-7702:以太坊帳戶抽象的終局之戰
帳戶抽象10年演進終局之戰,透過EIP-7702看過去與未來
Pectra 是以太坊 Dencun 後的首次重大升級,涵蓋布拉格執行層硬分叉和 Electra 共識層更新,集成史上最多的11項EIP,顯著提升驗證者靈活性、網路擴展性和執行效率。隨着以太坊主網 Pectra 硬分叉預計於 2025年5月7日 正式激活,帳戶抽象(Account Abstraction)的"終極形態"------ EIP-7702,也正式走入大衆視野!
如果還有什麼 EVM 系的 Web3 錢包不支持 EIP-7702,那麼毫無疑問,等於他放棄了以太坊整個生態與用戶。這就是 Vitalik 與EF 的決心,也是潘多拉魔盒即將揭開的序幕!
請跟隨本文,全面了解帳戶抽象的演進歷史、EIP-7702帶來的用戶價值與市場改變、以及其中潛藏暗處的危險。
概述
EIP-7702 新增了一種交易類型,讓普通EOA可以設置某個合約地址爲其邏輯代理合約。
EIP-7702 會由於"成本優勢"以及"靈活性"而全面繼承並超越 ERC-4337 多年構建的生態。
EIP-7702 對普通用戶也是隱形風險,即使用戶不做升級,在特定場景也會引發交易失敗或者安全資損風險。
EIP-7702 將帶來全新的用戶體驗,當用戶主體發生合約化遷移,市場應用也會隨之演進,Gas 抽象、家庭分級帳戶等等期盼已久的絲滑體驗將引領十億人,低成本進入Web3世界。
對於交易所、DApp 而言,應用上 EIP-7702 的特性將帶來50%以上的成本縮減,進而全面擁抱合約帳戶時代。
帳戶爲什麼要抽象?
很難想象,帳號抽象的願景甚至要早於以太坊本身。
在這次 HK Web3 嘉年華中,Vitalik多次強調現在通過多籤(Multi-sig)、帳戶抽象、ZK Email 等一系列方案,以太坊已完成"iPhone時刻"目標的50%。
是快是慢,是樂觀還是局限?且讓我們深入底層,看看AA爲什麼會有這樣的影響力!畢竟,經過10年的長跑,Vitalik 終於迎來了AA領域他夢寐以求的終局,爲23年繪制的以太坊路線圖進度條,添上濃墨重彩的一筆。
帳戶抽象,到底是爲了什麼?
其實,本質解決的是產權分離的問題,因爲目前 EOA(Externally Owned Account 外部帳戶)的所有權 和籤名權其實上是同一個體單位持有的(都依賴私鑰進行任何指令的控制),其根源來自以太坊的交易結構,其實以太坊的標準交易裏是沒有 From 方的,執行時是通過其 VRS 參數(即用戶籤名)反解析出 From 地址。
而且以太坊作爲"世界級狀態機"的設計,完全依賴交易去實現鏈上狀態的變更,結合由於無法指定 From 方,則讓交易的執行權限與最高所有權耦合在一起。
這就是 EOA 雖然簡單易懂,但使用不便的一系列問題之根源:
私鑰難保護:用戶失去私鑰(遺失、黑客攻擊、量子破解)就意味着失去所有資產。
籤名算法少,不同籤名算法帶來不同的性能損耗,乃至於鏈上存儲的成本。
籤名權限高,EOA 原生的私鑰有這一切的權利。
復雜交易的手續費高,手續費只能通過 ETH 支付,任意交易,單一的操作都需要至少 21000 的基礎費用。
交易無隱私,即使曾經有Circle提出的機密 ERC-20 協議,但並未成爲主流。
歸根究底,如今的區塊鏈世界,對出入其中的用戶太過於復雜了,用戶需要理解Gas price、Gas limit、事務阻塞(Nonce 順序)這些概念,對常規用戶隱藏掉復雜的信息,這就是 EIP-7702 最終要解決的問題。
ERC-4337以及EIP-7702的核心區別?
圍繞AA爲目標,其實有十餘種不同提案,筆者此前已有探究。其實整體梳理下來,本質是兩種路線:
路線一:讓 EOA 地址驅動 CA 地址
ERC-4337 就是這方面的典型,一句話總結是:提出新的事務對象 UserOperation,用戶將此對象發送到內存池中,以 bundlers 的形式,批量打包指令,通過交付合約來逐個執行交易事務。本質上是把底層的交易與帳戶運作拉到合約層面執行。
執行原理如下圖:
通過 bundler 這個角色,可以說這套方案對於批量交易、免gas、籤名算法少等等問題,都可以得到解決。但是他解決不了的是復雜度與用戶交易成本,以及bundler 和 EntryPoint 的單點故障風險。
因爲一旦用戶遷移到了 ERC-4337 ,那麼即使是上圖中 user2 的需求,只是做一筆 Transfer 的交易,那麼用戶交易手續費也對比 EOA 而言是翻了一倍。
從 CA 以及 EOA 的最新用戶量數據可以看出來,就算有的用戶是個高端玩家,非常依賴於鏈上 CA 爲主體的各類操作,批量 Call 等,但是如果這樣爲何不直接用普通CA呢?
源於 bundler 的設計,讓他可以避免硬分叉級別的升級,直接在應用層上推出,但 ERC-4337 也帶來了翻倍的成本支出單點故障風險,以及用戶也失去了 EOA 原有的靈活性。所以面對多元的用戶需求,顯然當前市場的用戶並不那麼青睞於ERC-4337 的方案,發展2年以來整體趨勢下跌顯著,即使巔峯用戶數量面對以太坊 300M 的獨立地址地址數而言,相隔甚遠。
當然我們不是在苛責ERC-4337的不足,而是伴隨其發展,在其上發展的 Paymaster、Gas 抽象等角色和概念,其實也在 EIP-7702 中再一次得到應用。
筆者認爲,任何行業的發展,不會是一蹴而就的,重要的是從過往的興衰中,能夠發現規律與總結經驗。
路線二:讓 EOA 地址變爲 CA 地址
其實早在2015年11月,Vitalik 就提出 EIP-101,以合約作爲帳戶的新結構。將地址改爲只有代碼和存儲空間,改變手續費支持由 ERC20 支付,通過預編譯合約將原生代幣改爲類 ERC20 來存餘額(可具備代扣授權等功能)。在2018年01月,又有 EIP-859 方案,核心作用是如果出現了若交易方合約未部署,則使用交易附帶 code 參數執行合約錢包部署。最終,從 EIP-3074 的方案中,進一步推演出的 EIP-7702 ,最終納入以太坊主網!
EIP-7702 的理念與效果其實很簡單,它通過新的交易類型來完成初始化,在後續用戶可以允許 EOA 在單筆交易中臨時的、可選的具備智能合約的功能,進而支持業務上進行批量交易、無 Gas 交易和自定義權限管理等,其中最關鍵的能力,就是讓用戶具有了臨時與可選的空間。
並且多人可以共享同一個邏輯合約,進而大幅度降低用戶遷移的成本,用戶要完成 EIP-7702 的設置,只需要 8W的 Gas,大概是 0.06 美金,而要再次設置新的合約或者取消設置邏輯合約,則只需要 4W Gas。
完成設置後,就可以顯著會在批量交易的時候,帶來用戶大幅度的 gas 優化,看下表格:
當然你可能會覺得,有必要做兩次,甚至六次 Token Transfer 嗎?
常規用戶已經習慣一次交易做一件事情的情況下,看似場景不多,但是在類似 Web3 Game、Web3 Pay 此類多元化應用場景中,其實會很經常出現,比如同時用銅幣(遊戲內產生貨幣)和銀幣(用戶充值貨幣)一起消費的情況。或者說參加某種活動,同時消耗 NFT 門票以及入場費。
就算我們不去遐想復雜的場景,回歸如今鏈上最主流的 Swap 需求,同樣也有 approve 與 Transfer 批量的需求。甚至,如今可以做一個小工具,簡單的幫用戶快速的刪除其已經無用的 approve 授權。效果很容易對比出來,顯然,成本可以直接減少 40%左右。
EIP-7702的核心原理
要探究爲何有這樣效果,就要回歸他的原理,其實他的核心就是2個邏輯,分爲用戶設置環節 以及日常使用環節
設置邏輯合約環節
核心流程如下:
第一步:籤名授權,通過原始EOA的私鑰,簽署一個特殊的哈希字符串,內容是通過編碼了 chain_id, address, nonce 構成的,這裏 Address 就是最終要設置的邏輯合約的地址,而 Nonce 則是確保交易不被重放的策略。
第二步:籤名交易,有了第一步的授權信息後,任何人均可以再構建出一筆類型爲4 的交易,可以包含多個授權信息,一次性爲多個地址統一進行授權設置。
第三步:廣播上鏈,那麼在交易處理完內部 Authorization 的時候,邏輯合約就已然生效。
這裏還有更多技術上細節的地方,可以參考:okx 開源js sdk的實現,來看到底層數據編碼的過程。當然,這套方案,其實亦有隱藏一些安全的隱患和復雜性,我們下文會詳細的講述。
執行邏輯合約環節
當你完成了設置,那麼當任何交易 To 地址指向你的時候,那將會和調用智能合約一樣,系統會將你原本設置的邏輯合約的代碼,"加載"到你當前 EOA 的狀態中去執行其邏輯。
同樣我們用2個場景來查看:
第一種,你自己來調用你自己
假如你設置的是如 OKX 7702 Smart Contract 合約一樣具有高度安全以及自定義控制能力,那麼你可以通過提前編寫好的calldata指定,讓你當前的操作一次性完成多重指令。比如你可以同時完成 Approve+Transfer,也可以同時完成Approve+Swap。
千萬別小瞧,在目前總計 27 億筆以太坊交易中,Approve 大概爲 75 M 筆,按每筆 8W Gas計算,則有 46W 個ETH消耗,按1700美金的 ETH 市價計算,則是接近8億美金。
第二種,別人來調用你
曾經以太坊不存在別人調用 EOA 地址的情況,但是現在你就是一個萬能的合約,完全可以自定義,你可以開闢子帳戶分權限,也可以給與少數 Paymaster 設置白名單,許可 DApp 的指定帳戶,來代替你發起一些交易,從而完全免除傳統區塊鏈應用中需要反復彈出籤名的窗境。
多麼強大的能力啊!所以這也是幾乎全