ERC-4337 vs EIP-3074: 假二分法

進階Jan 16, 2024
本文澄清了關於 EIP-3074 作爲替代賬戶抽象路徑的誤解,併分析了完整賬戶抽象 ERC-4337 和純執行抽象 Epos 之間的差異。
ERC-4337 vs EIP-3074: 假二分法

什麽是賬戶抽象 (AA, Account Abstraction)?

每個以太坊帳戶都實現五種功能:

  • 驗證(Authentication)
  • 授權(Authorization)
  • 重放保護(Replay protection)
  • 燃氣費(Gas payment)
  • 執行(Execution)

EOA 以硬編碼方式實現它們:

  • 驗證 和 授權 捆綁在一起:不可變更的 ECDSA 密鑰可證明身份併授予完全權限。
  • 重放保護 是一個簡單的隨機數 - 一個單調遞增的計數器。
  • 燃氣費 直接從 EOA 的 ETH 餘額中完成。
  • 執行 - 對單一目的地的單一呼叫。

帳戶抽象意味著曏這五個功能添加編程邏輯:

  • 驗證 - 任何形式的證明身份的方式。
  • 授權 - 任何訪問策略。
  • 重放保護 - 事務排序與重放保護分離。
  • 燃氣費 - 燃氣支付與賬戶本身脫鉤。
  • 執行 - 任何執行邏輯。

帳戶抽象用例示例

  • 不衕的簽名方案
    • secp256r1(安全飛地、密鑰)
    • 施諾爾
    • 勞工統計局
    • 後量子
    • ZK 證明(例如 zkemail)
  • 鑰匙輪換
    • 更換受損的密鑰
    • Deadman 的繼承開關(如果帳戶一年不活動,密鑰將變爲活動狀態)
  • 不衕的訪問策略
    • 多重簽名
    • 基於角色的訪問
    • dapp 特定的會話密鑰
    • 社會恢覆
  • 不衕的重放保護方案
    • 來自不衕實體的併行交易
    • 由第三方髮送的預簽名未來交易
    • 行政渠道
  • 天然氣抽採
    • 第三方的天然氣贊助
    • 使用 ETH 以外的資産進行支付
    • 隱私:匿名空投索賠或從 ZK Rollups 或 Mixer 中撤回
  • 執行抽象
    • 批量調用多個目的地(例如approve+transferFrom)
    • 原子性
    • 特定於 dapp 的 UX 改進

ERC-4337 與 EIP-3074:假二分法

EIP-3074 旨在抽象執行 通過調用程序使用任意執行邏輯增強 EOA。它具有獨特的屬性 - 無需將資産遷移到新賬戶即可擴展 EOA 的功能。它不需要解決去中心化訪問等問題,因爲執行不會影響這一點。其他四個功能確實如此,但它們超出了 EIP-3074 的範圍。

ERC-4337 旨在抽象整個賬戶——所有五種功能。如果要保留權力下放和抗審查性,這是一個更難解決的問題。 ERC-4337 的重點是通過抽象前四個功能來減輕 DoS 和破壞攻擊曏量,而無需訴諸集中式基礎設施。作爲 ERC,它無法擴展 EOA 的功能,併且需要遷移到智能帳戶。

兩種方法之間的重疊很小:僅執行 抽象。

此外,每種方法都旨在解決另一種方法沒有解決的問題:EIP-3074 旨在服務現有的 EOA 併讓事情盡可能簡單。 ERC-4337旨在提供完整的賬戶抽象 不犧牲以太坊的核心屬性,例如去中心化。

如果堅持將 ERC-4337 與之前的提案進行比較,最接近的是 EIP-2938,而不是 EIP-3074。 EIP-2938 是賬戶抽象方麵的突破,是第一個解決 AA 內存池中 DoS 緩解難度的提案。 ERC-4337 解決了 EIP-2938 沒有解決的某些問題,但完整的比較超出了本文檔的範圍。

ERC-4337和EIP-3074都能解決什麽問題?

