帳戶抽象背後的EIP大盤點

作者:Vasa,OpenSea Pro共同創辦人;翻譯:金色財經xiaozou

本文我們來快速了解不同的EIP,是它們為我們帶來瞭如今的帳戶抽象。

1.為什麼我們需要帳戶抽象(AA)?

人們喜歡拋出這樣的問題:「我們如何為web3帶來下一批十億用戶?」有許多障礙需要克服,但其中最重要的就是使用者體驗。

下圖是對新使用者來說典型的使用者體驗過程。也要注意,如果你遺失的助記詞,是沒有辦法找回自己的資金。這對新用戶來說是一個巨大障礙。

vvFxw94g95EIvo2NuFwxQX9g5mTtJo2EvxwLJO2y.png

以下是一些我們可以做的事情來改善用戶體驗。我們可以:

– 創建無需助記詞的錢包。

-使用一個無需儲存ETH、無需使用ETH支付gas費的錢包。

-使用社交恢復找回錢包。

-在一筆交易中進行批次操作。

dE8KCPMN0cVxJwYU2lm5yt5B9g3GLhSxilFQWvfW.png

2、帳戶抽象類型

有兩種帳戶:外部帳戶(EOA)和合約帳戶。 EOA由私鑰控制,合約帳戶由合約代碼控制。

64lX5U5G6sNJZBjPvNiC827QJil9Zi8BpTNMeQ8Y.png

EOA可以向其他EOA或合約帳戶發起交易,然後這些帳戶可以執行它們的代碼。合約帳戶也可以將交易發送給其他合約帳戶,後者可以執行自己的代碼。

3.以太坊的早期:交易執行與驗證

當一筆交易被傳送到網路時,需要經過兩個步驟:驗證和執行。雖然執行的交易邏輯可以是任意的,但驗證部分卻是固定的。

驗證部分由EOA必用的單一固定演算法完成,即ECDSA簽章驗證。但是為什麼我們使用一個固定方法來驗證交易的有效性呢?如果未來因為量子運算,ECDSA簽章驗證不再可靠了怎麼辦?

如果我們讓驗證部分是開放的,那麼你就可以創建一個具有非常複雜的驗證演算法的交易,那麼,礦工/驗證者將不得不花費大量的資源來檢查該交易是否可以被包含進區塊內。

現在,請注意,礦工只獲得執行並包含交易的報酬,不獲得驗證報酬。因此,如果在花費了大量資源之後,礦工發現他們無法添加交易,那麼他們就浪費了資源,不會因此獲得任何報酬。因此,這可以用來對網路進行DDoS攻擊。這就是為什麼以太坊最開始使用的是固定的驗證演算法。

4.以太坊的早期:多簽採用問題

多重簽名錢包是一個有很多所有者帶有閾值的合約。如果你想發送一筆交易,你必須從所有所有者那裡獲得簽名,然後你才能發送該交易。

這支持了社交恢復等功能的實現,一旦你丟失私鑰,你可以有很多好友來幫助你恢復錢包。從以太坊的早期開始,多簽錢包可以提供的價值就已經顯而易見。因此,當時的以太坊開發團隊希望以太坊用戶使用多簽錢包。然而,這並沒有發生。

由於以太坊開發團隊設想用戶會使用多簽錢包,所以他們並沒有為ETH轉帳添加自動日誌,因為他們預計多簽錢包會記錄每一筆ETH轉帳。當時的交易所必須解析ETH轉帳交易,而不是解析日誌。

當有人試圖使用帶有ETH轉帳日誌的多簽錢包時,交易所是無法識別的,因為交易所並沒有解析日誌。因此,這個小小的假設最終讓多簽錢包的採用更難了。

5、EIP 86和1014:帳戶抽象化第一步

EIP-86旨在引入智慧合約錢包概念,稱為「轉發合約」。這些合約被設計為只接收來自「入口點」地址的交易,這些交易需要遵守特定格式。

現在,要建立一個智慧合約錢包,你需要事先有一些ETH來支付gas費。你可以去CEX弄一些ETH,但因為你的智慧合約錢包還沒有創建,所以你還不能向錢包發送ETH。

如果我們可以在智能合約創建之前以某種方式確切地知道合約地址,我們就可以將ETH發送到該地址,然後使用地址上的ETH創建智能合約錢包。

這就是EIP-1014引進的內容。它引入了CREATE2操作碼,可以讓你在創建智能合約之前確定合約地址。這是邁向帳戶抽象化的第一步。

最初的EIP-86要求對協議進行重大改變,因為協議的更改需要節點開發團隊之間的協作,並且需要經過大範圍審查,因此從未實現。而EIP-1014是在Constantinople硬分叉中實現的。

6、社區發展:Gnosis Safe、Argent Wallet、Gas Station網絡

