0x财经| 一文看懂ERC-4337賬戶抽象

文/Jake&Stake,BanklessDAO作者;譯/金色財經xiaozou

在OpenZeppelin最近的審計之後,ERC-4337的“Entry Point”合約在主網上線,你可以在身邊的EVM上使用帳戶抽象了。

但是什麼是帳戶抽象呢?為什麼賬戶抽像很重要?

首先,介紹一點背景知識。如今,以太坊上有兩種類型的賬戶:

  • 外部賬戶(EOA)。外部賬戶是以太坊用戶最熟悉的賬戶,它們被用於發送交易、與DeFi應用程序交互、或買賣NFT。 MetaMask、CoinBase和其他錢包應用程序等產品向用戶提供了可使用的EOA。這些帳戶發起交易,並擁有授權交易的私鑰(通過產生ECDSA簽名)。

  • 合約賬戶。這些是不受私鑰控制的智能合約賬戶。它們具有關聯代碼,當用戶發送有效的交易時,代碼將執行交易。合約賬戶不能自己發起交易。為了向區塊鏈寫入數據,必須簽署交易,而合約帳戶不能這樣做,因為它們沒有私鑰。

帳戶抽象的目的是不需要使用EOA發起交易,而是允許用戶使用合約帳戶執行交易,開啟帳戶的設計空間和可定制性。

用戶可以為他們的抽象帳戶實施任何授權邏輯。

  • 多重簽名

  • 非ECDSA驗證

  • 優化的隱私解決方案

想要提款限制?可以!

想要帳戶恢復以防丟失私鑰?可以!

想要使用你選擇的ERC20代幣支付交易?可以!

帳戶抽象概念至少在2017年就已經出現了,並且已經有了一些實現嘗試。

  • EIP-86

  • EIP-2938

  • EIP-3074

然而,上述每一個協議都需要共識改變,一些現有的關於可擴展性的共識層更新是優先事項(Danksharding)。因此,我們只有繼續沿著這個方向繼續走下去才能看到協議級別的帳戶抽象。

然而,EIP-4337(現在是ERC-4337)沒有共識層變化。相反,4337引入了一個智能合約系統和一個名為“UserOperations”的偽交易。

UserOperations

UserOperations由用戶提交到UserOperation內存池,並由“Bundlers”(捆綁者)收集到“捆綁交易”中。這些Bundlers可以是選擇處理這些交易的區塊提議者或區塊建設者。像Stackup、Alchemy、Biconomy、Blocknative、Etherspot和Candide Wallet這樣的實體已經進行了Bundlers的建設和部署。

捆綁交易被發送到名為“EntryPoint”的智能合約,該智能合約通過指定的智能合約錢包驗證每個UserOperation。這些錢包必須實現兩個功能:

  • validateUserOps(驗證UserOps)

  • execute(執行)

EntryPoint合約將調用每個智能合約錢包的validateUserOps來確定交易是否有效。智能合約可以隨心所欲地實現這個功能,支持上述的一些可定制性。

或者,EntryPoint合約可以使用簽名聚合器。抽象帳戶信任此合約以創建UserOperation簽名,該合約還被Bundlers用於創建一個“aggregateSignsignature”(聚合簽名),它是多個UserOperation的簽名。這將眾多簽名轉換為一個值,壓縮驗證所需的數據。這對於佔用大部分數據成本的rollup來說尤其有用。

97LOeGmM1Qf2DhoSp81MAbhbKgHZIhz2A1qYArd9.pngEntryPoint合約將在“handleOps()”進程中使用該聚合器合約來驗證聚合簽名。

如果UserOperation有效,EntryPoint將調用抽象帳戶上的execute來執行所需操作。請注意,這些“抽象賬戶”就是智能合約。

a6Jw3ivAJLvKbSWpm7NQ0kyHEtC2xC2AnwFlwj9t.png

Entry Point合約

Entry Point合約只有一個,這就是為什麼Openzepplin的審計是重磅新聞。該合約將作為所有這些抽象帳戶的中央信任錨點。

Entry Point合約分離了交易(UserOp)驗證和執行的過程。該合約使用兩條路徑來驗證用戶操作。

  • handleOPs

  • handleAggregatedOps

以上兩個函數都將使用UserOp提供的參數創建一個帳戶(如無賬戶),並使用指定的抽象帳戶驗證UserOp。

最後,Entry Point合約將通過在帳戶上調用“execute”來執行UserOp,並將UserOp的calldata作為參數傳入。然後,該帳戶使用給定的參數執行所編程的任何操作。

HlHTJXhI3UQS2UinDmV7fibal6v1KSXNhdTT4u1w.png基於Entry Point的方法清晰地分離了驗證和執行過程,允許帳戶處理執行。所有這些使用戶能夠以一種可預測且精妙的方式與帳戶交互,而不需要帳戶所有者發起交易。

Paymasters

ERC還推出了“paymaster”概念。這是一個合約,將通過支付ETH來支持用戶的交易。作為交換,用戶通過向Paymaster發送預先指定的ERC-20代幣來支付他們的交易。

PZSHMczQQJcAn1YNetiJcFl0XMYbQbBrB6SWN1sx.png以上是對ERC-4337細節的綜述。還有很多很酷的細節,我們沒有時間進行討論,比如:模擬、捆綁規範和首次帳戶創建等。

結論

對以太坊用戶來說,這是一個巨大的用戶體驗改進。 dApp可以支付用戶的gas費,這對非加密原生用戶來說是一個很好的進入加密世界的工具,交易可以批量處理(不再有“10次點擊交易”),還有“payment sessions”,這樣你就不再需要批准每一筆交易了。

帳戶抽象可以提高隱私工具的效用,允許用戶使用他們想要的任何代幣支付交易,並允許用戶與區塊鏈交互而無需處理私鑰。今天你若丟失了私鑰則意味著你的錢也丟失了。

而在一個賬戶抽象的世界裡,丟失私鑰並不意味著失去一切。

請特別注意圍繞Visa的興奮之情。他們的團隊通過使用pull-based交易和自我託管錢包,發布了一種自動支付的設計。對於那些希望使用區塊鏈進行經常性支付以補充服務的公司來說,這一直是一個巨大的問題。

以前,付款必須由付款人發起,但通過帳戶抽象,服務提供商可以為他們的服務收費,而無需你自己進行交易。就像自動支付信用卡賬單一樣。帳戶甚至可以被編程為在任何時間內接收發票,因此你可以設置訂閱服務的時間限制。

錢包可以進行配置,這樣你就可以有備份賬戶了,還可允許某些服務的更改。用戶甚至可以在不知情的情況下與區塊鏈進行交互。帳戶創建可以由帳戶發起人處理,所有用戶所要做的就是使用web2類型的用戶體驗來管理自己的錢包。

簡而言之,帳戶抽象為以太坊的安全性和去中心化增加了效用。這是個大工程,而我們才剛起步。

Total
0
Shares
Related Posts