原文標題:《 Unipass 知縣:為什麼AA 錢包在Web3 錢包中是更新的範式》
原文來源: SevenUp DAO
原文作者:知縣,Unipass 創始人
一、Original Sin 原罪:回顧MetaMask Devcon 主旨演講
MetaMask 雖然產品受到了廣泛的關注,但是一直飽受產品更新迭代慢、用戶體驗差的詬病,不過開發者團隊對產品迭代的理解深度比普通用戶是要強很多的,基於龐大的用戶量MetaMask 產品形態其實對現在的web3 應用生態有一定的塑造作用,因此這就回到了「原罪」的主題,我們(MetaMask)做錢包的方向到底是不是對的?我們未來需要作出哪些改變?
MetaMask 開發團隊認為當前錢包賽道仍有較大的可提升空間,一方面較高的使用、安裝門檻阻攔了web2 嚐鮮加密的新用戶,另一方面就是安全問題,即使是插件錢包也不能完全阻礙黑客鑽空子的可能性。
另外,Web2 用戶很難理解web3 的產品,例如私鑰的安全保管是個老生常談的話題,不過用戶對此敏感度依舊不是那麼高,只有在私鑰真正遺失後才追悔莫及,私鑰意味著web3 的入口,代表著web3 世界所有權的證明。
因此,Web3 產品新的範式應該是怎麼樣的? Web2 用戶不理解產品的情況下,也能順利進入web3,如果用戶真正理解產品後才開始使用,這會極大增加用戶的學習成本,MetaMask 給出了他們自己的思考,當前的web3 產品很少能做到這幾點。
-
能證明這就是我的
-
它不能被黑客入侵或盜竊
-
我可以完全控制、撤銷、恢復賬戶
-
產品在我完全知情的情況下做交互
-
我可以自由選擇和外界交互的方式
並且做錢包賽道最重要的一定是誠實,方案的優缺點一定能夠讓用戶明晰,掩耳盜鈴是對產品和用戶的不負責,因此也就引入了今天的正題,賬戶抽象和智能錢包。
MetaMask 提出了三個非常重要的賬戶抽象提案:ERC-4337,「為錢包的設計打開創意之門」, 比如「多籤和社交恢復」; EIP-3074,可以把EOA 的權限委託給一個合約,允許用戶在一次交易中批准轉賬、執行操作和撤銷批准,相當於從EOA 地址變成智能合約地址;EIP-5003,相當於3074 的群體版本。
二、什麼是智能錢包
1. 概念
智能錢包本質上就是採用智能合約做錢包,智能合約錢包(Smart Contract Wallet) 是當前以太坊支持的兩種錢包形態之一,而另一種是大眾所常用的EOA(外部擁有地址)錢包,EOA 錢包是由私鑰控制的區塊鏈上的地址,即通過私鑰,用戶可以從所述地址簽發交易,但是用戶不能授權另一個密鑰來為給定地址簽名,也不能在其上編寫自定義邏輯;相對的,智能錢包通過對代碼的編寫,可以實現任意邏輯。之前我畫過一個加密貨幣錢包的分層圖,最底層是密鑰層,中間層是provider,最上層是wallet,密鑰最主要的作用就是管理公鑰私鑰,密鑰的導入和導出以及簽名的生成,這些本質上都和鏈沒有關係,說到底是數學的運算;中間層provider 就跟是在哪條主鏈有關係,根據主鏈的格式生成地址;最上層主要對應資產的瀏覽、代幣的收集和分發,所以說一個錢包基本上都可以拆成三層。
Ca 錢包一開始翻譯過來就叫做內部錢包,更多的是為了和EOA 外部錢包做對應,EOA 地址是沒有辦法承載任何資產的,凸現的是記賬功能,資產實際上都是在Ca 賬戶裡面的,CA 中文叫做合約賬戶,我們常見的ERC-20 代幣合約、DeFi 業務合約等都有一個跟EOA 長得很像的地址,這就是CA。
2. 用合約做錢包有什麼好處呢?
Ca 可以用作智能錢包資產的管理,例如gnosis safe 多簽錢包其實也是智能錢包,但多簽不是它的本質,而是用智能錢包的邏輯做多簽。合約做錢包也是有很多優勢的,其內部的邏輯是可以自定義、特別靈活,能實現傳統錢包不能實現的功能。
例如我們一講到合約錢包,大家第一反應是它的私鑰是在哪兒的?其實這是EOA 錢包的邏輯,私鑰和公鑰一一對應,這樣的描述在EOA 錢包裡面是沒有問題的,但是就像gnosis safe 多簽錢包,它實際上是通過一種「邏輯」實現的,比如3/5 的多簽錢包,權限的控制取決於五個地址中能不能得到三個以上的授權,因此合約錢包資產管理不是由私鑰控制的,最主要的是邏輯執行,CA 也可以不設定任何密鑰,而是由其他CA 的邏輯決定是否可以解鎖,比如DeFi 的借貸合約,只要還了錢就能取回質押的資產。當然並不是說僅依靠邏輯就不需要公鑰,只是說這樣多了一層安全保障和操作邏輯。
三、什麼是賬戶抽象(AA-Account Abstract)?
1. 概念
賬戶抽象概念就是,改變目前大多數人都在使用EOA 的現狀,希望用戶轉向SCW(Ca 作為地址的錢包解決方案,智能錢包),並且把生態對EOA 的依賴完全去除。
當前很多鏈其實內置就有比較完善的賬戶抽像功能的,公鑰集合、權限控制、合約邏輯等,其實從eos 開始各種公鏈就有一定的賬戶抽象能力了,eos 的地址其實是一個字符串,它已經不是一個公鑰了,有明顯的內部結構,兩個公鑰,一個有高級權限屬於owner,另一個用於執行。而以太坊實際上是沒有賬戶抽像這個概念的,最早可以追溯到2015 年的一些討論,當時Vitalik 認為至少要讓以太坊用來驗證交易的密碼學算法做到可替換,以及後面的第三方支付gas、簽名等等,但是以太坊基於歷史原因很難進行「現代化改造」,很多東西都寫死、固定住了,因此如果以太坊生態想要拓展賬戶抽像只能藉助智能錢包、在應用層做彌補。
賬戶抽像在做的事情就是把賬戶層和密鑰層抽像出來,用戶可以自定義裡面的邏輯,例如現實中機械鎖(只能物理鑰匙解鎖)和電子鎖(集成指紋、密碼、面部特徵等),抽象之後能帶來多維的可拓展性。而智能錢包是當前實現以太坊賬戶抽象最有前途的方法,不需要從共識層、底層改進,ERC-4337 可以讓應用層做賬戶抽像這個事情。
2. 智能錢包能帶來什麼樣的改變?
智能錢包和智能手機有很多的類比之處,智能手機因為集成了更多先進的能力,例如電容屏、陀螺儀、多點觸控、gps 等等,這些能力的升級為上層應用的搭建帶來了很大的想像空間,極大增強了用戶體驗,同時也會降低用戶的進入門檻,讓老年人、年輕人、兒童都能上手智能手機,因為智能手機的誕生讓更多的用戶進入了移動互聯網;同時智能手機有很大的可拓展性,不局限於通信設備,更多的場景是聽歌、視頻、導航、遊戲等等,可拓展性帶來了範式轉移,用戶也習慣了這種認知轉移,「默認」我們會拿智能手機做這些理所應當的場景。
智能錢包和EOA 錢包的對比,通過智能手機總結下來的四點優勢依舊適用,第一個就是更強的功能性,比如簽名的內部邏輯、gas 費用的代付、批量交易等都可以通過智能錢包實現,這些其實是配合現有的場景方便大家理解,EOA 錢包是不支持批量交易的,同一筆交易只能乾一件事情,但是智能錢包它可以做批量交易,它可以approve and swap 一筆完成,所以每次你需要花多少錢你就approve 多少錢,同時也保證了安全性。
第二點就是更好用,讓用戶的門檻降得很低,備份密鑰這件事情可以使用社交恢復給替代,這都是能夠帶來的新的變革,包括gas 支付也是如此,不用自己去專門去買各個鏈的,而是使用第三方的服務,這樣就能讓沒有能力理解錢包、沒有能力管理私鑰、甚至是不想入金的一些人,能夠通過智能錢包進入web3。
第三就是更大的可擴展性,可以安裝類似於裝插件的操作,讓功能變多,例如nft 的交易需要授權approve,如果不經過approve 雙方實際上是沒有辦法交易的,中間存在信任博弈的難題,但是可以通過第三方合約的方式,將nft 打入合約賬戶並設定取出的邏輯,例如受到付款等等,然後就能完成交易,不需要第三方信任,智能錢包本質上就是個合約,因此本身是可擴展的。第四點就是范式轉移,如同智能手機用戶,以前默認狀態是「斷網」,當前默認的狀態是「聯網」,有了智能錢包之後,EOA 之前的很多傳統觀念會被覆蓋,例如私鑰公鑰對應,需要付gas,或者是需要不斷approve,這些場景都可以被打破,大家會慢慢習慣一些新的情況並默認。
這裡舉幾個例子來展示一下智能合約錢包的擴展潛力:
Gnosis safe 利用智能合約錢包架構實現多簽邏輯;
用戶可以在一筆上鍊交易中同時給多個地址發送不同的token,也可以在用uniswap 時讓approve 和swap 在一筆交易裡完成,從而做到需要多少授權多少,避免因為過度授權造成安全隱患。
用戶可以給不同資產設定不同的操作權限,比如給PFP 設定比普通ERC–20 token 更高的操作門檻(例如需要一把由硬件錢包管理的admin key 才能轉移),這樣即便日常使用的環境發生密鑰洩露,黑客也無法將高價值資產轉走,在安全和便利中間取得平衡。
用戶可以簽署一個離線授權「誰能給我100 ETH,就可以轉走我的某個BAYC」,這樣不需要授權給第三方合約,用戶就可以跟其他人P2P 地完成原子交易。
四、Uni-pass:無痕、無gas、非託管、支持社交恢復的智能錢包
1. 基於電子郵件的社交恢復
我們發郵件的時候,類似於中世紀送信需要用蠟質封印,需要證明信息的真實性,電子郵件為例,發件服務器會進行簽名,比如G-mail 是google 會在它的域名里面公佈DKM 公鑰,用這個公鑰的私鑰給每一份郵件都簽名,收件方接著驗證google 的DKM 簽名和哈希,都能通過收信。 Uni-pass 的社交恢復流程一樣的,只是在合約裡面驗一封郵件DKM 的簽名、哈希能否通過,這樣能證明郵件的真實性,也能在合約裡面換key,加權重或則額外的邏輯也是可以的。
這也是為什麼賬號的社交恢復可以在uni-pass 裡面去做。我們是通過發郵件的方式驗證用戶是主動授權的,單單接受驗證碼意義不大,本質上是一個中心化的服務器發送的,發郵件和收郵件意味著用戶授予服務器不同的權限,能更大限度保證安全性。
2. 同MetaMask 合作,降低用戶門檻
我們當前對接的客戶非常廣泛,包括nft 平台、遊戲公司、社交平台或者是想要通過FT 做一定激勵的組織,都可以通過我們的智能錢包提升用戶體驗提高轉化率,同時降低成本。
說回MetaMask,他們當前並沒有躺平,而是將自己向著生態畫的目標去努力,類似於小程序一個集大成的插件,對於用戶來說不需要安裝那麼多的錢包和插件就能集成想要的功能,而這些snap 不能依賴與官方開發,只能通過生態開發者一同搭建,MetaMask 提供流量、開發者提供技術,共贏的狀態。
其實uni-pass 也是這個思路,賬戶抽象的概念他們不會自己做,我們已經和MetaMask 開展合作,當前已經交付了第二版的Demo。其實這也不衝突,我們做合約層,他們做EOA 層,合約錢包和EOA 錢包不是競爭更傾向於合作、共存的關係,比如我們可以嵌在EOA 錢包裡面,如果新進來的用戶註冊錢包到私鑰這一步的時候感覺麻煩不想做了,這時候就可以通過我們提供的電子郵件方式挽留用戶,另外現存的用戶也可以使用智能錢包的功能,用現在的地址一鍵控制智能錢包,能讓流程更加順暢。
觀眾Q&A:
Q:基於以太坊當前的邏輯,Ca 錢包一定會對應EOA 地址完成邏輯觸發嗎?智能錢包Gas 費用是不是需要Layer2 呢?
A:實際上這種說法沒錯,但是還是有些窄的,最重要的還是看怎麼控制錢包,我們既可以用驗證簽名的方式,也可以用其他的邏輯,比如DeFi 中藉貸合約執行的邏輯,是有一個前提的,即用戶是不是完成了資金的使用和還款,之後才會依據合約完成資金的轉移。可以看到這個過程是沒有驗證簽名的,合約層也是沒有驗證簽名的,而是依據用戶的行為、邏輯驗證,但是共識層會發生簽名的驗證。
共識層和合約層的交易處理都是會產生Gas 費用的,當前我們接的客戶也都是對接的大部分不是eth 主鏈,而是layer2 或者其他高性能公鏈上的項目,智能錢包實際上能很大的降低成本,尤其是批量處理無論是理論還是實踐中都能減少費用,同時固定費用也大大降低。
Q:當前很多的dapp 是不支持Ca 錢包的,那麼從場景拓展的角度來說智能錢包應該如何打破僵局呢?
A:不兼容的情況主要是DeFi 機槍池和土狗幣,防止被薅羊毛項目方採取一刀切的方式,第二個不兼容的情況是需要驗證簽名的場景,如果使用智能錢包需要實現EIP-721,雖然有門檻但還是能夠實現,opensea 就能夠兼容該方面並實現掛單交易。
其實我們面向的客戶,無論是做遊戲還是做消費,都沒有這方面的限制,也沒有理由去限制使用智能錢包,和他們的目標是不衝突的,中期來講兼容的問題就可以解決,因為智能錢包本身就是解決兼容的痛點。
Q:NFT 的合成、SBT 的發放智能錢包能夠實現嗎?
A:這個場景不需要錢包支持也可以實現,只要有簽名授權就可以,這個邏輯也可以放在智能錢包中,類似於放一個小app 插入到錢包中,這樣就不需要傳統錢包複雜的交互了,整個過程更便捷、高效。
Q:從To B 的角度來說,客戶需求主要集中在哪些方向,定制化的程度是否很高?
A:主要還是根據項目情況,如果是了解加密發展的歷史,部分項目是非常重視客戶安全層面的需求;對於體量比較大、資金雄厚的客戶,從開始就開始做託管方案也是make sense 的,也能給用戶不錯的體驗,如果可以接受非託管的方案,並且想要大幅度降低使用門檻,找我們是完全可以做的。
定制化其實是從客戶中蒐集普遍需求,如果我們判斷大部分的客戶都需要這個層面的方案,我們就會去做,比如說一開始接的項目SDK 大家沒有native 的需求,但是後來需求變得很普遍,大家都希望將SDK 嵌入到自己的app 裡面,那麼後來我們就開始做這個方案,做SDK 就引入stss,後來我們想了一下客戶很多遊戲都是用unity 來做,我們直接用引擎級別的SDK 可能會更合適,也就是我們會不斷調整定制化的服務,另外我們SDK 提供的靈活度也是足夠的,能夠滿足定制化的需求。