在探討研究EIP時,社群已經著手製定各自的解決方案。

其中最引人注目的是2018年發表的Gnosis Safe。 Safe是一個支援用戶創建多簽錢包的智慧合約錢包,還支援用戶將多個操作批次處理到單一​​交易中。它還允許用戶使用ERC20代幣支付gas費。

另一個值得注意的是2019年發布的Argent錢包。 Argent智慧錢包支援用戶創建多簽錢包,也支援用戶使用ERC20代幣支付gas費。另外,它還能讓用戶使用社交恢復來找回他們的錢包。

2019年發布的Gas Station網路(GSN)是一個去中心化網絡,支援用戶使用ERC20代幣支付gas費。 GSN可與任何智能合約錢包一起使用。

7、EIP 2938—一個巨大的飛躍

從2018年開始,以太坊團隊將注意力轉向了向PoS(權益證明)的遷移,這無意中導致了研究團隊和節點開發團隊對EIP的評估和實施的重視程度的降低。

這項重心轉移為2020年EIP-2938的提出鋪平了道路,也就是在EIP-1014實施兩年後。

該提案背後的核心想法是引入智慧合約錢包,這些錢包被設計為專門接收特定類型的交易,它們可以透過程式設計確定交易的gas上限並製定任意驗證方法。

該提案引入了兩個新的操作碼來處理交易,並且正如前面所強調的那樣,包含這些核心更新是一個複雜的過程。

此外,關於如何實現重播保護,以及節點如何檢查這些新型交易的有效性,還有懸而未決的問題。雖然該提案沒有獲得太多的關注,但它確實為下個提案(EIP-3074)的到來鋪平了道路。

8、EIP-3074——高度通用的解決方案

該提案引入了兩個新的操作碼:AUTH和AUTHCALL。這個提議的不同之處在於,它支持外部帳戶(EOA)將控制權委託給合約。這些操作碼被指定用於「invoker」合約,這些合約有可能顯著增強任何EOA的功能。

該合約啟動的交易結構完全是任意的,便於輕鬆實現多重簽名、批次和援助購買、密鑰恢復以及更友好的CeFi存款等解決方案。由於其開放的性質,該提案作為一個高度通用的解決方案出現,能夠滿足廣泛用例。

另一方面,這項提案的中立立場也帶來了一些安全挑戰。更進一步的討論提出了一種更固執己見的AUTHCALL方法,以減輕相關風險。這項討論促使研究人員得出了一個更優化的解決方案,從而產生了EIP-4337。

9、EIP-4337-無需更改共識層協議的以太坊帳戶抽象

HQ5SxXOpxJLs0tzXo1IgTdGxAe5XHPNAIJiDKUMM.png

EIP-4337提出了一種機制,在不需要更改共識層協定的情況下,將帳戶抽象化引入以太坊。在此EIP下,使用者與以太坊網路的互動方式有所不同;使用者不會傳送交易,而是將UserOperation物件傳送到一個單獨的記憶體池。 Sender是發起使用者操作的帳戶合約。 Bundler收集這些操作,將它們打包到一個交易中,該交易觸發指定EntryPoint合約上的一個handleOps調用,以執行打包的操作。 Paymaster是贊助交易的實體,其詳細資訊包含在UserOperation中,用於費用處理。

Aggregator對聚合的簽章進行驗證,提高了安全性和效率。 Bundler或用戶端白名單支援入口點和Aggregator合約,控制互動並確保在以太坊網路上正確執行使用者操作,在不改變共識層的情況下與帳戶抽象的目標保持一致。

透過此流程部署的智慧合約錢包自主管理隨機數值和簽章驗證,提供了廣泛的靈活性。這種設計有助於創建能夠處理多重簽名和打包交易、社交恢復甚至使用ERC20代幣支付費用的智慧合約錢包。

像EIP-4337中提出的某種形式的帳戶抽象可能會在以太坊的中期未來實現,最初出現在新的L2解決方案中,最終進入以太坊L1,從而擴大用戶與以太坊互動的範圍。

10、L2——新前沿

在引入任何與帳戶抽象相關的EIP時,核心協議的更新是一個重大障礙。核心開發人員一直忙於ETH 2.0路線圖,這在很長一段時間內一直都是最高優先事項。

但是L2呢?與帶著技術債的以太坊L1不同,最近的L2鏈從一開始就擁有整合帳戶抽象的架構。

例如,StarkNet是一個ZK rollup,它創建了獨特的帳戶抽象。此外,以L1智能合約錢包而聞名的Argent在StarkNet上推出了ArgentX,嵌入了一個受EIP-4337影響很大的自訂帳戶抽象實現。這些舉措強調了以太坊區塊鏈帳戶抽象化的重要性和適用性。

Total
0
Shares
Related Posts