header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

解讀Vitalik的最新提案EIP-7702:帳號抽象的終極藥方?

閱讀本文需 11 分鐘
1. EIP-7702是Vitalik Buterin提出的一項新提案,旨在改善以太坊的帳戶抽象,使其更加高效和安全。 2. EIP-7702的實現需要了解另外三個提案:EIP-4337、EIP-3074和EIP-5003,它們共同的目標是改善以太坊上的帳戶系統。 3. EIP-4337允許智慧合約像帳戶一樣執行交易,改善了使用者體驗,但大多數智慧合約帳戶仍由單一EOA控制。 4. EIP-7702提出了一種新交易類型,同時接受contract_code和簽名字段,實現了EOA對智能合約的臨時委託功能,且與EIP-4337高度相容。 5. 透過EIP-7702,使用者現有的EOA可以執行任何智慧合約程式碼,未來可能徹底改變我們與Web3應用程式的互動方式。
原文作者:Jarrod Watts,Polygon Labs 開發者關係工程師
原文編譯:Frank,Foresight News


Vitalik Buterin 最新提出了EIP-7702提案,這可能是以太坊歷史上影響最大的變化之一,本文將介紹該新提案的有關工作原理以及實現其所需了解的一切。


首先,EIP-7702 新提案出奇地簡短,這讓部分人感到困惑,不知道它到底如何運作,為了理解7702 ,我們首先要了解其中提到的另外三個提案:


· EIP-4337

· EIP-3074

· EIP -5003


讓我們從所有這些提案的共同目標「帳戶抽象」說起-以太坊上的EOA(「普通」帳戶)很糟糕,它們風險很大,功能非常有限,而帳戶抽象則允許用戶使用智慧合約作為帳戶,以添加更多功能和安全性來解決這個問題。



EIP-4337


EIP-4337 於2023 年3 月在主網上線,它允許用像帳戶一樣編寫智能合約,以便它們可以驗證和執行交易,這改進了許多用戶體驗(UX)。


自發布以來,EIP-4337 得到了廣泛的採用,主要由Polygon 主導,而Base 在過去幾個月中的相關活動也在增多。



EIP-4337 相關的最新創新來自Coinbase 生態及Coinbase 智慧錢包,它基於生物辨識技術,使用者體驗非常棒,我曾在上週末於ETH Global Sydney 製作了另一個小型演示來展示這一點。


那麼 EIP-4337 有什麼問題?為什麼今天又有另一個帳戶抽象提案?因為 EOA 仍然是迄今為止使用最廣泛的帳戶類型。


除此之外,大多數EIP-4337 的智慧合約帳戶都由單一EOA 簽署者控制,以下是範例程式碼:



因為無法將使用者的EOA「轉換」為智慧合約帳戶,所以有這個奇怪的中間步驟解決方案— 主要是由於Web3 應用缺乏對連接智慧合約帳戶的原生支持,如今大多數人仍透過MetaMask 等插件錢包使用EOA。


EIP-3074


這引出了我們的下一個提案:EIP-3074 。


實際上,這個提案是在EIP-4337 之前提出的,但是它尚未合併到主網,EIP-3074 試圖賦予EOA 更多權力,允許他們將其EOA 的控制權委託給智能合約。


該提案概述了以下內容,新增兩個新的操作碼:


· AUTH:EOA 可以呼叫AUTH 來授權給定的智能合約代表其EOA 執行操作;

· AUTHCALL:授權的智能合約可以使用AUTHCALL 為EOA 執行交易;



這實現了與EIP-4337 許多相同的用例,而無需每個用戶部署新的智能合約。 一個關鍵的區別在於交易來自用戶的 EOA,而不是一個沒有用戶任何帳戶歷史記錄、ETH、NFT、代幣等的新合約。



對EIP-3074 的一個常見反應是「如果有人制定惡意合約並且用戶委託給他們怎麼辦?


解決這個問題的方法是錢包服務提供者甚至不允許用戶對任何合約進行授權,他們可能會保留一份用戶可以委託授權的智能合約白名單列表,並且此列表以外的任何合約都不會顯示給用戶。



EIP-3074 委託的一個關鍵點是委託並非永久性的, 「EOA 的單一交易會導致nonce 增加,從而使未完成的授權失效」。


實質上,在用戶進行新交易後,委託將不再有效。



EIP-5003


我們也確實不想賦予EOA 更多權力。畢竟,這些提案的目標是將用戶從 EOA 轉移到智慧合約帳戶,那麼我們為什麼要為 EOA 添加功能呢?


這很好地引出了我們的下一個提案:EIP-5003 。 EIP-5003 新增了另一個操作碼“AUTHUSURP”,它將程式碼部署在 EIP-3074 授權位址。


EIP-3074 和EIP-5003 兩者的差別在於:


· EIP- 3074 是智能合約的臨時委託,可撤銷;

· EIP-5003 是從EOA 永久遷移並從EOA「轉換」到智慧合約帳戶;


EIP-3074 + EIP-5003 的一個大問題是它與透過EIP-4337 的當前帳戶抽象方案不太相容,所以以太坊社群的一些人擔心我們會透過這兩種類型的帳戶抽象化「創建兩個獨立的代碼生態系統」。


EIP-7702


這就到了Vitalik Buterin 今天的提議:EIP-7702 — —他提議修改EIP-3074 ,使其更精簡並與EIP-4337 更兼容,這樣我們就不會最終得到兩個獨立的帳戶抽像生態系統,還將EIP-5003 視為永久遷移的下一步。


EIP-7702 提出了一種同時接受contract_code 和簽名欄位的新交易類型,在開始執行交易時,它將簽署者帳戶的合約代碼設置為contract_code。在交易結束時,它會將代碼重新設為空。


這和 EIP-3074 一樣,實現了 EOA 對智能合約的臨時委託功能。然而EIP-7702 並沒有引入新的操作碼(這需要硬分叉),而是定義了要呼叫的函數:


· AUTH ->呼叫“verify”(驗證)

· AUTHCALL -> 呼叫“execute”(執行)



具體來說,它:


· 檢查你的帳戶合約代碼是否為空;

· 如果為空,則設定為提供的合約代碼;

· 根據提供的智能合約處理交易的方式執行交易;

· 將帳戶合約代碼設定恢復為空;


「合約代碼」就是字面意思,智慧合約的代碼就儲存在「合約代碼」中。由於 EOA 本身不是合約,所以這個欄位通常是空的。然而 EIP-7702 的巧妙之處在於,它會在交易執行期間暫時將一些智慧合約程式碼填入該欄位。


這是一種為您的EOA 提供新行為(代碼形式)的方式,用於執行此特定交易,下一步是使之成為永久性的行為改變,只需選擇「在交易結束後不將代碼設為空」。


該提案最棒的一點之一是,它與迄今為止為EIP-4337 構建的所有帳戶抽象工作高度兼容 ,「用戶需要簽名的合約代碼實際上可以是現有的EIP-4337 錢包代碼」。


一旦此項變更生效,使用者現有的 EOA 就可以執行任何智慧合約程式碼。透過額外的 EIP,EOA 還可以永久升級以運行特定的程式碼。


假以時日,這可能會徹底改變我們所有人與 Web3 應用的互動方式。


原文連結


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交