本文由塵埃科技整理編輯發布,請拖動至文章底部查看更多精彩內容


最近為了一個項目,又重新研究了一下賬戶抽象的概念,大家應該八成和我一樣,很可能已經閱讀了一些用於理解帳戶抽象的文章,並且其中99%關於帳戶抽象的內容都是垃圾,根本不能對我們的知識理解有任何幫助。


你發現幾乎所有的人都從描述EOA和智能合約之間的區別開始,並含糊地提到了用戶體驗的改進。他們未能解釋賬戶抽象實際上是什麼,而是專注於賬戶抽象的副產品。


今天我們整理了一份指南,涵蓋了整個思路,從賬戶抽像是什麼,到為什麼每個人都稱它為下一個大事件。



什麼是帳戶抽象?


我發現從帳戶抽像不是什麼開始解釋比較容易:

  • 支付用戶gas費

  • 原生多簽名

  • Web3auth類型的“社交登錄”


作為帳戶抽象實現的結果,你可以執行這些操作。


如果我可以把賬戶抽象重新命名得更直觀一些,那麼它將被稱為“可編程交易有效性”。



一般來說,帳戶抽像是一種以編程方式設置交易有效性條件的能力。


由Vitalik等人撰寫的EIP-4337表示:“實現帳戶抽象的關鍵目標是,允許用戶使用包含任意驗證邏輯的智能合約錢包,而不是EOA作為他們的主要賬戶。”


目前,在以太坊上,當且僅當滿足以下條件時,交易才有效:


1.有足夠的餘額支付gas。

2. nonce是正確的。

3.它具有有效的數字簽名。


但是,如果開發人員可以定義一組不同的交易有效條件呢?


你不能自動執行交易


  • 無狀態和有狀態的帳戶抽象


在我們繼續之前,有必要注意存在兩種類型的帳戶抽象:無狀態和有狀態。


無狀態=不依賴於外部狀態,沒有副作用。


有狀態=可以依賴於外部狀態,可以訪問鏈的狀態。



在有狀態的賬戶抽象實現中,定義有效性條件的智能合約可以訪問鏈的狀態。這樣做的問題是,一個條件在一個實例中是真的,在另一個實例中可能不是真的。實際上,這看起來就像一個節點發送了一個當前有效但之後就會失效的交易。例如,假設你想在區塊1000000處自動執行一筆交易。在區塊1000000處,你可以向mempool提交一個在當時有效的用戶操作。當bundler試圖將它放入下一個區塊時,它可能會因為區塊編號增加而無效。


接收節點不得不花費資源來驗證一些永遠不會出現在鏈上的東西,而且不能把發送交易的東西列入黑名單,因為它在發送的時候是有效的。


在ERC4337中,研究人員花了很多時間來研究如何避免這種情況。為此,該規範禁止使用特定的操作碼,如' blockNumber '。


通過無狀態帳戶抽象,你永遠不會冒更改有效性的風險——它是單調的。

  • Fuel的無狀態AA的實現


我們稍後將討論其他生態系統如何實現帳戶抽象。從Fuel開始,你將看到與為現有系統構建相比,從頭開始構建新系統與模塊化論述之間的對比。


Fuel使用謂詞實現了無狀態AA。謂詞只是一個可以使用UTXO的條件,是主函數返回布爾值的腳本。是該謂詞下的資產被解鎖,如果求值為true,則可以由調用者使用的純函數。謂詞擁有或控制UTXO。


注意:UTXO代表未花費的交易輸出。對UTXO的核心基本理解是,對於每筆交易,都會花費全部餘額或代幣數量。你發送給你的目標收件人的金額會轉給他們,其餘的會被銷毀,然後再次鑄造,從而產生新的未花費輸出。


關於Fuel謂詞的關鍵在於,你可以內省或檢查謂詞的輸入和輸出,這允許你達成協議,從而允許你建立訂單簿交易或在多方之間進行原子交換。


在交易層面,UTXO交易描述了交易的確切效果的子集。這部分效果可以在無狀態帳戶抽像中被設定為條件。 Fuel通過UTXO模型的設計決策實現了這一點。這使得系統能夠了解交易的輸入和輸出。在以太坊上,你只知道輸入的情況。有了Fuel,你可以用輸出來編寫邏輯,說明如果你提供X則Y。



你可以將代幣鎖定在具有可編程有效性的謂詞中,該謂詞表示:“如果將X數量的Y資產發送到某個特定地址,則這些代幣是可消費的。類似地,你可以有一些邏輯,說這個交易只有在X以一定的價格交換時才有效。這裡的問題不在於你在“發送”什麼。它已經被發送了。你看到的是交易的最終效果,在這種情況下,代幣已經被發送。


謂詞有效性


在作用域執行期間不會檢查謂詞。他們會在交易有效性時間被檢查。謂詞可以檢查交易的輸入是否具有特定的屬性,但它並不關心這些輸入是否是有效的。要使交易有效,它們必須是有效的輸入,但執行這種有效性的不是謂詞。


現在,作為衡量它們的一種方式,Fuel謂詞受到字節數的限制。在未來,該團隊將使用gas來約束謂詞。這使得通常需要循環的自定義哈希和簽名驗證等密碼學成為可能。


  • Fuel實施的好處


注意:如果你想繼續了解AA可以做什麼,請跳過本節


UTXO自省


在比特幣和以太坊以及使用類似實現的協議上,你不能自省交易。這意味著你不能自省交易的支出,也不能基於輸出以編程方式設置要執行的操作。


在其核心,Fuel的AA實現為開發人員和用戶提供了更多的靈活性,因為這些不是在協議級別上編碼的東西。 Fuel的帳戶抽象允許開發人員在應用層面定義自定義驗證方案。



