支付商大廠放大招:Alchemy新發布的模塊化账戶會為Web3引流嗎?

2024-02-23 17:02:17

原文來自 Alchemy 的《 Hello, Modular Account 》,由 Odaily 星球日報 jk 編譯。

Alchemy 宣布推出 模塊化账戶 ,這是一個全新的、從零开始的合約账戶實現,為 ERC-4337 和 ERC-6900 兼容性而設計。模塊化账戶為在以太坊L2上構建的开發者提供企業級安全性、業內最佳成本以及強大的账戶可擴展性。

立即开始使用 模塊化账戶,並繼續閱讀以了解更多信息。

為什么選擇合約账戶

過去幾年,Web3生態系統經歷了前所未有的增長,但我們的生態系統擴展仍然存在一個最為頑固的障礙:

糟糕的用戶體驗。

想象一下,嘗試讓一個沒有任何區塊鏈經驗的普通人了解熱錢包或冷錢包、私鑰、Gas、授權、隨機數等各種細節。

現在,為了真正理解問題,讓我們更進一步,描繪一下加密貨幣原住民已經習以為常的用戶體驗,如果應用到現實生活場景中會是什么樣子:

想象一下這樣的世界,你必須要為你在商店購买的每個物品籤名,失去你的銀行卡密碼意味着你失去所有的账戶資金,以及你購买任何東西以後都永久無法撤銷。

幸運的是,我們有一個解決方案來解开行業內糟糕用戶體驗所造成的困惑——账戶抽象化。 账戶抽象化側重於使用智能合約账戶(或通俗地稱為智能账戶),而不是外部擁有的账戶(EOA),將交易和活動管理在區塊鏈上轉移到一個更加適應性強的地方。

外部擁有的账戶與智能合約账戶的區別簡介

通過使用智能账戶而不是 EOA,你正在“抽象化”到一個更具多功能性的參與者來處理區塊鏈上的交易和活動。

智能账戶在其功能上比 EOA 擁有無限的靈活性。每個智能账戶都可以在其代碼中定義不同的規則和配置。

我們通過互聯網的成熟過程中出現的抽象化看到,越來越復雜的原語被層疊到基礎設施堆棧中,導致了今天的現代網絡應用。這種將技術復雜功能打包成良好定義的模塊的做法,大大簡化了世界各地網民的最終用戶體驗。

為了進一步說明抽象化,我們在下面提供了一個簡單的例子:

電子郵件抽象化示例,動態郵件讓你可以定時發送、定制化信息、使用共同账戶和 MFA 等

顯然,我們在Web3的關鍵十字路口,構建更好的用戶體驗對於吸引下一波大量用戶至關重要。

從單點故障和資產托管問題到簡單地減少一個全新用戶开始的巨大阻力,我們必須朝着抽象化這些復雜性並推動所有用戶體驗更加流暢的未來前進。

為什么選擇模塊化合約账戶

顯然,智能账戶是必需的,並且可以在其中構建無限的改進。不同的账戶實現將不可避免地共享許多邏輯組件,如账戶恢復、多籤名支持和密鑰權限。這些組件的每一次新實現都會為實施它們的账戶引入新的安全風險。

相反,正如今天流行的加密庫所做的那樣,可以對模塊化組件進行加固並最大限度地重用,以避免許多團隊獨立編寫復雜的账戶代碼。正如安全格言所說: 不要自己實現加密 ——這也適用於账戶邏輯。這些組件可以被設計為插件,账戶可以互換地安裝和交互這些插件,以添加所需的功能。

一旦多個账戶开始使用多個插件——如 ERC-6900 所定義——就減少了對鏈上账戶實現的供應商鎖定。用戶被保護免受單點故障的影響,如果需要或希望,可以將他們的账戶更新到不同的實現,同時通過安裝在账戶上的插件,保持他們現有功能的大部分。

在這兩大支柱—— 可重用性和互操作性上,开發者可以利用模塊化账戶和插件的开放生態系統,通過在账戶功能和鏈上用戶體驗上的累積進展,加速开發。

介紹模塊化账戶

模塊化账戶

Alchemy 的模塊化账戶是一種企業級账戶,旨在隨着用戶規模擴大而擴展,並且通過账戶抽象化生態系統的持續發展保持未來的兼容性。

它具有可擴展性和強大的安全模型,以確保無需信任的、流暢的用戶體驗。我們發布模塊化账戶時附帶了兩個插件,這兩個插件促進了顯著的用戶體驗和安全性提升:多所有者插件和會話密鑰插件,以及提供了 SDK 支持,以簡化集成和开發。模塊化账戶v1.0 與 ERC-4337 v 0.6 和 ERC-6900 v 0.7 兼容。

我們很高興以寬松的开源許可證發布模塊化账戶,並且在 建設和推廣有助於發展账戶抽象化生態系統的公共產品 方面保持積極態度。

模塊化账戶演示:言之有物(Worth of Words)

鏈上零知識證明詞語遊戲

一個突出展示模塊化账戶提供的強大用戶體驗和安全特性的例子是我們構建的遊戲——言之有物。言之有物(Worth of Words)是一款“Wordle Battle Royale”風格的詞語遊戲,玩家相互競爭,猜測他們的祕密詞語。這款遊戲利用以下特點,提供類似Web2的遊戲體驗:

  • 使用會話密鑰插件的模塊化账戶,用戶只需籤名一次即可啓動新遊戲,然後在遊戲過程中安全地允許瀏覽器代表他們籤名交易,以實現無交易體驗。

  • ERC-4337 Gas 管理器,從用戶體驗中抽象出 Gas

  • Alchemy 的 Rundler,將 UserOperations 中繼到底層網絡。

  • 零知識證明,隱藏鏈上的詞語。

在這裏 了解更多關於言之有物的信息。

注:言之有物是 Odaily 編者的翻譯,並非官方譯名。

技術深入解析

模塊化账戶技術深度探討圖表

模塊化账戶使用 UUPSUpgradeable 代理模式,插件是單例合約。

模塊化账戶的初次發布包括多個組件:

核心账戶

基礎账戶支持核心账戶抽象化功能,包括 Gas 抽象和批量執行。其特性包括支持:

- ERC-4337 ,用於抗審查的账戶抽象化。

- ERC-165 ,用於標准接口檢測。

- UUPSUpgradeable,用於账戶可升級性,配合 ERC-7201 實現安全存儲衝突抗性升級。

- 由插件觸發執行,當調用源自允許的插件時,按照账戶的上下文執行邏輯。

- 安裝和卸載任何兼容 ERC-6900 的插件,不僅限於 Alchemy 的。

- 查看函數,以獲取账戶的插件配置,包括已安裝的執行函數、驗證函數和鉤子。

- 插件執行的強順序保證。

- 接收 ERC-721、ERC-777 和 ERC-1155 代幣。如果沒有代幣接收器實現,合約账戶不能通過 OpenZeppelin 標准化的`safeTransfer`方法接收數字資產。

账戶工廠

生成新模塊化账戶實例的账戶工廠合約。這些參數可以由用戶指定,並用於提供一個確定性地址。使用 CREATE 2 通過組合提供的鹽和账戶指定的所有者,為用戶生成反事實地址。

在生產中,我們預計某些用戶將被分配用於在反事實部署到其分配地址之前接收資產的地址。

账戶插件

初始發布包括兩個兼容 ERC-6900 的 插件

多所有者插件

多所有者插件支持一個或多個 EOA 账戶或符合 ERC-1271 標准的合約作為账戶的所有者。該插件:

- 支持 ECDSA 籤名驗證(標准 EOA 籤名驗證)。

- 支持 ERC-1271 籤名驗證(標准合約所有者籤名驗證)。

- 支持多個平等所有者,這些所有者對账戶有相同的根訪問權限。

- 實現 EIP-712 ,允許客戶端以結構化和可讀的格式籤名提示。

- 向模塊化账戶的原生函數添加用戶操作和運行時驗證功能,包括:

- installPlugin 和 uninstallPlugin

- upgradeToAndCall

- execute 和 executeBatch

會話密鑰插件

會話密鑰插件允許添加會話密鑰,代表账戶在預設規則下進行各種有限的操作。它們在提供鏈上安全防護的同時,改善用戶體驗,實現如無交易體驗和账戶自動化等行為。會話密鑰僅在 UserOperation 上下文中使用。該插件支持:

- 密鑰輪換,可以在保持權限不變的情況下更新密鑰。

- 有效期/時間範圍規則,限制會話密鑰訪問的指定時間範圍。

- 外部合約地址限制,限制會話密鑰能夠調用的外部合約地址。這種限制可能是允許列表、拒絕列表或兩者都不是。

- 外部合約方法限制,限制會話密鑰能夠調用的外部合約方法。

- ERC-20 支出限制(對於一個密鑰的總額,或按間隔刷新)。

- ETH/原生代幣支出限制(對於一個密鑰的總額,或按間隔刷新)。

- Gas 支出限制(對於一個密鑰的總額,或按間隔刷新)。默認情況下,不設置限制,有權限進行任何操作的會話密鑰可以消耗無限量的 Gas。

