原文標題:《賬戶抽象:EIP-4337》
撰文:Yash Kamal Chaturvedi
翻譯:ChinaDeFi
在這篇文章中我們將得到一個關於 EIP-4337 在帳戶抽象中的角色的完整概念。
介紹
該提案包括一些更改,以避免對共識層協議的更改,而不是依賴於更高層的基礎設施。它旨在實現以下目標:
- 帳戶抽象:允許用戶使用包含任意驗證邏輯的智能合約錢包,而不是 EOA 作為他們的主要帳戶。
- 去中心化:允許任何綁定者參與包含帳戶抽象用戶活動的過程。用戶不需要知道任何參與者的直接通信地址,就可以處理跨公共內存池發生的任何活動。
- 無共識更改:為了更快的採用,這個提議避免了共識變更。
- 支付交易費用:使用 ERC-20 代幣支付交易費用,使開發人員能夠為他們的用戶支付費用,以及類似 EIP-3074 的贊助交易用例。
以下是該提案中的一些新特性。所有操作都在對等內存池中進行。用戶不必擔心他們的錢包合約已經發布,因為錢包存在於確定性的 CREATE2 地址,如果錢包不存在,UserOperation 會自動創建它。用戶現在將能夠設置一個固定的費用溢價和最大總費用,並期望它能夠快速包含在內併合理收費。通過模擬檢查的 UserOperation 被保證是可包含的,直到發送者有另一個狀態改變,這將要求攻擊者為每個發送者支付 7500+ gas。
工作
用戶發送 UserOperation 對象,該對象封裝了用戶的目的以及用於驗證的簽名和其他數據。利用 Flashbots 等服務的礦工或綁定者可以將 UserOperation 對象組合成單個捆綁交易,然後將其包含在以太坊區塊中。綁定者為 ETH 中的捆綁交易支付成本,並通過每個單獨執行 UserOperation 所支付的費用進行補償。綁定者將使用費用優先順序邏輯選擇包含哪些 UserOperation 對象。
為了簡化錢包的邏輯,維護安全所需的大多數複雜智能合約邏輯都在錢包之外執行,在一個稱為入口點的全局合約中執行。validateUserOp 和執行功能預計將與 門控 require(msg.sender == ENTRY POINT),這樣只有可信的入口點才能觸發錢包進行操作或支付費用。在使用有 calldata 的 UserOperation 驗證 userop 成功之後,入口點對錢包進行任意調用,這樣做是為了保護錢包免受攻擊。
如果成功模擬了 UserOperation 的驗證,則保證 UserOperation 在發送方帳戶的內部狀態更改之前是可包含的。
發起交易
我們可以允許應用開發者代用戶支付費用,並允許用戶用 ERC20 代幣支付費用,通過合約作為中介收取 ERC20 代幣並使用 ETH 支付。
該提案可以通過付款主管機制支持上面的用例。
- 對於用例 1:Paymaster 驗證發起人的簽名包含在 PaymasterData 中,表明發起人已經準備好為 UserOperation 付費。如果簽名有效, Paymaster 接受,UserOperation 費用從發起人的份額中扣除。
- 對於用例 2:Paymaster 檢查發起人錢包是否有足夠的 ERC20 餘額來支付 UserOperation。如果是,Paymaster 接受並支付 ETH 費用,然後在 postOp 中申領 ERC20 代幣。
優勢
- 驗證邏輯靈活性:validateUserOp 函數添加了任意簽名和隨機數驗證邏輯。
- 執行邏輯靈活性:錢包將能夠為執行步驟添加自定義邏輯。
- 錢包可升級性:錢包將能夠更改其公鑰或升級其代碼。
缺點
- 增加 DoS 漏洞:驗證邏輯比單個 ECDSA 驗證更複雜。
- 一次一個交易:帳戶不能排隊並將多個交易發送到 Mempool。
- Gas 開銷:與正常交易相比,更多的 gas 開銷。
冷萃財經原創,作者:awing,轉載請註明出處:https://www.lccjd.top/2021/10/20/%e7%ae%80%e6%9e%90%e4%bb%a5%e5%a4%aa%e5%9d%8a-eip-4337-%e6%8f%90%e6%a1%88%e6%9c%ba%e5%88%b6%e8%ae%be%e8%ae%a1%e5%8f%8a%e4%bc%98%e7%bc%ba%e7%82%b9/?variant=zh-tw
文章評論