大家好!很高興與大家分享關於錢包如何在未來更好地普惠大眾的話題,今天我們將主要探討錢包未來可能面臨的一些機會與挑戰。在此之前,我們先來關注抽象賬戶錢包的一些設計概念。
在原生交易中,用戶首先會生成一個賬戶地址(EOA),然後使用相應的私鑰來為以太坊交易簽名,並且該交易格式會遵循以太坊的標準。一旦簽名驗證通過,這筆交易就會被廣播到以太坊網絡中,之後由驗證者驗證交易並收取礦工費,最後執行交易。這就是傳統的交易方式。
但今天的重點是抽象賬戶錢包,所以我們將從這種錢包的交易週期來探討其與傳統方式的不同。可以注意到下圖有一個被虛線圈出的區域,這在傳統的交易流程中是不存在的。這部分可以視為用戶在簽署交易時所簽署的一個信息,而非傳統的以太坊交易標準格式。我將這個信息稱作「意圖」,即用戶所希望執行的動作。在此處,用戶會進行簽名,這種簽名與 EIP-712 的簽名方式相似。
接下來,誰將負責收集這些「意圖」信息並傳送至以太坊節點?抽象賬戶引入了一個名為 「bundler」的角色,bundler 在鏈下對這筆交易進行判斷,確認其是否能夠成功執行,並在成功後是否能夠按預期扣除費用。我將這個流程稱為「虛擬驗證」。它會在交易真正進入交易池之前進行模擬驗證。之後,bundler 會將交易發送給相應的節點,然後開始實際的交易執行過程。
相比原生交易,抽象賬戶帶來三大創新:
- 信息簽名環節:與過去不同,之前簽名的是交易的標準格式。現在簽名的僅僅是一條信息,例如我想轉賬的目標,而不是完整的以太坊交易內容。
- 賬戶與簽名者的區分:傳統意義上,若沒有賬戶則無 Token。現在的情境下,賬戶與能簽名的使用者(Signer)是兩個不同的角色。這帶來了兩個核心變化:通過合約,我們可以預先創建地址;由於簽名者不等同於賬戶,如果簽名密鑰丟失,我們可以更換簽名者來恢復賬戶。
特別地,關於預生成地址:過去,若想鼓勵他人使用錢包,但對方無地址,即便想贈送十元禮物卡也無法實現。但有了預生成地址,當用戶創建新錢包時,你就可以直接為其充值。 - Gas 費用的抽象:除了賬戶的抽象,現如今 Gas 的概念也已抽象化。這意味著你今天支付的礦工費並不必須是 ETH,它可以是 ERC-20 代幣,或者任何其他法幣。
密鑰管理
與錢包緊密相關的一點是密鑰管理,這無疑是我們首要考慮的內容。在 Web2 的環境中,已有的規範,如 Passkey、FIDO2 或 WebAuthn,為我們提供了便捷的密鑰管理方式。
但抽象賬戶為密鑰管理提供了新的視角。與傳統的 ECDSA 簽名機制不同,抽象賬戶引入了合約的能力,支持多種簽名算法。例如,手機的安全芯片中就內置有私鑰。只要這個私鑰算法能被合約驗證,手機即可視為硬件錢包,為用戶帶來了便捷性,免除了記憶助記詞的麻煩。
抽象賬戶允許我們在私鑰丟失時替換 Signer,而賬戶仍保持不變。這增加了錢包的可持續性和可升級性。此外,因為這些賬戶是基於開源合約開發的,其邏輯和驗證方式對於所有用戶都是透明的,允許更多的定制化和多樣化的前端界面。
例如,可以有移動端應用,也可以有 Web 版本,為用戶提供了更多選擇和便利。抽象賬戶的持久性意味著,用戶在這些賬戶上的交易歷史或積累的信譽,未來可能會被應用於數字身份驗證(DID)上。
地址
傳統的區塊鏈地址生成方式是基於公鑰的編碼方式。只要你知道私鑰,你就可以推導出對應的公鑰和地址。這種方式的優勢在於它為多個鏈提供了一致性。用戶只需管理一個私鑰,就可以在多個鏈上進行操作。
由於合約的使用,抽象賬戶的地址管理變得複雜。在 EVM 兼容的鏈上,地址可能仍然是傳統的,但在非 EVM 兼容的鏈上,如 StarkWare 和 zkSync,情況就不同了。儘管存在差異,但通過 ENS 的管理方式,用戶仍可以在多個鍊或 Layer2 解決方案上保持操作的一致性。
原生交易的地址管理方式因其簡單性而備受歡迎,但抽象賬戶為我們帶來了新的挑戰。如何確保用戶在多個鍊或 Layer2 解決方案上的體驗保持一致性,同時還要考慮到合約賬戶的複雜性,是未來需要解決的問題。
簽名信息
簽名信息環節在抽象賬戶中展現了獨特的魅力和前景。與傳統的原生交易不同,用戶不再受限於固定的交易格式,而是可以自由地表達自己的意圖和意願。這種靈活性為區塊鏈交互帶來了革命性的變化。
在抽象賬戶中,簽名信息不再僅僅是關於資金轉移的指令。用戶可以通過簽名他們的意圖,來指示他們希望執行的操作,無論是在區塊鏈上,還是在其他應用中。這種自由度意味著用戶的交互可以在電子郵件、社交平台、消息應用等多種場景中發生。
想像一下,如果用戶可以簡單地在電子郵件中寫明「向 Alice 轉賬 50 個 ETH」,而不必通過複雜的交易界面,系統會自動識別這個意圖,並幫助用戶完成交易。這就好比我們在 Google搜索框中輸入關鍵詞,而不必擔心背後的處理細節。這種模式可以被擴展到各種應用中,讓用戶在幾乎任何地方都能簡單、快速地完成區塊鏈交互。
礦工費支付
支付 Gas 費在區塊鏈交易中始終是個挑戰。傳統上,用戶在執行交易前必須首先確保他們的錢包中有足夠的 ETH 來支付交易費用。這無疑給用戶帶來了額外的麻煩,因為他們首先需要購買 ETH,這可能需要通過法幣在交易所進行購買,或者通過其他方式獲取。
不過,在抽象賬戶的框架下,這個問題得到了很大的改善。由於 Paymaster 的存在,用戶不再局限於只使用 ETH 來支付交易費,降低了進入門檻和復雜性。同時,抽象賬戶允許合約有更高的定制性。這意味著合約可以根據特定需求來設計,包括如何收取和支付交易費用。
這種新模式確保用戶可以輕鬆、無縫地進行交易,提高了整體的用戶體驗。
賬戶恢復
賬戶恢復是另一個核心考慮。傳統上,我們主要依賴助記詞來恢復賬戶。在抽象賬戶中,即使簽名者(Signer)發生變化,賬戶的連續性也得以維持。這為我們提供了恢復賬戶的多種方式,包括多重簽名(Multi-Sign)、身份驗證技術,甚至鏈下的解決方案,如 MPC。這大大增強了用戶的信心,因為他們知道即使出現問題,也有多種方法恢復賬戶。
既然抽象賬戶以合約為基礎。這意味著我們可以設計更模塊化的合約,並為其增加不同的插件和功能。從用戶畫像的變化,我們可以看到用戶需求的多樣性。一個初學者可能需要簡單易用的錢包,而隨著經驗積累和需求的變化,他可能期望錢包能提供更多高級功能,如 DeFi 操作或增強的安全特性。
為了滿足不同的用戶需求,我們可以設計具有不同模塊和功能的合約。通過抽象賬戶,我們可以更靈活地為用戶提供他們所需的服務。
總之,抽象賬戶帶給我們一個更大的好處,就是允許功能和合約的模塊化,以進一步實現差異化和定制化。然而,目前面臨的挑戰是合約執行成本高昂。因此,我們亟需沿著擴容的發展路徑,降低交易成本。我預見未來的錢包將更多地依賴 Layer2 技術,特別是在抽象賬戶的實現和執行方面。