- ERC-721 權限,可以通過合約方法限制(例如,允許 safeTransferFrom(address, address, uint 256))以及地址限制來實現。

- 默認內部調用僅限定位。如果會話密鑰權限插件安裝時沒有初始指定外部調用限制,所有外部調用將默認被禁止。

- 需要支付主規則,會話密鑰只能在使用特定支付主地址時用於驗證用戶操作。這是防止會話密鑰在 Gas 上消費您的原生代幣的另一種方式,而不是 Gas 限制。

账戶庫

账戶庫支持通過實現特定功能的可重用代碼來實現模塊化账戶和插件。

數據結構

  • LinkedListSetLib 實現了一個“鏈表集合”,其中元素通過一個元素到下一個元素的映射來保存。這允許進行 O( 1) 的添加、移除和包含操作,同時保持鏈上集合的可枚舉性。這種設置要求集合防止添加重復值,防止添加零值,並維護一個特殊值作為“哨兵”,用來標識列表的开始和結束。為了實現這一點,用戶可用的數據大小被減少到最多 bytes 30 。

  • 除了支持這些高效操作外,庫還支持一種不需要前驅知識的較不高效的移除操作,該操作遍歷鏈表以找到要移除的元素。

  • 此外,條目還支持“標志”——這可以被認為是附加到條目上的額外值,類似於集合內每個元素的子映射。有 14 位可用於標志值,最低的兩位保留給哨兵實現和列表遍歷優化。

  • AssociatedLinkedListSetLib 幾乎與 LinkedListSetLib 完全相同,除了它的條目保存在與账戶關聯的存儲中。這個庫旨在被插件使用,如果插件希望在 ERC-4337 驗證期間訪問或更新這些值,它們必須將值保存在與账戶關聯的存儲中。

  • CountableLinkedListSetLib 擴展了 LinkedListSetLib,允許多次添加一個值。它使用 14 個可用標志位中的上字節(8 位)來跟蹤這一點,並支持多達 256 次地添加一個條目。這個庫不存在保存在關聯存儲中的版本。

  • 這些庫使用的通用類型和常量在 Constants.sol 中定義。

  • PluginStorageLib 是一個更低級的庫,提供了使用不同數量的輸入數據作為鍵在地址關聯存儲中獲取存儲槽的實用程序。

類型和轉換工具

  • FunctionReferenceLib 提供了一個用戶定義的值類型,旨在保存插件地址和函數 id,用於調用插件函數。

  • CastLib 提供了用於在各種數據類型之間進行轉換和轉換的實用函數,包括集合值、函數指針和地址。

審計

我們採取了多階段的安全策略,Spearbit 在开發過程早期對模塊化账戶協議進行了安全審查,隨後 Spearbit 和 Quantstamp 獨立地對當前版本的協議進行了審計。在任一審計中都未發現重大漏洞。

報告可分別從 Spearbit Quantstamp 獲取。我們很高興能與 Spearbit 和 Quantstamp 合作,為希望在模塊化账戶和更廣泛的 ERC-6900 生態系統上开發的團隊提供優惠的費率和服務。

安全與權限模型

讓我們探索四個關鍵領域,突出顯示模塊化账戶的安全和權限模型。

插件清單

插件清單功能是 ERC-6900 和模塊化账戶的一個關鍵方面,其靈感來自 Android OS 權限系統。所有 ERC-6900 插件都需要提供一個列表,列出插件運行所需的執行函數、鉤子和權限請求。這可以在账戶安裝插件並授予這些請求的權限之前顯示給用戶。這在安裝時確定權限,防止任何意外的運行時行為。

Call 與 DelegateCall

模塊化账戶只執行對插件的調用(call),而不是代理調用(delegatecall)。代理調用在账戶上下文中執行,沒有審計插件代碼,很難限制惡意插件可能造成的損害。

模塊化账戶調用流程

下面的圖表展示了通過模塊化账戶的調用路徑。左側的流程是來自 ERC-4337 入口點的調用的 UserOperation 路徑,右側的流程是來自所有其他來源的調用的運行時路徑,包括其他合約。

可升級性

模塊化账戶在升級和存儲衝突方面被設計為具有對於未來的兼容性。具體來說:

  • 感謝 EIP-7201 初始化存儲模式的使用,在升級到模塊化账戶以及從模塊化账戶升級時,不存在存儲衝突的風險。

  • 模塊化账戶的次要版本更改將使用繼承的存儲模式來防止存儲衝突,而模塊化账戶的主要版本發布將使用不同的存儲槽。

