什麼是帳戶抽象#
在回答這個問題之前,我們先思考兩個問題「以太坊有哪些帳戶類型」以及「為什麼要提出帳戶抽象」。
帳戶類型#
- EOA(externally owned account)
- CA (contract account),不能主動發起交易
為什麼提出「帳戶抽象」#
從上面的 EOA 交易機制流程圖中我們可以發現目前存在的一些問題:
- 私鑰管理 -> 單點失敗風險(no you key, no you coin)
- 依賴於 ECDSA 簽名 -> 無法對抗量子計算
- 交易驗證邏輯寫在協議層 -> 糟糕的用戶體驗
縱觀近幾年的 EIP 提案,開發者們始終希望用戶的帳戶具備圖靈完備的能力。相關工作一直都在進行,終於 ERC-43371 應運而生。業內也統一了「Account Abstraction」的說法。
這個方案不需要修改協議層,實現了把帳戶抽象的交易驗證從協議層抽離出來,放在了應用層。但是雖然在應用層,它還是屬於一個技術標準,新開發的智能合約錢包們應該遵循這個標準2。
重新回到一開始的問題 ——「什麼是帳戶抽象」。回顧上述內容,我們大概已經明白了 EOA 交易機制目前存在的問題以及 ERC-4337 的交易流程。於是可以試著給「帳戶抽象」下個定義:
帳戶抽象是一種使用可編程方式來驗證交易有效性的技術方案
應用場景#
- 找回私鑰
- Gas 費代付,批量授權及交易
- 權限管理
用戶可以找回帳戶私鑰,解決了「單點失敗」的問題,開發者可以在 Web3 的世界中引入 Two-factor 驗證來授權,私鑰丟失了也可以使用郵箱找回。
用戶可以獲得更好的交易體驗,不必再去理解什麼是 Gas 的問題。Defi 場景下的先授權再交易步驟,也可以合併成一筆交易,更加方便。
用戶可以對帳戶進行權限管理,在一個公司或者 DAO 組織,管理者可以根據不同的用戶角色設置不同的支出權限。
相關產品#
一些思考#
儘管已經看到有很多的產品加入了「AA」這個賽道,但它目前仍處於非常早期的階段。我很喜歡 lixin 在這個播客3中的類比,「AA」之於「EOA」就如同「自動檔汽車」之於「手動檔汽車」。當自動檔汽車剛出現的時候,會充斥著費油和不安全的質疑聲。
或許 ERC-4337 已經給帳戶抽象搭好了框架,但是誰也無法預測它的下一個產品形態 —— 相關的標準仍在制定中。這條路上充滿了未知,機會,也許是荊棘。不過這也正是它最迷人的地方不是嗎?