原文作者:biconomy研究員Nishil
以太坊的主要缺點之一是用戶體驗複雜,讓我們了解一下由nethermind以及opengsn 研究者提出的EIP 4337是如何嘗試用賬戶抽象(Account Abstraction)來解決這個問題的。
那麼,讓我們從帳戶抽象(AA)的意義開始。
一、帳戶抽象(AA)的定義
帳戶抽象可以為用戶提供了簡化使用帳戶的能力,從而降低對底層流程的了解要求。
就像我們使用一個gmail 帳戶,而不需要知道它是如何工作的一樣。
有了帳戶抽象,我們就有機會遠離可怕的助記詞世界。
我們可以啟用不同的簽名選項,gas 費用可以由Dapp 贊助或通過法定貨幣支付等等。
現在,我們知道了帳戶抽象(AA)的定義是什麼,讓我們了解如何將它帶到以太坊。
二、如何為以太坊實現賬戶抽象
目前以太坊上有兩種類型的賬戶:
-
外部擁有賬戶(EOA)
-
智能合約賬戶
所謂外部擁有賬戶(EOA),是指這些帳戶由用戶的密鑰對(公鑰和私鑰)控制, 這是大多數用戶用來與以太坊交互的方式,Metamask(錢包)等服務充當與這些帳戶交互的接口。
智能合約賬戶則不受任何私鑰控制,而是由其代碼控制。例如,所有的DeFi 協議都由智能合約賬戶控制。
以太坊的問題在於,外部擁有賬戶(EOA) 獲得了智能合約賬戶所沒有的特權。最顯著的例子是發起交易的能力。目前,只有外部擁有賬戶(EOA) 可以做到這一點。
這是一個問題,因為EOA 功能被硬編碼到以太坊協議中,並且沒有定制空間。
例如:Gmail 為你提供了在你的帳戶上啟用2FA 的選項。而今天在以太坊上無法實現類似的可定制性。
以太坊上的EOA 有以下限制:
-
用戶不能使用自定義簽名方案。 ECDSA 是以太坊用來生成公私密鑰對的典型簽名方案。
-
Gas 費必須以原生加密貨幣($ETH) 支付。
-
因為你的私鑰就是你的賬戶,丟失你的密鑰就意味著丟失你的賬戶。
所有這些問題都可以通過智能合約錢包輕鬆解決,因為它們允許使用自定義邏輯。
但如前所述,以太坊上的交易只能通過ECDSA 保護的外部擁有賬戶(EOA) 發起,而不能通過智能合約錢包發起。
現在你可能會問——我們為什麼不改變它呢?
好吧,EIP 2938 是解決此問題的一種途徑。它引入了以太坊協議更改,允許交易從智能合約而不是EOA 發起。
但問題在於,它需要對協議進行重大更改。
因此,nethermind 以及opengsn 的研究人員在Vitalik Buterin 的幫助下提出了EIP 4337。
該提案提出了一種解決方法,無需更改任何共識層協議,就能為以太坊帶來“賬戶抽象”。
它沒有修改共識層本身的邏輯,而是將當前tx 存儲池的功能複製到更高level 的系統中。
流程有很多活動部分,其中包括:
-
用戶操作(User operations)
-
捆綁者(Bundler)
-
Paymaster(可選)
接下來,讓我們一一了解這幾個概念。
該提案引入了“用戶操作”的概念,這些操作允許我們將自定義功能編碼到我們的智能合約錢包中。
用戶操作將用戶的意圖、簽名以及其他數據打包以進行驗證。
相關圖像:
以下是通過智能合約錢包發起一筆交易的一般流程:
1、Alice(用戶)發起一個“用戶操作”並包含它想要執行的tx;
2、她將該操作發送到一個高level 的“用戶操作存儲池”。
3、該操作被部分驗證,並廣播到P2P 存儲池節點網絡。
4 – 操作由“Bundler”選擇執行,任何人都可以成為Bundler ,例如MEV 搜索者、驗證者、你或我等等。
5 – 然後Bundler 將所有操作捆綁到一筆大的tx 中。
6 – Bundler 將區塊與其他tx 一起包含在以太坊區塊中。
現在讓我們嘗試分解Bundler 的功能,以了解如何執行和驗證tx。
1 – Bundler 將tx 路由到一個全局“入口點”智能合約。
2 – 全局合約通過每個用戶操作並調用智能合約錢包中的“驗證函數”。
3 – 錢包運行此函數來驗證用戶操作的簽名並補償bundler 捆綁這些交易。
4 – 錢包運行一個執行操作以執行操作中指定的交易。
5 – 然後在執行操作後將剩餘的gas 退還給錢包。
該EIP 還提出了“付款人”(paymaster)的概念。
用戶現在可以不再依賴他們的錢包,而是可以讓付款人讚助他們的交易費用。
贊助交易功能有很多用例, 最常被引用的用例是:
-
允許應用開發人員代表其用戶支付費用;
-
允許用戶以ERC20 代幣支付費用,合約充當收取ERC20 的中介;
三、賬戶抽像對我們意味著什麼
所有這一切都非常令人興奮,但我們為什麼要關心呢?好吧,有多種原因。
-
提案允許我們使用自定義簽名方案。用戶現在可以使用iOS 和Android 設備的內置方案,將每部手機變成硬件錢包。
-
它允許在以太坊上為多個簽名者提供原生支持。兩個或更多用戶現在可以批准單筆交易,從而提高安全性。
-
可以啟用社交恢復。如果用戶不知何故丟失了他的密鑰,那麼他可通過簡單地讓他的朋友和家人為他恢復賬戶。
好了,以上就是該提案的全部內容。
這個提案引入了多種創新途徑,我希望我解釋地清楚了它們。看到團隊構建的用例,為用戶提供更好的用戶體驗,將是令人興奮的。