基准測試

模塊化账戶在以太坊卷積(Rollups)上為最終用戶提供了業內最佳的成本,包括 Arbitrum、Base 和 Optimism。隨着我們繼續推動引導主流用戶上鏈所需的 三個核心轉變 ,模塊化账戶旨在為以 rollup 為中心的未來提供一個經過優化的基礎原語。

具體來說, 它經常犧牲調用數據使用量以增加執行成本,以便為最終用戶提供更便宜的體驗。 此外,作為一個持久的用戶账戶,模塊化账戶包含了無需許可的互操作使用的安全措施,超越了當今流行的每個應用內嵌账戶範式,以幫助推動一個無形和互操作的未來。該账戶針對日常使用進行了大量優化,某些安全特性在部署時增加了一些執行开銷。

為了測量成本,我們為智能合約账戶構建了一個全面的測試套件,用於准確的基於交易的費用測量和費用計算。您可以在 這裏 找到倉庫、完整方法論和完整結果。以下結果是在 2024 年 2 月 18 日在 Optimism 上進行的基准測試。

*LightAccount 不是模塊化账戶,添加它是為了參考業內最佳的智能账戶。

**ERC-6900 會話密鑰插件相比其他產品提供了更加強大的安全控制。

請注意,在針對 rollup 的優化與針對第一層以太坊和側鏈的優化之間存在反向權衡。這些基准測試捕捉了在 rollup 生態系統中測量的性能。

漏洞賞金計劃

隨着模塊化账戶的發布,我們還宣布公开啓動 Alchemy 的付費漏洞賞金計劃。漏洞賞金是安全工具箱的關鍵組成部分,我們很高興與生態系統安全研究人員合作並獎勵他們發現加固整體協議的機會。

從今天起,任何人都可以通過我們的 HackerOne 托管漏洞賞金平臺,報告模塊化账戶發布中任何包的漏洞。要了解有關 漏洞賞金計劃 的更多信息,請參見 HackerOne 上的概覽。

模塊化账戶 SDK & PluginGen

Alchemy 的 AccountKit ,包含 aa-sdk,是最廣泛使用的智能账戶开發开發者 SDK,它抽象了在智能账戶上構建的开銷和復雜性。從今天起,AccountKit 將為模塊化账戶提供一流的支持,包括多所有者和會話密鑰插件。 SDK 的 3.0 版本 大大簡化了構建和提交 UserOperations、管理反事實地址、升級到模塊化账戶以及使用高級功能如用戶會話的开銷。

此外,此次發布還包括 PluginGen ,它可以自動生成用於使用和利用插件的客戶端類,從插件清單中獲取任何 ERC-6900 插件的信息。這使得基於用戶账戶狀態的客戶端編程用戶體驗成為可能。

使用 PluginGen 工具就像在 aa-sdk 中添加描述你的插件的 PluginGenConfig,然後運行`yarn generate`一樣簡單:

展望未來

模塊化账戶生態系統迭代

我們期待繼續與 ERC-6900 社區合作,开發一個健壯的無需許可的插件和账戶生態系統。我們興奮地追求一些更廣泛的想法,包括:

- 基於安全模型構建,創建應用級權限概念作為插件級權限的組合。類比到web2,當安裝像 WhatsApp 這樣的應用程序時,操作系統會請求一組權限,這組權限是應用程序,如 WhatsApp,為了正確執行所需的特權,例如位置、相機、麥克風、聯系人等。

鑑於現有圍繞插件基的權限的安全模型,我們想探索這如何擴展到應用級權限集。

- 繼續迭代,朝着最大程度硬化、最大程度優化的账戶實現前進。我們興奮地探索簡化和優化操作的技術,並迭代數據模型以提高理解並降低最終用戶成本。

- 與團隊合作开發一個加速的互操作插件生態系統。我們已經看到幾個开發團隊开始工作,我們期待看到生態系統能夠提出什么用例。

通過設計良好的插件,可以在用戶體驗和用戶安全性上實現巨大的解鎖,這些都可以加到現有账戶上。

- 為下一波挑战貢獻研發力量。需要落實很多匯聚的线索,以便能夠安全地將 10 億用戶引入鏈上。我們期待看到的账戶空間的兩個方面是跨鏈互操作性和用戶隱私。這些進步很大程度上基於推動零知識工程的極限,並將這些原語納入解決方案,如 密鑰存儲鏈 ,以幫助管理跨多個鏈部署的账戶配置。

利用智能账戶和L2降低用戶成本

