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

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

什麽是賬戶抽象 (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的情況下不得覆製、傳播或抄襲經翻譯文章。

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

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

什麽是賬戶抽象 (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的情況下不得覆製、傳播或抄襲經翻譯文章。
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.