智慧錢包的全面落地可能比我們想像得更近。
在波哥大舉辦的 Devcon 6 大會中,Tomasz Tunguz 提到了 Web3.0 的一些統計資料:各主流公鏈 DAU 累計約為 250 萬,而傳統互聯網的 DAU 為 50 億,前者勉強夠上後者的 0.05%。從供給側來看,約有 1.6 萬名開發者在 Web3.0 開發,而世界上開發者總數達到了 2700 萬,Web3 開發者占卜不足 0.06%。因此,Web3.0 離 mass adoption 還有很遠的距離。
錢包,作為 Web3.0 的入口,其用戶體驗直接影響到加密行業何時能迎來大規模化採用。儘管各大錢包在這方面卯足了勁,可在普通用戶的眼裡,錢包使用體驗依舊不盡人意。託管錢包雖然易用,但是安全性是一個很大的隱患,錢包被盜事件層出不窮。自託管錢包雖然相對安全,但保管長長的助記詞和私密金鑰的方式與傳統互聯網的用戶名 - 密碼體系相比複雜了很多。據 Chainalysis 的研究報告顯示,截止 2021 年約有 20% 流通中的比特幣,因所有者不記得私密金鑰而丟失。很多人可能會有疑問,為什麼我們不能將傳統的驗證方式應用到 Web3.0 來呢?
為什麼我們只能通過私密金鑰的方式進行驗證?為了回答這個問題,我們需要了一些背景知識和概念。首先是以太坊上的帳戶類型。以太坊一共有兩種帳戶:外部帳戶和合約帳戶。合約帳戶就是智慧合約,其代碼由以太坊虛擬機器來運行。而外部帳戶就是我們平常用來發起交易的錢包帳戶,它之所以被稱為「外部」是因為這種帳戶本身是沒有代碼的,因此獨立於以太坊虛擬機器之外,由用戶通過私密金鑰進行控制。
合約帳戶雖然有自訂邏輯,但它是無法主動發起事務的。因此任何合約狀態的改變都依賴外部帳戶來發起,並由外部帳戶支付 Ether。那如何驗證事務的合法性呢?以太坊上的驗證方式為檢查事務的發起人和資產 (Ether) 的所有人,也就是這個外部帳戶的擁有者是一致的。因此使用者需要通過錢包對交易進行簽署。而以太坊預設的驗證邏輯是中本聰 設計的 secp256k1,也正是通過此演算法生了金鑰對。簽名的正確性可以通過驗證該簽名是否出自跟某個共鑰對應的私密金鑰檢驗,因此用戶必須掌握這個私密金鑰。這就是為什麼無論如何優化錢包的用戶體驗也無法繞開私密金鑰的問題。
前文提到,外部帳戶並不具備代碼邏輯。如果想要引入更複雜的邏輯來實現其他的功能,比如多簽等等,是無法在外部帳戶上直接進行的。那麼,目前有什麼樣的方式可以解決此問題呢?筆者將介紹被認為最可行有效的兩種解決方案:MPC 錢包和智能合約錢包。
MPC,全稱為 Multi-Party Computation,是一種重要的加密安全措施。其包含了很多種技術方案,在本文的語境下主要指 MPC-TSS。而 MPC 錢包,是通過對私密金鑰進行多方計算在鏈下實現「多簽「、」跨鏈 「等等更複雜的驗證方式。簡單來說,就是將一個私密金鑰打碎成多片,將私密金鑰碎片交與一個去中心化的網路進行計算和加密。當需要私密金鑰簽名時,則將碎片再拼接起來形成一個完整的私密金鑰。MPC 的核心思路為分散控制權以達到分散風險或提高備災的目的,有效避免了單點失敗等安全問題。
MPC 錢包「多方參與」的概念與「多簽錢包」有些類似,但實際上,雖然都可以實現「多簽」的功能,二者的實現途徑是不一樣的。之前我們所熟知的多簽錢包,比如 Gnosis Safe 等等,是建立在智慧合約上的錢包,合約中定義了驗證邏輯,比如如果需要驗證一筆交易,需要一個以上的私密金鑰,或者五個中至少三個私密金鑰進行驗證。這類錢包屬於後文即將提到的智慧錢包的一種。而 MPC 錢包,則是將一個私密金鑰分解成多個片段,驗證過程只涉及到一個私密金鑰。並且計算網路是鏈下的,與智慧合約並無聯繫。
智慧合約錢包,正如其名,是基於智慧合約而不是外部帳戶的錢包。市面上已經有不少的智慧合約錢包,但因為這些智慧合約是自訂的,缺乏統一的行業標準,且存在合約漏洞以及與其他合約相容性等等問題未獲得廣泛的應用。最近,智慧合約錢包又因為「帳戶抽象」提案 EIP-4337 的重大進展而再次成為了熱議的話題。那麼帳戶抽象到底是什麼意思呢?實現了帳戶抽象後,又能給用戶帶來怎樣全新的體驗?在瞭解以太坊上的帳戶抽象之前,我們首先需要瞭解 CS 中抽象概念。
「抽象」是電腦科學最重要的概念之一,指在向外界提供必要的關鍵資訊的同時隱藏其後台的實現細節,使得開發者在處理一個抽象層的任務時,只需要專注於這一個抽象層。舉一個貼近生活的例子:當我們作為觀眾想使用電視機的時候,我們只需要熟悉作為電視觀眾需要瞭解的操作,比如如何打開和關閉電源、調整音量、切換頻道、連接其他設備如遊戲機、DVD 等等。觀眾並不需要瞭解電視內部的實現細節,比如電視是如何通過纜線接受信號,如何轉換信號,如何將這些信號呈現在電視螢幕上等等。這些實現細節是造電視的人需要瞭解的。作為觀眾,我們只需要通過外部介面,比如電源按鈕、遙控器、DVD 等控制電視。
帳戶抽象同理,我們作為錢包使用者,仍需要考慮很多因素,比如 gas price、gas limit、事務阻塞等等複雜的費用邏輯。其根本原因是基於外部帳戶的錢包不能夠被很好地「抽象」,直接導致使用者需要處理很多本不應該由用戶處理的問題。那如何解決呢?邏輯很簡單,我們可以將外部帳戶和合約帳戶抽象,使外部帳戶更貼近合約帳戶,這樣就可以通過智慧合約賦予錢包更加複雜的邏輯。智慧合約錢包能夠實現的功能也不止「多簽」這一個場景了。
如果 EIP-4337 能夠實現以太坊帳戶的系統性升級,作為用戶的我們能獲得什麼新的體驗呢?理論上只要能通過智慧合約代碼定義的功能都能實現。首先,智慧合約錢包可以通過非 secp256k1 的驗證演算法進行驗證,使用者不需要面對長長的金鑰對和助記詞。同時,智慧合約還可以賦予金鑰更多的邏輯。比如在多簽的場景下,給每一個私密金鑰定義不同的許可權:50USDC 以下的交易需要私密金鑰 A 簽名,50USDC 以上的交易需要私密金鑰 B 簽名,超過 2000USDC 的交易需要私密金鑰 ABC 共同簽名等等。此外,通過移動端與區塊鏈交互會變得更加容易,我們可以授權一個專屬於手機的金鑰,且可以定義這個金鑰加上限制,比如只能與固定幾個智慧合約交互,或者智慧驗證數額較小的交易等。其他能夠實現的功能還包括一鍵授權批量交易、交易黑名單等等。總之,智慧合約錢包的想像空間非常大。
介紹完兩種錢包,讀者可能會產生疑問,這兩種解決方案到底哪一種更好呢?筆者認為很難進行比較,因為 MPC 錢包和智慧合約錢包本質上不在同一個層面解決問題。MPC 錢包是鏈下方案,既可以控制基於外部帳戶的普通錢包,也可以控制智慧錢包。二者各有用例,並不衝突。因此,筆者將為大家分別列舉兩種方案的機遇和挑戰。
MPC 錢包作為鏈下方案,並不涉及到以太坊共識層或合約層的改動,用戶的使用成本更低,且在短期內更具可行性。此外,在一些特殊的使用場景比如跨鏈金鑰等更具優勢。智慧合約錢包是以太坊的系統性升級,可以給用戶帶來更多全新的體驗和用例。但帳戶抽象是一個需要「興師動眾」的大工程,要求其他智慧合約、開發者、以及以太坊架構都配合升級。過大的實操難度使從 2015 年就提出的願景到今天也沒有完全落地。而智慧合約錢包對於用戶而言,最直接的問題就是錢包的使用成本將會提升,從創建錢包開始就需要支付費用。
筆者認為,智慧合約錢包是我們的最終願景,MPC 是短期內更可行的方案,且在一些特殊場景更具優勢。因為成本問題,未來智慧錢包在以太坊主網實現的可行性和可能性都較低。讀者可以更多關注 Layer2 上的帳戶抽象和智慧錢包進展。目前 EIP-4337 是最可行的帳戶抽象方案,已經有不少智慧合約錢包專案在探索這條路徑,智慧錢包的全面落地可能比我們想像的更近。
免責聲明:
本文觀點僅代表作者個人觀點,不構成本平台的投資建議,本平台不對文章信息準確性、完整性和及時性作出任何保證,亦不對因使用或信賴文章信息引發的任何損失承擔責任
0.00