我們聽到的關於智能账戶最常見的批評之一是成本。隨着智能账戶生態系統的發展,我們很高興能夠與社區合作,證明實際上,智能账戶比今天的 EOA 為最終用戶提供了更便宜的交易。

已經有幾種研究方法來降低這些成本,但我們在 2024 年密切關注的一些方法包括:

數據調用壓縮(Calldata compression)

如上所述,L2的交易成本主要是L1數據可用性成本,而不是L2執行成本。因此,如果能通過增加執行成本來減少數據調用大小,通常可以降低總體成本。以太坊基金會的 WAX 小組 研究並原型化了 UserOperation 壓縮,並取得了一些相當引人注目的結果,我們很高興看到這種技術被採納以提高操作效率。

籤名聚合(Signature aggregation)

實踐中, 籤名聚合 是一種通過將一束籤名聚合為單一固定开銷來降低數據可用性成本的類似技術。這裏的大多數討論都集中在 BLS 籤名 上,但實際上,這可以通過零知識證明擴展到其他籤名方案。我們很高興看到一些 ERC-6900 插件支持 BLS 籤名以及像 zk-R 1 或 zk-K 1 聚合的功能,以在非聚合橢圓曲线上獲得類似的結果。

Proto-Danksharding

隨着備受期待的 EIP-4844 作為 Dencun 硬叉的一部分落地,L2網絡將能夠使用 blob 空間發布L2數據調用,而不是將其存儲為L1數據調用。盡管估計各不相同, proto-Danksharding 預計將大幅降低L2s上的交易成本。

致謝

模塊化账戶的工作遠遠超出了 Alchemy 的範疇。首先,我們要感謝數十位在 ERC-6900 上工作和貢獻的开發者,他們推動了迭代,使开發者能夠安全地將 10 億用戶引入鏈上。

特別感謝以太坊基金會账戶抽象化團隊的 Yoav Weiss 和 Dror Tirosh,Circle 的可編程錢包團隊的 Huawei Gu、Daniel Lim、Zhiyu Zhang 和 Alokik Bhasin,以及 Decipher Global 的 Seungmin Jeon、Sangyeup Kim、Brynn Park 以及其他人員,他們在推進規範方面做出了非常有意義的努力。

此外,我們要感謝我們出色的審計團隊。 安全是處理合約账戶時的基本條件。 Spearbit 的 Gerard Persoon、Riley Holterhus、Blockdev 和 Christos Pap 以及 Quantstamp 的 Nikita Belenkov、Alejandro Padilla、Shih-Hung Wang 和 Ruben Koch 在評估和改進模塊化账戶的實施和架構方面非常勤勉。

我們還要感謝a16z crypto 的工程團隊,特別是 Daejun Park 和 Matt Gleason,對智能账戶的早期形式驗證會議以及使用模塊化账戶迭代作為 Halmos 測試標准——進一步改善了安全姿態和圍繞安全智能账戶的开發思維。

最後,我們要感謝整個模塊化账戶生態系統支持討論和討論,推動空間的發展。在與更廣泛社區合作時,經歷了許多早期迭代和架構提案,我們想特別提及 Safe、Biconomy、ZeroDev 和 Rhinestone 的人們,他們經常提出極好的觀點和建議。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

SUI新高之際,從用戶角度談談三大Move公鏈區別

11 月 14 日,SUI 升破 3.5 USDT,幣價再創歷史新高;Bitwise 將在瑞士證券...

星球日報
2 21分鐘前

Hack VC:模塊化是個錯誤嗎?以數據為依據審視以太坊的這一战略

撰文:Alex Pack 及 Alex Botte,Hack VC 合夥人 編譯:Yangz,Te...

TechubNews
2 21分鐘前

除了 TON, 哪些公鏈在爭奪 Telegram 用戶?數據表現如何?

作者:Stella L ( [email protected] ) 在 2024 年...

陀螺財經_Footprint_Analytics
2 21分鐘前

從 Beacon Chain 到 Beam Chain,速讀 Justin 的以太坊共識層新提案

撰文:Tia,Techub News 在昨日泰國 Devcon 的 Mainstage 中,以太坊...

TechubNews
2 22分鐘前

Tether新推資產代幣化平臺Hadron,為RWA打开增長窗口

@OdailyChina @web3_golem 11 月 14 日,穩定幣 USDT 發行商 T...

星球日報
2 22分鐘前

比特幣強勢上揚,如何使用累計期權產品助力布局市場|每周市場洞察回顧

11 月 13 日晚 8 點,矩陣之門( Matrixport )官方 YouTube 頻道直播中...

星球日報
2 22分鐘前