賬戶抽象目前仍處於早期階段,採用率較低,許多Layer 2 尚未支持賬戶抽象,這些限制增加了用戶的學習成本和使用成本。

賬戶抽象錢包通過引入一層代理機制,旨在弱化個人錢包的准入門檻,同時提供更簡單易用的賬戶體系。它以智能合約作為錢包的載體,並在用戶與智能合約之間加入代理方,代理方幫助用戶完成與區塊鏈的交互過程。這樣,用戶可以使用傳統的賬戶體系(如郵件、手機等)進行操作,無需直接接觸私鑰助記詞等複雜概念。

筆者認為,在賬戶抽像中,安全性是至關重要的。由於區塊鏈交易不可逆和不可篡改的特性,一旦用戶的賬戶被攻擊,就可能造成不可挽回的損失。因此,在設計賬戶抽象錢包時,必須考慮到安全性的方方面面,包括賬戶的管理和使用、私鑰的存儲和保護、交易的確認和授權等等。

本期Bing Ventures研究旨在通過分析賬戶抽象錢包項目的安全邏輯與漏洞,探討如何平衡用戶體驗與安全,思考錢包抽象方案的未來發展方向。

賬戶抽象錢包的安全邏輯

以太坊的賬戶抽象領域存在著多個技術改進和標準化倡議,如EIP-4337等。這些提案推動了賬戶抽象錢包項目的發展和統一,為用戶提供了更一致和可靠的使用體驗。賬戶抽象的發展主線是通過ERC-4337提供一種不需要共識層協議改變的方法來實現允許頂層以太坊交易由合約而非外部擁有賬戶(EOA)發起的功能。它通過在更高層的系統中復制交易mempool的功能,實現用戶操作的驗證和打包,並作為“bundle transaction”包含在以太坊區塊中。

ERC-4337的目標是實現錢包的靈活性和可升級性,包括多籤和社交恢復等功能,以及更高效和簡化的簽名算法和後量子安全的簽名算法。賬戶抽象錢包的發展主線還包括對錢包驗證邏輯的靈活性,可以添加任意簽名和nonce驗證邏輯,並支持錢包的升級。具體的安全邏輯包括:

  • 驗證邏輯:賬戶抽象錢包通過驗證邏輯(如簽名和非cesium比較算法)確保用戶操作的合法性和安全性。
  • 入口點控制:為了保護錢包免受攻擊,賬戶抽象錢包將復雜的智能合約技巧放在入口點合約中,並通過限制只有信任的入口點才能觸發錢包的操作和費用支付。
  • 獨立的驗證和執行層:賬戶抽象錢包的驗證和執行分為兩個函數,分別處理用戶操作的驗證和執行步驟,從而提高安全性和靈活性。
  • 模擬執行和驗證:用戶操作的驗證可以通過模擬執行來檢查其合法性,確保其在實際添加到區塊中時具有相同的效果,從而防止潛在的DoS攻擊。

賬戶抽象錢包對於安全性和去中心化的重視是非常值得肯定的。通過採用多重簽名、私鑰存儲和保護等技術手段,這些錢包應用致力於保障用戶的資產安全和交易的可信度。然而,這些安全措施並非完全免疫於攻擊和漏洞,因此仍需要持續的研究和改進。目前市場的關注焦點仍然是技術範式本身,而非用戶體驗的真正需求。

賬戶抽象錢包的用戶體驗與安全
Source: Vitalik Buterin

抽象錢包的安全隱患

私鑰存儲是最常見的安全漏洞之一。賬戶抽象錢包需要確保用戶的私鑰存儲在安全的地方,並採取適當的措施保護私鑰不受未經授權的訪問。同時,網絡攻擊也是錢包抽像中的另一個關鍵問題。攻擊者可能會利用釣魚、惡意軟件或其他手段獲取用戶的私鑰,從而竊取用戶的數字資產。

錢包通過合約複製內存池對交易進行處理,用戶不再直接進行交易。用戶通過錢包將UserOperations發送到更高級別的內存池,而礦工或捆綁者負責打包並發送到Entry Point合約,並協調錢包CA的執行,確保適當的交易費用補償。這種方案通過限制只相信特定網關(Entry Point)發起的交易來保證錢包的安全性,並通過執行合約中的指令、支付Gas以及遞增Nonce等來完成錢包的操作。通過受信任的Entry Point發起,合約錢包可以執行各種指令動作和Gas支付等操作,從而提供了更高度可編程的功能。

這種方法與傳統的直接交易方式相比,將交易過程分成多個步驟,引入了額外的複雜性和開銷。相比於共識層協議更改的提案(如EIP-2938、EIP-3074),EIP-4337在不修改底層協議和事務類型的情況下實現了較大程度的賬戶抽象。然而,這也導致了更多的Gas消耗和可能的安全漏洞。此外,與現有錢包協議工作流的不兼容性也會限制採用。

