作者:@菠菜菠菜
錢包作爲進入加密世界的入口以及通行證在整個加密行業中有着不可替代的地位,使用錢包也是每一個想進入加密世界的人不可避免的一環,錢包的功能也從最初的純記账功能演化至如今的多鏈多場景使用功能。但目前錢包的使用門檻對於新用戶來說學習成本過高,這道門檻將許多想進入加密世界的人拒之門外,而錢包門檻的降低才可以爲整個加密世界帶來更多的新鮮血液以及生態的爆發,隨着 EIP-4337 账戶抽象提案的到來,账戶抽象錢包帶來的降低門檻是否會讓錢包進入下一個時代引爆加密世界的用戶爆發潮?
加密世界的知識門檻較高,人們普遍缺乏對區塊鏈以及錢包知識的認知,錢包現階段使用體驗復雜,存在着許多因素阻礙着新用戶的加入
現階段小白用戶使用錢包時會遇到一些痛點:使用錢包必須先有 Gas 費、需要尋找加密資產購买渠道、眼花繚亂的主網選擇以及錢包安全問題
以太坊上的錢包存在兩種不同類型的账戶即 EOA 外部擁有账戶(Externally Owned Accounts)和 CA 合約账戶(Contract Account),EOA 外部擁有账戶類型的錢包指由私鑰以及公鑰的密鑰對控制的錢包,不具備可編程功能。CA 合約账戶類型的錢包指以智能合約形式存在的錢包,合約账戶類型的錢包本身不是由私鑰控制也不存在私鑰,而是通過編寫代碼實現各種功能,但不能主動發起交易
兩種錢包账戶類型各有利弊以及局限性,EOA 外部擁有账戶只能按照以太坊規定的生成密鑰對的方法來生成,不具備可編程性,需要擁有 Gas 費才可以操作,私鑰丟失就無法找回,但相比 CA 合約账戶類型而言,雖然 CA 合約账戶類型可以自定義邏輯來實現更多功能的可能性,但是 CA 合約账戶類型無法主動發起交易需要由 EOA 外部擁有账戶來進行調用,並且生成 CA 合約账戶類型的錢包需要額外的成本,這兩種錢包账戶類型目前都無法解決錢包使用體驗復雜的問題
账戶抽象(Account Abstraction)是以太坊上一種待實現的錢包技術方案,其最終愿景是讓AA账戶抽象錢包結合 EOA 外部擁有账戶和 CA 合約账戶兩種账戶類型的特徵,使其合二爲一替代 EOA 來作爲主账戶存在,除了擁有 CA 的可編程性外還可以擺脫 EOA 的依賴主動發起交易
EIP-4337 提案將原本以太坊錢包交易流程中寫死在共識層中的【驗證交易機制】抽離出來交給 EIP-4337 的新機制處理,新機制的出現使得账戶抽象錢包實現了籤名方式的可自定義,並且帶來了更多應用場景
實現了账戶抽象的錢包應用可以讓用戶無需擁有 EOA 也可以使用特定的籤名方式發起交易來作爲主账戶使用,使得账戶抽象錢包的所有權以及籤名權解耦,账戶抽象錢包的 EOA 所有者账戶也僅僅是作爲所有者存在,不影響實際账戶抽象錢包的使用
EIP-4337 之所以能被以太坊選擇爲最終方案,首先是因爲 EIP-4337 不需要進行共識協議層的修改就可以實現账戶抽象,這就避免了不亞於類似從 POW 工作量證明機制轉換至 POS 權益證明機制這種龐大的共識層修改
在 EIP-4337 中账戶抽象錢包將【籤名驗證機制】交給了入口點合約來進行,這就使得账戶抽象錢包可以使用任意籤名形式的籤名機制,錢包开發者可以選擇相應場景的籤名形式去开發錢包產品
目前的账戶抽象錢包更像是一種智能合約錢包的新標准,還無法擺脫對於需要 EOA 作爲錢包擁有者的依賴。並且目前账戶抽象提案仍存在一些不足以及風險:智能合約風險、更高的 GAS、技術實現問題
文章速覽:
01/ 現階段小白用戶使用錢包的痛點是什么?
02/ 以太坊現有的錢包類型有哪些?
03/ 账戶抽象是什么?EIP-4337账戶抽象有哪些優點?
04/ 爲什么以太坊選擇了EIP-4337账戶抽象提案?
05/ EIP-4337账戶抽象錢包如何運作?與其他錢包账戶類型有什么不同?
06/ EIP-4337账戶抽象存在着哪些不足和風險?
現階段小白用戶
使用錢包的痛點是什么?
由於加密世界的知識門檻較高,人們普遍缺乏對區塊鏈以及錢包知識的認知,錢包現階段使用體驗復雜,並存在着許多因素阻礙着新用戶的加入。
痛點一:使用錢包必須先有 Gas 費
當一個小白用戶滿懷期待想體驗加密世界並下載了錢包准備大幹一番的時候,小白驚奇的發現錢包居然不能使用,因爲錢包裏面沒有公鏈原生通證(如以太坊的ETH)作爲 Gas 費,錢包無法進行任何操作,因爲錢包的每一次鏈上操作都需要礦工來打包操作並支付 Gas 費給礦工作爲辛苦費,這時小白就要开始尋找購买加密資產的渠道,而許多錢包產品並沒有提供出入金渠道,大多數小白的選擇可能就會是中心化交易所。
痛點二:加密資產購买渠道以及眼花繚亂的主網選擇
當小白用戶想購入加密資產時,他們可能會選擇有出入金渠道的錢包產品、中心化交易所、場外交易等渠道購入加密資產,但對於選擇中心化交易所和場外交易渠道的小白用戶來說,在中心化交易所購入資產後想要轉入錢包中的話小白用戶又會被選擇轉账的各種各樣的主網給搞暈了,學會選擇主網就需要一定的學習成本,稍不小心轉錯網絡處理起來極其繁瑣,如果是場外交易的話則十分具有風險,小白用戶極容易成爲騙子的詐騙對象。
痛點三:錢包安全問題
對於小白用戶來說,即便好不容易搞定了 Gas 費可以使用錢包進行交互了,但整個加密世界對於小白來說就是一片黑暗森林。小白用戶需要學習關於錢包的密碼學知識如私鑰公鑰等,還需要理解私鑰是什么並思考怎么確保私鑰的安全以及防範加密黑暗森林中的騙局,這些對於小白用戶來說學習成本大且很容易上當受騙,最重要的是私鑰一旦丟失或忘記就無法找回,不能像 Web2 應用找回密碼那樣重新找回,對於 Web2 用戶來說這是他們很難習慣的。
以太坊現有的錢包類型有哪些?
目前以太坊上的錢包存在兩種不同類型的账戶即 EOA 外部擁有账戶(Externally Owned Accounts)和 CA 合約账戶(Contract Account)。
EOA外部擁有账戶(Externally Owned Accounts)
EOA 外部擁有账戶類型的錢包指由私鑰以及公鑰的密鑰對控制的錢包,外部擁有錢包的作用基本只有接收、持有、發送 Token 和與智能合約進行交互的功能,不具備可編程功能,並且執行每一筆交易都需要支付 Gas 費。創建一個外部擁有账戶類型的錢包是無需成本的,但只能通過生成私鑰的方式創建。
CA 合約账戶(Contract Account)
CA 合約账戶類型的錢包指以智能合約形式存在的錢包,合約账戶類型的錢包本身不是由私鑰控制也不存在私鑰,而是通過編寫代碼實現各種功能,如 DeFi 協議、多籤錢包、保險櫃、水龍頭等等功能,常見的用處有多籤錢包,即需要多個外部擁有账戶錢包授權才可以進行交易的錢包,通常用於企業錢包管理。創建一個合約账戶錢包是需要消耗Gas費創建的,合約账戶錢包本身不能主動發起交易,而是需要外部擁有账戶錢包調用並支付 Gas 費而被動發起交易。
這兩種錢包账戶類型各有利弊以及局限性,EOA 外部擁有账戶只能按照以太坊規定的生成密鑰對的方法來生成,不具備可編程性,需要擁有 Gas 費才可以操作,私鑰丟失就無法找回,但相比 CA 合約账戶類型而言,雖然 CA 合約账戶類型可以自定義邏輯來實現更多功能的可能性,但是 CA 合約账戶類型無法主動發起交易需要由 EOA 外部擁有账戶來進行調用,並且生成 CA 合約账戶類型的錢包需要額外的成本,這兩種錢包账戶類型目前都無法解決錢包使用體驗復雜的問題。
账戶抽象是什么?
EIP-4337账戶抽象有哪些優點?
账戶抽象(Account Abstraction)是以太坊上一種待實現的錢包技術方案,其最終愿景是讓 AA 账戶抽象錢包結合 EOA 外部擁有账戶和 CA 合約账戶兩種账戶類型的特徵,使其合二爲一替代 EOA 來作爲主账戶存在,除了擁有 CA 的可編程性外還可以擺脫 EOA 的依賴主動發起交易。
本處討論的账戶抽象(Account Abstraction)指由 Vitalik 提出的以太坊 EIP-4337 提案,該提案將原本以太坊錢包交易流程中寫死在共識層中的【驗證交易機制】抽離出來交給 EIP-4337 的新機制處理,新機制的出現使得账戶抽象錢包實現了籤名方式的可自定義,並且帶來了更多應用場景如:代付 Gas、聚合籤名、隱私保護等。
EIP-4337 提案實現後的账戶抽象錢包可以不局限於 EOA 外部擁有账戶類型錢包使用的以太坊橢圓曲线數字籤名算法(ECDSA)密鑰對的籤名方式,錢包應用的开發者們可以將任意類型的籤名方案應用在账戶抽象錢包應用上使得用戶可以使用其他籤名方式發起交易,從而可以降低用戶的使用門檻。
實現了账戶抽象的錢包應用可以讓用戶無需擁有 EOA 也可以使用特定的籤名方式發起交易來作爲主账戶使用,使得账戶抽象錢包的所有權以及籤名權解耦,账戶抽象錢包的 EOA 所有者账戶也僅僅是作爲所有者存在,不影響實際账戶抽象錢包的使用。而所有權和籤名權的解耦使得錢包產品可以爲用戶提供社交恢復等手段,人們即便丟失了私鑰也不用擔心無法找回了。
由於账戶抽象錢包新機制帶來的可擴展性,先有 Gas 才能使用錢包的痛點也可以得到解決,账戶抽象錢包不僅可以允許第三方代付 Gas,還可以實現除原生代幣以外的資產支付 Gas 費,這將極大的降低小白用戶對於 Gas 費的使用門檻,在不久的將來似乎可以預見,账戶抽象帶來的更低門檻以及更多的自定義功能可能會引領錢包的一個新時代。
爲什么以太坊選擇了
EIP-4337 账戶抽象提案?
账戶抽象的討論自以太坊上线之時討論就沒有停止過,從最早的 EIP-101 到 EIP-3074 再到現在最新的EIP-4337,账戶抽象的方案已經迭代過好幾個版本,但由於大部分方案不成熟以及涉及到共識協議層的修改太復雜最終被擱置了。
從2015年至今經過了漫長的討論和迭代後,最終以太坊在 EIP-3074 和 EIP-4337 這兩個方案之間進行抉擇,如果說 EIP-4337 是讓 CA 智能合約账戶錢包可以像 EOA 那樣使用,那么 EIP-3074 就是讓 EOA 外部擁有账戶錢包可以擁有智能合約账戶的可編程功能,最終隨着以太坊創始人 Vitalik 公布的以太坊最新路线圖中,EIP-4337 被正式納入在 The Splurge(狂歡)階段中實施,這也讓 EIP-4337 成爲了账戶抽象的最終方案。
EIP-4337 之所以能被以太坊選擇爲最終方案,首先是因爲 EIP-4337 不需要進行共識協議層的修改就可以實現账戶抽象,這就避免了不亞於類似從 POW 工作量證明機制轉換至 POS 權益證明機制這種龐大的共識層修改,而 EIP-3074 涉及到共識層的改動,一旦出問題就需要使用硬分叉(hard fork)來解決問題,其次由於 EIP-3074 是讓 EOA 外部擁有账戶擁有智能合約账戶的特性,在籤名機制上依舊使用固定的 ECDSA 籤名,無法像 EIP-4337 那樣可以使用任意籤名方式,所以相比於 EIP-3074 來說,EIP-4337 似乎在錢包門檻的降低上更有優勢。
圖片來源:ethereum.cn翻譯
EIP-4337 账戶抽象錢包如何運作?
與其他錢包账戶類型有什么不同?
账戶抽象相比於之前的账戶類型引入了一些新角色以及機制:
錢包合約 (Wallet Contract):账戶抽象後的錢包智能合約,可以實現自定義的錢包邏輯。
入口點合約 (Entry Point Contract):與錢包合約進行溝通協調並負責處理驗證和執行用戶操作的合約。
用戶操作(UserOperations,uo):用戶發起的新鏈下交易形式,區別於以前的【交易事務Transaction, tx】。
捆綁者(Bundler):負責將用戶操作打包並傳遞給入口點合約的鏈下計算節點。
用戶操作內存池(UserOperation Mempool):一個專門用於堆積待執行用戶操作的內存池,獨立於交易事務內存池。
代付人(Paymaster):可選擇的第三方支付 Gas 的代付人合約账戶。
如果你不明白這些新名詞是什么,接下來我會用簡化版的流程圖來進行展示,首先我們先了解 EOA 外部擁有账戶類型的錢包的交易機制,EOA 外部擁有錢包需要籤署一個 ECDSA 籤名才可以發起交易。
圖片來源:https://medium.com/nethermind-eth/ethereum-wallets-today-and-tomorrow-eip-3074-vs-erc-4337-a7732b81efc8
從圖中可以看到 EOA 账戶類型的錢包發起一個交易的步驟爲:
用戶使用私鑰對交易信息進行 ECDSA 籤名產生一個帶有籤名的交易事務(Transaction, tx)
帶有籤名的交易事務會被發送到處理待執行事務的內存池中等待處理
礦工會在交易事務內存池中處理事務並驗證有效性
當驗證有效性爲有效時,交易事務會被納入區塊中,反正則廢棄交易事務
由於 CA 合約账戶類型沒有統一的交易流程標准,下圖爲某種依賴 Relayer 的智能合約錢包的交易流程,我們可以看到 CA 合約類型账戶的需要依靠一個 EOA 外部擁有账戶類型的錢包籤署 ECDSA 籤名來執行交易,並且 Relayer 這個角色可能會伴隨着中心化的風險。
圖片來源:https://medium.com/nethermind-eth/ethereum-wallets-today-and-tomorrow-eip-3074-vs-erc-4337-a7732b81efc8
從圖中可以看到某種 CA 合約账戶類型的錢包發起一個交易的步驟爲:
用戶使用私鑰對交易信息進行任意形式的籤名產生一個帶有籤名的交易信息(signed message)
帶有籤名的交易信息會被發送給負責傳達消息的節點 Relayer
Relayer 使用私鑰對帶有用戶籤名的交易信息進行 ECDSA 籤名形成一個交易事務
Relayer 將包含用戶交易信息的交易事務通過 Relayer 的 EOA 外部擁有账戶錢包發送給用戶的錢包智能合約進行執行
用戶的智能合約錢包執行操作並通過礦工驗證後上鏈納入區塊
接下來我們再來看 EIP-4337 账戶抽象後的錢包交易機制
圖片來源:https://medium.com/nethermind-eth/ethereum-wallets-today-and-tomorrow-eip-3074-vs-erc-4337-a7732b81efc8
從圖中可以看到账戶抽象後發起一個交易的步驟爲:
用戶發起一個錢包用戶操作,使用任意形式的私鑰對用戶操作進行籤名產生一個帶有籤名的用戶操作(UserOperations,uo)
帶有籤名的用戶操作會被發送到待執行用戶操作內存池等待處理
Bundler 將用戶操作內存池中的用戶操作進行打包處理成一個事務並提交給入口點合約
入口點合約處理所有用戶操作:驗證錢包是否存在-要求錢包驗證用戶操作-將用戶操作發送至智能合約錢包進行執行
智能合約錢包將用戶操作執行並納入區塊
通過對比下來我們可以發現,EOA 外部擁有账戶發起交易需要依靠以太坊固定的 ECDSA 籤名算法來進行籤名,而 CA 合約账戶最終也需要依靠 EOA 外部擁有账戶的 ECDSA 籤名算法來籤署交易,而在 EIP-4337 中账戶抽象錢包將【籤名驗證機制】交給了入口點合約來進行,這就使得账戶抽象錢包可以使用任意籤名形式的籤名機制,錢包开發者可以選擇相應場景的籤名形式去开發錢包產品,用戶可以直接通過錢包應用特定的籤名方式操控账戶抽象錢包進行操作,而這種籤名方式可以是 Web2 用戶也能輕松使用的方式或是專用場景下的定制方式。
並且由於任何礦工都可以充當 Bundler 這個角色,這就避免了 Bundler 這個角色的中心化風險,同時 Bundler 通過捆綁交易還可以預防 Flashbot 監聽內存池進行 MEV 套利,並且這些新機制的出現還帶來了更多的應用場景想象空間,例如第三方代付 Gas 費的 Paymaster。
從圖中可以看到,交易事務(tx)與用戶操作(uo)是兩個獨立的內存池,由於账戶抽象的入口點合約的存在,代付人(Paymaster)合約便可以像樂高積木一樣與入口點合約組合在一起,當入口點合約對用戶操作(uo)進行驗證之前先對代付人進行驗證確認:是否同意代付?是否有足夠支付 Gas 費的 ETH 進行質押?
除了代付人完全補貼之外,如果用戶的账戶合約中只有類似於 USDT、USDC 等非 Gas 費代幣,用戶也可以通過將 Gas 等值的其他代幣轉給代付人合約以達到無 ETH 支付 Gas 費的作用。
除了代付 Gas 之外,入口點合約還可以結合聚合籤名驗證合約實現聚合籤名功能,通過多人籤名的方式來控制錢包。
以上案例我們可以看到 EIP-4337 方案中的入口點合約模塊化的可組合性帶來的更多應用場景想象空間,似乎账戶抽象錢包可以給整個加密世界帶來非常多的好處,但現實真的會如此美好嗎?
EIP-4337 账戶抽象
存在着哪些不足和風險?
雖然账戶抽象的愿景十分美好,但現實卻往往卻很骨感,目前的账戶抽象錢包更像是一種智能合約錢包的新標准,還無法擺脫對於需要EOA作爲錢包擁有者的依賴。並且我們都明白一個道理:越是復雜的事物越容易出問題,目前的账戶抽象提案仍存在一些不足以及風險:
智能合約安全問題
智能合約安全問題一直是困擾加密世界的一個難題,我們甚至可以看到許多通過了“智能合約審計”的合約往往也會出現安全漏洞,而每次出現合約安全問題往往都會伴隨着巨大的財產損失,而對於 EIP-4337 账戶抽象方案來說,账戶抽象錢包的功能模塊化堆積以及新機制的加入就會使得其代碼執行邏輯更加復雜,而往往更復雜的代碼執行邏輯可能就會伴隨着潛在的安全風險。由於账戶抽象錢包和入口點合約本身都是智能合約,一旦入口點合約或者錢包合約出現問題則有可能會釀成一場損失慘重的黑客事件,人們對使用账戶抽象錢包的信任也會大打折扣。
更高的 Gas 費
除了潛在的合約安全風險之外,账戶抽象錢包使得用戶需要支付的 Gas 費更高了,因爲账戶抽象錢包相比於 EOA 外部擁有账戶和 CA 合約账戶來說處理交易的操作步驟變多了以及處理邏輯更復雜了,需要處理的操作變多也就意味着需要的 Gas 費更多,雖然 Vitalik 也提出可以通過 Layer2 來處理账戶抽象的數據來降低 Gas 消耗的解決方案,但這也需要一段漫長的時間。
技術實現問題
目前距離 EIP-4337 的落地還有很長的一段時間要走,許多理論上可以實現的技術往往在實踐中會困難重重遇到許多問題如:兼容問題,復雜的節點驗證過程,如何防止 Bundler 作惡、技術邏輯無法實現等等,要解決這些技術問題需要進行長時間的嘗試和討論,這也是爲什么 EIP-4337 被放在了以太坊升級的第六個階段 Splurge(狂歡)中的原因。
道阻且長,加密世界需要更低門檻且安全的錢包來吸引更多新用戶以突破用戶量的瓶頸,相信隨着账戶抽象的實現會給加密世界帶來一個全新的想象空間,甚至可能在不久的將來會有一個意想不到更好的替代方案來取代账戶抽象,加密行業迭代更新的速度遠超我們想象,這也是這個行業的魅力所在。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
標題:EIP-4337账戶抽象錢包方案能否开闢錢包新時代?
地址:https://www.torrentbusiness.com/article/27298.html
標籤: