作者:Arrow@go2mars,來源:作者推特@ArrowCrypto_eth
今天我們基於意圖交易聊一聊ERC-4337(以太坊賬戶抽象)。實際上在上一篇文章中我們已經提到了賬戶抽象(Account Abstract)在項目Bob the Solver中的作用。
ERC-4337 Account Abstraction
ERC-4337旨在實現賬戶抽象,而不會影響去中心化和抗審查性,用戶可以享用同時具備智能合約和外部擁有賬戶功能的單一賬戶。
這意味著AA錢包可以在不依賴由單個實體控制的集中式中繼器的情況下,進行訪問智能合約錢包,可以實現在單個合約賬戶中進行交易和創建合約。
賬戶抽象將現有兩類賬戶①外部擁有賬戶(EOA)、②智能合約賬戶(CA)的功能合併,為單一賬戶中的錢包帶來了智能合約功能。這使得未來的創新錢包設計更有可能。
我們先來了解下這兩種賬戶的基礎知識。
以太坊帳戶有四個字段:{nonce, balance, codeHash, StorageRoot},其中:
①Nonce是一個計數器,用來顯示外部帳戶發送的交易數量或合約帳戶創建的合約數量;
②balance – 這個地址擁有的Wei 數量;
③codeHash – 該哈希表示以太坊虛擬機(EVM) 上的帳戶代碼。合約帳戶具有編程的代碼片段,可以執行不同的操作。如果帳戶收到消息調用,則執行此EVM 代碼。與其他帳戶字段不同,不能更改。所有代碼片段都被保存在狀態數據庫的相應哈希下,供後續檢索;
④storageRoot – 有時被稱為存儲哈希。
而這兩種帳戶類型分別是:
①外部賬戶(Externally Owned Accounts),即EOA,是一種外部所有的帳戶,由任何擁有私鑰的人控制,codeHash為空。
②合約賬戶(Contact Account),即CA,沒有私鑰,codeHash非空。
EOA外部賬戶和CA合約賬戶的主要區別是:
外部持有賬戶(EOA):創建帳戶是免費的,可以發起交易,外部所有的帳戶之間只能進行以太幣和代幣交易,並且由一對加密密鑰組成:控制帳戶活動的公鑰和私鑰。
合約賬戶(CA):創建合約存在成本,因為需要使用網絡存儲空間;只能在收到交易時發送交易;從外部帳戶向合約帳戶發起的交易能觸發可執行多種操作的代碼,例如轉移代幣甚至創建新合約;合約帳戶沒有私鑰,由智能合約代碼邏輯控制。
ERC-4337的兩種賬戶合併為單一賬戶中的錢包帶來了智能合約功能,這就為AA錢包的功能帶來了很大的想像空間。
目前大多數以太坊錢包都是外部持有賬戶,我們用的最廣泛的metamask小狐狸錢包就是。
但這種外部錢包會受限於外部擁有錢包的設定規則,比如你的賬戶訪問完全依靠私鑰,進行的所有交易均需簽名,如果丟失助記詞那就喪失了對這個錢包的掌控權。
由智能合約賬戶進行管理的智能合約錢包也可以實現這個功能,這就帶來了便捷性。不再需要助記詞,那也就不怕助記詞丟失,實現了多重身份驗證和賬戶恢復。同時可以實現多樣的定制服務。
ERC-4337的運作方式
賬戶抽象提案完全避免了共識層協議更改的需要,其實在之前的EIP-2938中就提出過類似概念,但是需要更改共識層協議。 EIP-3074中也提出了將”EOA控制權委託給智能合約”的想法。
ERC-4337提案並沒有添加新的協議功能並更改底層的交易類型,而是引入了一個稱為UserOperation 的更高層偽交易對象。
在實際的運作流程中,用戶將UserOperation 對象發送到新的單獨內存池裡。然後通過捆綁器(Bundler)調用特殊合約將這些對像打包到單個交易中,而該交易也將被包含在一個區塊中。
該提案還引入了一種支付機制,用戶能夠使用任意的ERC-20代幣(例如USDC)而不是ETH 支付Gas費,或者允許由第三方完全支持他們的Gas費,這些都以去中心化的方式進行。
意圖交易與ERC-4337
在ERC-4337中,UserOperation作為一個”偽交易對象”,代表了用戶的交易意圖。可以包含多個指令和附加數據,用來執行由智能合約賬戶發起的智能合約調用。後面在ERC4337的推動下,也會有越來越多的意圖被採用。
我們看下最近很火,被譽為引領「Intent-Centric」新敘事的Web3操作協議dappOS。
dappOS 是一種Web3 操作協議,旨在使dApps 像移動應用程序一樣用戶友好。作為第一個Web3 統一運行協議,它在用戶和公鏈、跨鏈橋等加密基礎設施之間創建了一個層,使用戶能夠輕鬆地與dappOS 交互,並在去中心化的世界中完成驗證和執行。 DappOS 包含了恢復誤刪助記詞的功能,用戶可以通過其他設備甚至第3 方KYC 服務重置帳戶。
而其解決方案也主要由兩部分組成:
①dappOS Account:用戶使用基於賬戶抽象的統一賬戶,而非外部賬戶EOA,使得用戶恢復賬戶、預批次處理交易、自動化執行等功能的實現成為可能,同時多鏈錢包聚合的方式也能方便用戶對不同鏈上的資產進行統一管理;
②dappOS Network:一個去中心化網絡,幫助用戶自動執行錢包和跨鏈的相關操作,完成交易背後復雜地交互流程。
所以基於dappOS,未來可以更快捷的打造傻瓜dapp了。對於用戶來說也只需明確要幹什麼的意圖,而不必自己去執行操作,僅需一個簽名就能完成所有操作。