針對以上安全性問題,錢包抽象方案可以採取多種措施來提高安全性,同時保持良好的用戶體驗。例如,一些方案採用多重簽名來確保交易的安全性。多重簽名意味著需要多個用戶的確認才能完成交易,這大大降低了攻擊者成功攻擊的可能性。此外,一些方案還採用硬件錢包來存儲用戶的私鑰,以提高安全性。硬件錢包通常採用物理隔離的方式來保護私鑰,從而防止私鑰被竊取。

賬戶抽象錢包的用戶體驗與安全
Source: Alchemy

用戶體驗和安全性之間的平衡

在賬戶抽象錢包設計中,安全性應被視為首要考慮因素。雖然提供良好的用戶體驗很重要,但如果安全性存在缺陷,用戶的資產可能會受到威脅。因此,錢包開發者應將安全性置於高度重視位置,採取嚴格的加密和身份驗證措施,確保用戶的私鑰和資產不易受到攻擊。那麼,如何在安全性和用戶體驗方面取得平衡呢?筆者認為至少要權衡以下幾點:

  1. 私鑰管理:賬戶抽象錢包需要安全地管理用戶的私鑰,以保護用戶的資產免受潛在的攻擊。這可以通過使用加密算法、硬件錢包和多重身份驗證等安全措施來實現。然而,過於嚴格的安全措施可能導致用戶體驗的降低,例如需要頻繁的身份驗證步驟。在這方面,錢包需要找到一個平衡點,以確保私鑰的安全性,同時提供簡便的身份驗證方式,使用戶能夠方便地訪問其資產。
  2. 交易確認和速度:賬戶抽象錢包需要提供及時的交易確認和快速的交易處理,以提供良好的用戶體驗。然而,在保證交易速度的同時,必須注意防止雙重支付和其他欺詐行為。錢包可以採用技術措施,例如零確認交易和AI自動風險評估,來平衡安全性和交易速度之間的關係,確保用戶的資產安全並提供快速的交易體驗。
  3. 多鏈支持:當前的趨勢是向多鏈發展。在考慮採用賬戶抽象時,需要考慮不同生態系統對AA的採納情況以及可能存在的差異,這會給不同鍊和虛擬機的AA實現帶來不確定性。如果你是應用程序開發者,並且考慮採用AA,那麼你需要考慮在多鏈之間實現互操作性所需的工作量。未來賬戶抽象錢包需要支持多個區塊鏈,以滿足用戶在不同鏈上的需求。然而,每個區塊鏈都有其獨特的安全性特點和用戶體驗要求。在平衡安全性和用戶體驗方面,錢包需要確保對每個鏈的安全性要求進行適當的滿足,同時提供一致且直觀的用戶界面,以便用戶可以輕鬆管理和交互不同鏈上的資產。
  4. 成本:鏈上交易的成本是限制應用開發的重要因素。即使我們假設大多數交易將在二層發生且費用將得到補貼,規模化部署和升級可能仍然是昂貴的。特別是,升級錢包現在需要升級底層智能合約,這可能引入新的漏洞並帶來高昂的費用。

賬戶抽象方案的未來

綜合考慮用戶體驗和安全性因素,以太坊的賬戶抽象錢包方案在目前的發展和趨勢上更具潛力。以太坊生態系統中的賬戶抽象方案,如zkSync、Fuse Network和zkSafe等,通過靈活、安全和易用的設計和實現,提供了更優質的用戶體驗。然而,對於以太坊賬戶抽象錢包方案也存在安全挑戰和擴展性問題,包括智能合約的安全性風險和麵對高交易負載時的擴展性挑戰。需要注意的是,賬戶抽象市場仍處於早期階段,採用率較低,因此需要創新和發展來推動市場的成熟和普及。

從短中期來看,賬戶抽象錢包通過引入無需許可的Bundler、Paymaster 和Signature Aggregator 公共端點,建立開放市場,讓用戶以最低費用獲取高質量的服務。能否快速、定制化地部署Bundler、Paymaster 和Signature Aggregator 將考驗錢包基礎設施服務商的能力。這些競爭將推動創新,提高安全性和用戶體驗。

同時,第三方基礎設施提供商(如Stackup)將開發模塊化的Bundler 和Paymaster,並逐步實現無需許可性。另外,開髮用於快速前端部署的腳手架工具迫在眉睫,讓開發人員能夠專注於業務邏輯的開發,如創建支持賬戶抽像功能的類似於ether.js 的dApp 開發標準庫,封裝諸如Web2 社交媒體賬戶和電子郵件創建錢包、UserOperations 的創建、簽名、發送和事件監聽、快速部署Paymaster 和Signature Aggregator 等功能。這些工具可以簡化開發者與不同錢包的集成過程。

從中長期來看,新的賬戶標準必然會出現,甚至有望將賬戶與智能合約錢包分離。這也意味著未來,賬戶抽象錢包市場中的競爭會更加激烈,功能同質化會越來越嚴重且技術壁壘會越來越低。未來的賬戶抽象錢包需要更激進的創新,包括無需許可的模塊化基礎設施、與現有服務的集成、dApp SDK 和獨立賬戶層等,從而實現更大的靈活性和用戶便利性。