跳至內容
0%

什麼是模組化帳戶抽象化(Modular Account Abstraction)?

Logan Ross headshot

作者 Logan Ross

發布於 2023年7月19日閱讀時間 2 分鐘

Modular AA 是一項旨在推廣模組化智能帳戶的運動。其目標是讓帳戶可依使用者需求客製化,並讓開發者能夠建構具備豐富情境且自足的帳戶功能。

模組化智能合約帳戶(SCAs)讓建構者能夠為帳戶打造實用的新擴充功能。範例包括:

  1. 社交復原(Social Recovery) - 允許受信任的裝置或朋友協助你在遺失存取權限時復原帳戶
  2. 消費額度限制(Spending Limits) - 允許應用程式代表你消費 token,最高不超過指定額度
  3. Passkey 支援 - 使用如 FaceID 之類的生物辨識登入

透過將模組化標準化,可大幅降低交易對手風險,進而帶來簡單且安全的 web3 使用者體驗。

ERC-4337 標準訂立了基礎設施元件與程式碼標準,實作後可讓使用者以智能合約作為主要帳戶類型,取代私鑰。過去,主要的帳戶類型是 EOA(End User Account),與 SCA 不同的是,EOA 並不具備自訂的驗證與執行邏輯。

本文旨在概述 Modular Account Abstraction,說明它帶來的能力,以及現有的標準與實作方式。

透過將模組化智能帳戶錢包嵌入你的 web3 應用程式,讓使用者無需助記詞或 gas 即可開始使用,並藉由我們垂直整合的 AA 基礎設施進行擴展。

模組化智能合約帳戶有哪些不同類型?

智能合約帳戶本質上就是智能合約;它們可升級、可擴充,也可繼承。依照 SCA 的實作方式,可能允許或不允許新增外掛(plugin)/模組。本文將探討兩種不同的模組化 AA 概念:ERC-6900 與 SAFE Modules。

1. ERC-6900:模組化智能合約帳戶與外掛

ERC-6900 的目標是定義標準 Account 與 Module 實作之間的一組介面。此提案希望能改善開發者體驗、Module 之間的互通性,以及在不同帳戶實作間切換時的資料可攜性。

該標準受到 ERC-2535 啟發,但不要求開發者遵循 Diamond 模式。

什麼是用於模組化智能合約帳戶的 ERC-6900 外掛?

ERC-6900 定義了哪些類型的外掛?

根據該標準,外掛可分為三種類型:

  1. 驗證方案(Validation Schemes) - 定義模組化智能合約帳戶(MSCA)在何種情況下會代為核准交易
  2. 執行邏輯(Execution Logic) - 執行期間要運行的任意邏輯
  3. Hooks - Hooks 可在使用者操作執行前後觸發任意邏輯
ERC-6900 模組圖
ERC-6900 模組圖

該標準也定義了:

  1. 如何為 MSCA 實作 Validation、Execution 與 Hook 外掛。
  2. 符合規範的帳戶實作應如何新增、移除、更新與檢視外掛。
  3. 輔助型別,例如 FunctionReference
交易如何透過 entry point 流向 ERC-6900 SCA 的示意圖
交易如何透過 entry point 流向 ERC-6900 SCA 的示意圖

ERC-6900 定義了哪些介面類型?

ERC-6900 規範定義了三個主要介面:IPluginUpdate、IPluginLoupe 與 IStandardExecutor。

1. IPluginUpdate

IPluginUpdate 介面定義了:

  • 外掛操作 ADDREMOVEREPLACE
  • Validator 類型與 Hook 類型
  • 使用者自訂的 struct,用於更新各種外掛類型
  • 標準化的 updatePlugins 函式,於更新外掛時呼叫,並在更新後觸發 ExecutionPluginUpdate 事件
2. IPluginLoupe

IPluginLoupe 受 ERC-2535 啟發,ERC-6900 定義了 dapp 或其他合約如何讀取 MSCA 所支援的外掛。

3. IStandardExecutor

IStandardExecutor 是模組化智能合約帳戶應實作的介面,以支援開放式執行。

2. SAFE modules

所有基於 SAFE 的帳戶皆支援 SAFE Modules。為維持高安全標準,SAFE 團隊採用了關注點分離模式,並實作了不同的模組類型。

  • Modules - 白名單地址,可代表 Safe 智能帳戶執行交易。
  • Guard - 可設定的合約,用於對即將執行的交易進行額外檢查。
  • Fallback Handler - 可設定的合約,用於處理任意傳入的(讀取)呼叫。

更多資訊請參閱 Safe 的模組化 SCA 架構文章

什麼是 SAFE SCA modules?

SAFE 的 Modules 是個別的智能合約,具有在使用者的 SAFE 智能合約帳戶上執行交易的權限。Modules 可透過 execTransactionFromModule 函式在 SAFE 帳戶上執行任意交易。由於 SAFE 帳戶的實作方式由 SAFE 團隊決定,外掛開發者必須遵守其規則與準則。SAFE modules 僅_相容於 SAFE 帳戶_。

模組開發者與使用者之間存在重大的信任假設,因此,經過實戰驗證的模組更有可能持續被採用。

SAFE Account Module 示意圖
SAFE Account Module 示意圖

什麼是 SAFE SCA guards?

Guards 是可為 SAFE 帳戶設定的智能合約,用於對傳入的交易執行額外的安全檢查。在交易執行前,會呼叫 Guard 並傳入所有交易參數,若 Guard 沒有 revert,交易才會繼續執行。

執行後也會再次呼叫 Guard,以進行狀態變化檢查或執行任意邏輯。

Guards 也可視為 hooks,因為它們適合用於交易前後的狀態檢查。

Safe smart contract account 的 Guards 如何在執行前後檢查交易的示意圖
SAFE SCA Guards 如何保護帳戶

什麼是 SAFE SCA fallback handler?

Fallback Handler 會執行所有傳送至 SAFE 帳戶、且可由其處理的呼叫。這對於遵循如合約簽章(EIP-1271)等業界標準相當有用。根據 SAFE 所述,「外掛與核心 SAFE 合約完全獨立,並維護各自的儲存空間」。

SAFE SCA Fallback Handler 運作方式示意圖
SAFE SCA Fallback Handler 運作方式示意圖

結論

由 ERC-6900 所描述、並由 Safe Modules 所設計的 Modular Account Abstraction,旨在透過外掛擴展智能合約帳戶的能力——這些外掛可由開發者建構,並由智能合約錢包使用者安全地安裝。

如需更多資訊,歡迎瀏覽我們的 ERC-4337 教育中心,或立即試用我們即插即用的 Embedded Accounts,開始動手建構。

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。