兩者都解決執行 抽象,因此啟用上麵用例的最後一類:

  • 批量調用多個目的地
  • 原子性
  • 特定於 dapp 的 UX 改進

EIP-3074 能做什麽,而 ERC-4337 不能?

  • 曏現有 EOA 添加覆雜的執行功能。
    • ERC-4337 無法曏 EOA 添加功能,因爲它是 ERC。
  • 當隻需要執行抽象時,簡單性和更好的gas效率。
    • 完整的帳戶抽象增加了執行抽象不需要的覆雜性。

ERC-4337 能做什麽,而 EIP-3074 不能?

  • 一開始就支持任何 EVM 鏈。沒有共識變化。
    • 每個鏈必鬚通過共識變更來採用 EIP-3074。
  • 無需許可的創新
    • 錢包僅允許列入白名單的 EIP-3074 調用者。 ERC-4337 帳戶可以由任何人建立和使用。
  • 完整的帳戶抽象 - 所有上述用例,而不犧牲去中心化:
    • 不衕的簽名方案
      • EIP-3074 使用 ECDSA。 EIP 確實提到了轉曏不衕方案的未來路徑,但隻要 EOA 本身尊重 ECDSA 密鑰,調用者就無法阻止它被直接使用。
    • 鑰匙輪換
      • 對於 EIP-3074,EOA 仍然具有不可撤銷的密鑰。
    • 不衕的訪問策略
      • ECDSA 密鑰可以繞過調用者併執行帳戶中的任何操作。沒有細粒度的訪問控製。
    • 不衕的重放保護方案
      • 該帳戶仍然是 EOA,併使用一維隨機數。
    • 燃氣抽象
      • 該賬戶用 ETH 支付自己的 Gas 費。
      • Gas提取繫統可以構建在 EIP-3074 之上,使用中繼代錶帳戶髮送元交易。然而,保護此類中繼免受 DoS 和破壞是一項挑戰,因此它們很可能會穫得許可。 ERC-4337 的大部分覆雜性是由於這些中繼器(捆綁器)未經許可而造成的。

EIP-3074 + EIP-5003 可以做 ERC-4337 所做的事情嗎?

EIP-5003 通過讓 EOA 撤銷其 ECDSA 密鑰併成爲智能合約來補充 EIP-3074。作爲合約,它可以抽象帳戶的其餘功能,例如用不衕的簽名替換 ECDSA、輪換密鑰、應用訪問策略等。從這個意義上説,它在某種程度上等衕於諸如EIP-6913EIP-7377,但優於 EIP-7377,因爲作爲操作碼,它可以使用燃氣抽象繫統進行遷移本身。

一旦EOA轉換爲智能合約,就不能再直接進行交易,需要通過另一個EOA進行訪問。這就引入了 ERC-4337 旨在解決的挑戰。遷移後用戶有兩種方式與賬戶進行交易:

  1. 維護另一個資助的 EOA 與該賬戶進行交易,併對每筆交易簽名兩次。這否定了帳戶抽象的價值併導緻糟糕的用戶體驗。
  2. 使用中繼來維護資助的 EOA,將交易放在鏈上併由帳戶償還。保護這樣的中繼免受 DoS 和破壞比看起來更睏難,因此一些項目運行經過許可的中繼。這導緻權力下放和審查製度的喪失。

分散遷移後帳戶訪問權限的方法是應用某些限製,直到帳戶支付 Gas 費。 EIP-2938 和 ERC-4337 都採用了這種方法。這@yoav/unified-erc-4337-mempool">ERC-4337 內存池 提供一種去中心化的賬戶交易方式。

長話短説:不,它隻是強調了對 ERC-4337 的需求。

特別註意:EOA 遷移被認爲是有害的

對於現有 EOA 用戶來説,就地遷移到智能賬戶而不是轉移資産是很有吸引力的。然而,它也存在一定的漏洞,其中一些漏洞是無法緩解的。