Fuel Labs團隊有一個以太坊私鑰的EC恢復示例。如果你想要針對不同曲線的EC Recover,開發人員可以在應用層編寫一個!


EC RECOVER:當向以太坊網絡發送交易時,你必須使用你的私鑰簽署此交易。 EC Recover正將驗證簽名的功能轉移到智能合約中,而不是只有以太坊節點才能做到這一點。有了它,你可以驗證更多的東西,而不僅僅是交易簽名本身。


無狀態膨脹


無狀態帳戶抽像不會使狀態膨脹(那麼多),因為即使它被花費了,它也永遠不會進入區塊鏈狀態,只會進入歷史記錄。


對於謂詞,沒有合約、狀態或存儲。謂詞最初沒有狀態,如果有人代表謂詞消費,則只能獲得一個數據庫條目,僅用於UTXO而不是狀態樹。



其他生態系統是如何進行帳戶抽象的


像計算機科學中的大多數事情一樣,帳戶抽象可以以無數種方式實現。沒有一種實現是整個行業的標準。


以太坊


EIP-2938是一個初始EIP,允許合約成為支付費用和啟動交易執行的最高級別賬戶。其實施圍繞著引入一個新的EVM操作碼來發出有效性信號,以通過執行任意EVM字節碼來擴展交易條件。該提案沒有納入協議,因為開發人員正忙於合併等其他變更,不能冒險進行如此大規模的協議變更。


ERC-4337是第一個不需要改變核心協議就能實現以太坊賬戶抽象的賬戶抽象提議/標準。它通過將交易驗證移出協議本身,並將其移到更高的級別—具有特殊“入口點”的智能合約級別來實現這一點。


在以太坊上,EOA是以太坊上的帳戶,其功能被硬編碼到協議中。它定義了他們如何支付gas,如何簽署交易,如何使用nonce等等。這個標準擺脫了EOA給我們帶來的賬戶硬編碼性質。


Starknet


Starknet是以太坊上的zk-rollup。 Starkware為以太坊實現了EIP-4337模型的修改版本。


zkSync


zkSync是以太坊上的zk-rollup。 zkSync實現了EIP-4337的修改版本。


Biconomy AA


Biconomy是一個開發人員工具平台,專注於以太坊生態系統的基礎設施和工具。 Biconomy實現了EIP-4337的修改版本,並提供了一些功能,比如作為SDK的一部分為用戶支付gas費。


模塊化設計

模塊化的理念不是設計一個與另一個系統緊密耦合的系統,以允許更大的靈活性。 Fuel對賬戶抽象的實現就是這種精神的一種體現。 Fuel的帳戶抽象實現提供了更高的靈活性和高度可定制的環境,開發人員可以在應用層面上定義有效性條件,而不需要依賴Fuel協議的支持。


因為Fuel不是專門為以太坊或任何其他系統構建的,所以Fuel的實現不受其他系統的拖累,有創新的空間。


zkSync、Starkware和Biconomy都實現了EIP-4337的修改版本,而Fuel實現了更獨特和高性能的帳戶抽象。由於Fuel將作為一個rollup部署在以太坊上,因此從某些方面來說,以太坊已經有了賬戶抽象。


你可以用帳戶抽像做什麼


你所看到的正在構建的新體驗是通過帳戶抽象而不是帳戶抽象本身實現的功能。像為用戶提供gas費贊助和Web3Auth之類的東西都是建立在帳戶抽象之上的應用層事物。通過帳戶抽象的核心機制:以編程方式設置tx的有效性條件的能力,這些事情本質上是可以實現的。


建立在帳戶抽象之上的例子:


  • Web3auth

  • 為其他用戶支付gas費

  • 自由簽名驗證方案

  • 檢查多簽名(原生多簽名)


利用了Fuel賬戶抽象的項目:


  • Authsome-無錢包登錄系統。這個錢包會被用作類似於Web3Auth的可插拔認證基礎設施的基礎。

  • Thunder-Fuel上的一個NFT市場,可以通過一次點擊批量執行交易。

  • Poolshark-用於定向流動性的協議。 Poolshark使用Fuel的賬戶抽象與匯集流動性來匹配條件訂單,以提高可及性並減少高級交易者的費用。

用戶體驗改進


  • 錢包的社交恢復

  • 批量交易

  • 應用程序可以為用戶交易的gas付費

  • 使用來自不同生態系統(或相同的,使用不同簽名方案)的錢包

  • 無錢包web3登錄

  • 用戶不需要在“常規”錢包中使用ETH來發起交易

  • 能夠把100%的資金放在一個multisig並直接從那裡發起交易

解鎖新應用


事實是我們還不完全知道哪些新類型的應用程序可以被解鎖(目前),但我們可以開始對現有應用程序的用戶體驗進行大規模改進,這是一個很好的開始。


幾年前,區塊鏈的用戶體驗問題是,世界上大多數人在財務上完全無法接觸到它們。隨著第2層的不斷發展和擴散,我們到達了一個新的領域:用戶體驗。


突然之間,我們可以將費用降低到足夠低,使區塊鏈可用,但應用程序的UX需要更加令人愉快和強大。在下一個週期中,我預計更多的團隊將專注於支持帳戶抽象的UX改進和流程。這將是為web3的託管屬性帶來類似web2的體驗所需的另一個工具。

信息來源自substack ,略有修改,作者cami

塵埃科技

看牆外更多信息,推特賬號指路「Allrecode」


為Web3從業者建立內部鏈接,了解「重構研究院」

“商務合作”、“內容轉載”請直接在後台回復關鍵字


更多DAO、Web3、NFT、Metaverse

專業研究請關注塵埃科技旗下「Fastdaily」

Web3知識點、乾貨類內容

請關注塵埃科技旗下「Allrecode重構」