原文作者:biconomy 研究員Nishil ,本文由DeFi 之道編譯

以太坊的主要缺點之一是用戶體驗複雜,讓我們了解一下由nethermind 以及opengsn 研究者提出的EIP 4337‌ 是如何嘗試用賬戶抽象(Account Abstraction)來解決這個問題的。

賬戶抽象與EIP-4337 :如何改善以太坊的用戶體驗?

那麼,讓我們從帳戶抽象(AA)的意義開始。

一、帳戶抽象(AA)的定義

帳戶抽象可以為用戶提供了簡化使用帳戶的能力,從而降低對底層流程的了解要求。

就像我們使用一個gmail 帳戶,而不需要知道它是如何工作的一樣。

有了帳戶抽象,我們就有機會遠離可怕的助記詞世界。

我們可以啟用不同的簽名選項,gas 費用可以由Dapp 贊助或通過法定貨幣支付等等。

現在,我們知道了帳戶抽象(AA)的定義是什麼,讓我們了解如何將它帶到以太坊。

二、如何為以太坊實現賬戶抽象

目前以太坊上有兩種類型的賬戶:

  1. 外部擁有賬戶(EOA)
  2. 智能合約賬戶

所謂外部擁有賬戶(EOA),是指這些帳戶由用戶的密鑰對(公鑰和私鑰)控制, 這是大多數用戶用來與以太坊交互的方式,Metamask(錢包)等服務充當與這些帳戶交互的接口。

智能合約賬戶則不受任何私鑰控制,而是由其代碼控制。例如,所有的DeFi 協議都由智能合約賬戶控制。

以太坊的問題在於,外部擁有賬戶(EOA) 獲得了智能合約賬戶所沒有的特權。最顯著的例子是發起交易的能力。目前,只有外部擁有賬戶(EOA) 可以做到這一點。

這是一個問題,因為EOA 功能被硬編碼到以太坊協議中,並且沒有定制空間。

例如:Gmail 為你提供了在你的帳戶上啟用2FA 的選項。而今天在以太坊上無法實現類似的可定制性。

以太坊上的EOA 有以下限制:

  1. 用戶不能使用自定義簽名方案。 ECDSA 是以太坊用來生成公私密鑰對的典型簽名方案。
  2. Gas 費必須以原生加密貨幣($ETH) 支付。
  3. 因為你的私鑰就是你的賬戶,丟失你的密鑰就意味著丟失你的賬戶。

所有這些問題都可以通過智能合約錢包輕鬆解決,因為它們允許使用自定義邏輯。

但如前所述,以太坊上的交易只能通過ECDSA 保護的外部擁有賬戶(EOA) 發起,而不能通過智能合約錢包發起。

現在你可能會問——我們為什麼不改變它呢?

好吧,EIP 2938‌ 是解決此問題的一種途徑。它引入了以太坊協議更改,允許交易從智能合約而不是EOA 發起。

但問題在於,它需要對協議進行重大更改。

因此,nethermind 以及opengsn 的研究人員在Vitalik Buterin 的幫助下提出了EIP 4337。

賬戶抽象與EIP-4337 :如何改善以太坊的用戶體驗?

該提案提出了一種解決方法,無需更改任何共識層協議,就能為以太坊帶來“賬戶抽象”。

它沒有修改共識層本身的邏輯,而是將當前tx 存儲池的功能複製到更高level 的系統中。

流程有很多活動部分,其中包括:

  1. 用戶操作(User operations)
  2. 捆綁者(Bundler)
  3. Paymaster(可選)

接下來,讓我們一一了解這幾個概念。

該提案引入了“用戶操作”的概念,這些操作允許我們將自定義功能編碼到我們的智能合約錢包中。

用戶操作將用戶的意圖、簽名以及其他數據打包以進行驗證。

相關圖像:

賬戶抽象與EIP-4337 :如何改善以太坊的用戶體驗?

以下是通過智能合約錢包發起一筆交易的一般流程:

1、Alice(用戶)發起一個“用戶操作”並包含它想要執行的tx;

賬戶抽象與EIP-4337 :如何改善以太坊的用戶體驗?

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)的概念。

用戶現在可以不再依賴他們的錢包,而是可以讓付款人讚助他們的交易費用。

賬戶抽象與EIP-4337 :如何改善以太坊的用戶體驗?

贊助交易功能有很多用例, 最常被引用的用例是:

  1. 允許應用開發人員代表其用戶支付費用;
  2. 允許用戶以ERC20 代幣支付費用,合約充當收取ERC20 的中介;

三、賬戶抽像對我們意味著什麼

所有這一切都非常令人興奮,但我們為什麼要關心呢?好吧,有多種原因。

提案允許我們使用自定義簽名方案。用戶現在可以使用iOS 和Android 設備的內置方案,將每部手機變成硬件錢包。

它允許在以太坊上為多個簽名者提供原生支持。兩個或更多用戶現在可以批准單筆交易,從而提高安全性。

可以啟用社交恢復。如果用戶不知何故丟失了他的密鑰,那麼他可通過簡單地讓他的朋友和家人為他恢復賬戶。

好了,以上就是該提案的全部內容。

這個提案引入了多種創新途徑,我希望我解釋地清楚了它們。看到團隊構建的用例,為用戶提供更好的用戶體驗,將是令人興奮的。