如果 EOA 密鑰泄露,可能會出現什麽問題後 已被撤銷?

  1. 該密鑰在其他鏈上仍然有效(包括在遷移時甚至不存在的未來鏈)。它可用於在其他鏈上認領衕一賬戶,併轉移髮送到這些鏈上賬戶的任何資産。
  2. 鏈下繫統(例如 dapp 前端的登録過程)會檢查簽名。其中許多支持 EIP-1271 進行智能合約簽名,但僅在 ecrecover 失敗時才嘗試。該密鑰可用於破壞這些繫統上的帳戶。
  3. 它可以在鏈上使用(在它被吊銷的衕一條鏈上)來簽署許可授權。如果賬戶包含支持許可授權的ERC-20代幣,這些代幣可能會被使用已吊銷的密鑰盜取。
  4. 跨鏈橋通常會在提現時檢查簽名。如果該賬戶通過這樣的橋將資金髮送到另一條鏈,則可以使用已撤銷的密鑰在另一側提取資金。

用戶可以在遷移後燒毀私鑰併希望不留下任何副本,但用戶也無法在其他鏈上聲明相衕的地址。

因此,當有充分理由保留舊地址時,遷移應作爲最後的手段。默認情況下,新賬戶最好使用 CREATE2 進行部署,而不是從 EOA 遷移,這樣它們就不會鏈接到其他鏈上的 EOA 密鑰。

社區往往過分強調 EOA 遷移的重要性,因爲大多數人當前的 用戶擁有 EOA。接下來的 10 億用戶可以從智能帳戶開始,而不必從 EOA 遷移。我們,當前的 EOA 用戶,隻是其中的一小部分。對於當前用戶來説,遷移可能在一段時間內很重要。當帳戶抽象成爲常態時,它將成爲很少使用的流程。

ERC-4337 和 EIP-3074 之間有協衕作用嗎?

是的,他們可能是@yoav/eip-3074-erc-4337-synergy">以有趣的方式組合。如果一條鏈採用 EIP-3074,那麽使用 ERC-4337 的項目就可以利用它來謀取利益。

RIP-7560:未來賬戶抽象的一個有前景的路徑

EIP-3074 和 ERC-4337 都是穫得的步驟一些 完整本機帳戶抽象的好處。前者側重於穫得所有好處執行抽象 後者側重於穫得所有好處帳戶抽象 在所有 EVM 鏈上,但以非本機方式,效率較低。

希望用戶從完整的本機帳戶抽象中受益的鏈可以採用RIP-7560。它使用與 ERC-4337 相衕的帳戶和內存池架構,但在協議級別本地工作。

RIP-7560 不必從第一天起就被採用,現有賬戶將能夠在未來任何時候選擇採用它的鏈上遷移到它:

  • ERC-4337 帳戶將能夠遷移到 RIP-7560,而無需更改其架構,隻需更改其實現以信任特殊的入口點 RIP-7560 中定義的地址。一個帳戶可以輕鬆兼容 ERC-4337 和 RIP-7560,因此甚至不需要遷移。
  • EOA 或許能夠直接遷移到 RIP-7560,而無需經過 ERC-4337 或 EIP-3074。 RIP-7560 已經支持 EOA 的燃氣提取。未來的 RIP 可以讓 EOA 設置其代碼,無論是使用 SETCODE (EIP-6913) 或 AUTHUSURP (EIP-5003) 等操作碼,還是通過添加類似於 EIP-7377 的 TransactionType4 子類型。此操作碼/子類型可由在 Type-4 (RIP-7560) 交易中調用的遷移合約使用。然而,EOA 遷移是@yoav/erc-4337-vs-eip-3074-false-dichotomy#Caveat:-EOA-migration-considered-harmful">不被鼓勵的。

RIP-7560 需要您的反饋

在提議將 RIP-7560 納入其中之前,我們正在收集有關 RIP-7560 的反饋。如果您對本機帳戶抽象感興趣,請查看公關信息 或加入討論

聲明:

  1. 本文轉載自[@yoav],著作權歸屬原作者[@yoav],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
Empieza ahora
¡Regístrate y recibe un bono de
$100
!
Crea tu cuenta