1.爲什麼需要無助記詞錢包
「無助記詞錢包」並不是任何一種具體的錢包技術,而是一種功能體驗:用戶不再需要保管復雜的助記詞,而是通過郵箱密碼即可登入。由此,用戶使用錢包的門檻大大降低,使用體驗上接近Web2產品。
這類錢包的本質是允許密碼丟失,也就是在密碼丟失的情況下仍然可以保全資產安全、並且最終恢復對錢包的訪問。所以,用戶不再需要謹小慎微地在線下自行保管助記詞,而是可以用安全級別較低的方式來存儲密碼,包括雲端存儲、移動端本地存儲、第三方托管等等。如此,產品就可以在用戶體驗上做文章,設計新手友好的登入體驗。
實現無助記詞有多種技術路線,包括MPC、智能合約等。但不論何種技術,在獲得使用便利性的同時,也都存在某種信任假設——或是需要信任托管中介、或是需要信任智能合約,錢包的安全性並不唯一掌握在用戶自己手中。對於安全要求極高的人來說,這未必是個最佳選擇;但是對於普羅大衆而言,無助記詞錢包確實能夠降低Web3的進入門檻。
2.無助記詞錢包有哪些實現方案
本文介紹市面上主流的三種實現方案。
2.1 MPC錢包
第一種主流的方式是MPC(Multi-party Computation,多方計算)。這是一種鏈下的解決方案,是錢包之外的另一層技術,換言之可以和任何類型的錢包結合,使用了MPC技術來保管私鑰的錢包都可以稱作MPC錢包。
MPC錢包使用SSS或TSS技術生成私鑰的多個分片,分發給多個參與方。在使用錢包時,各方通過自己的分片,在不暴露每一方分片的情況下,生成完整的數據來籤名。
MPC錢包可以靈活地設置閾值策略,比如可以要求3個分片中至少2個分片參與籤名,也可以要求2個分片全部參與籤名。但是需要注意,雖然允許密碼丟失,但是分片的存儲方案仍然會影響錢包安全,比如由項目方托管的存儲更多依賴於項目方不作惡。目前MPC錢包的閾值策略和存儲方案並不統一,還沒有一個行業標準;每種錢包所使用的不同方案,也體現了不同的安全設計策略。
MPC錢包的私鑰分片方案可以有效避免單點故障:即使丟失了單個分片,也可以保全錢包內資產,而且可以在不改變私鑰的情況下更新各個分片,做到密碼恢復。此外,MPC錢包的所有實現都在鏈下,最終只生成一個私鑰籤名,因此相比智能合約的多籤更節約資源。
典型的MPC錢包包括Web3Auth、Particle Network、Openblock等。
Web3Auth採用SSS(Shamir Secret Sharing,Shamir私鑰分割)方案來進行密鑰分割。SSS區別於TSS(Threshold Signature Scheme,門限籤名方案)的地方在於,SSS需要首先由單方生成一個私鑰,然後再通過密碼學分割私鑰並分發給各方,籤名時也必須先重構完整私鑰,因此私鑰仍然有在前端暴露的風險;而TSS不論在密鑰生成還是籤名的階段,都是通過分布式計算進行、而不需要進行重構,因此避免了暴露風險。SSS方案使得Web3Auth存在一定安全缺陷,MPC錢包的後起之秀通常都使用TSS。
下圖展示了2-3模型,也是Web3Auth採用的基礎模型,即需要3個分片中的2個分片參與才能完成籤名。其中,設備分片存儲在用戶的本地設備中;OAuth登入分片由節點網路進一步分割存儲;備份分片由用戶自行存儲,可以存儲在單獨的設備或通過密碼訪問。
來源:https://web3auth.io/docs/overview/key-management/
用戶在登入時,首先通過Gmail等第三方登入,獲得OAuth登入分片;再用存儲在本地設備的設備分片,就可以重構完整私鑰。當用戶登入新設備時,必須同時用到第三個分片,也就是備份分片來實現登入。此外,通過用戶也可以自己設置不同的閾值模型,比如3-4、4-5等等。
來源:https://web3auth.io/docs/overview/web3auth-for-wallets
Particle Network採用TSS,相對SSS更安全。其閾值模型採用2-2,客戶和官方分別保管一部分分片。客戶端的分片由Particle或第三方雲服務提供商存儲在雲端,通過郵件OTP或社交登入驗證後調用。但是,客戶端密鑰本質上不受保護,服務提供商可以訪問該密鑰,這一方案依賴於客戶信任Particle或者第三方提供商[1]。
獲客方式是所有錢包都面臨的難題,因爲絕大部分ToC市場都已經被佔據。Web3Auth和Particle Network都採用ToB策略,通過服務項目方來獲得用戶量。值得一提的是,使用了Particle Netowork錢包服務的Web3遊戲Power of Women曾一度登頂美國區谷歌商店遊戲總榜,成爲了Web3遊戲破圈的一個標杆案例。MPC錢包提供了絲滑的登入體驗,對於Free to Play的遊戲來說是一個非常重要的降低門檻的方式,可以預見未來低門檻的Web3項目很可能會大規模採用類似的登入體驗。
來源:https://foresightnews.pro/article/detail/14777
上文說的「MPC錢包」是使用了MPC技術來保管私鑰的錢包,「智能合約錢包」則是錢包本身的一種類型。
在EVM有兩種錢包類型,一種是EOA錢包(Externally Owned Accounts ,外部控制帳戶),由任何人通過私鑰控制;另一種是CA錢包(Contract Accounts,合約帳戶),部署在區塊鏈上,由合約代碼控制,這也就是智能合約錢包。
目前我們使用的絕大多數錢包都是EOA錢包,如小狐狸。事實上,智能合約錢包由於可以自定義合約代碼,實現的功能遠比EOA錢包豐富,例如帳戶找回、預設執行邏輯等;但是目前普及度並不高,主要是由於使用成本高,每筆交易都會比EOA錢包多出一筆gas fee。因此,目前的使用場景主要在於「多籤」這樣的機構管理層面,個人用戶採用較少。此外,智能合約錢包沒有私鑰、無法驗籤,因此交易實質上仍然需要由一個EOA錢包來調起,個人用戶如果要用智能合約錢包,還需要另外保管EOA錢包密鑰,仍然有較高的復雜度。
在針對個人用戶的智能合約錢包賽道,Argent是一個先行者,2019年就開始運營至今。Argent包含兩個產品:
1)移動端App錢包「Argent」,在ETH和zkSync上,實現無助記詞功能;在ETH上還有「Argent Vault」產品,提供社交恢復功能;
2)瀏覽器插件錢包「Argent X」,只在StarkNet上,是基於帳戶抽象(Account Abstraction)的錢包,後文會再做解釋。
我們先來看第一個產品,移動端錢包Argent,其中的「Vault」也就是傳統的智能合約錢包。
前文說過,EVM上的智能合約錢包沒有私鑰、無法驗籤,發起交易時仍然需要另一個EOA錢包,因此使用Argent移動端時,實質上是首先生成了一個EOA錢包,接着再生成一個智能合約錢包「Vault」,這一步需要額外支付gas fee。
「無助記詞功能」是在生成EOA錢包這一步,通過手機本地存儲私鑰來實現的。用戶只需要郵箱或者電話就可以註冊生成EOA錢包,私鑰存儲在手機本地、無法導出;與此同時會有一份備用私鑰存儲在雲端,在用戶更換設備時使用。具體步驟爲:備份私鑰被加密後存儲在用戶的iCloud雲端,而解密密鑰由Argent掌握。用戶更換設備時,從iCloud獲取加密後的私鑰,再通過郵件電話驗證後從Argent獲取解密密鑰,從而獲得備份私鑰。此外,Argent在發送解密密鑰前等會先通知用戶並等待兩天,給用戶充足的緩衝時間,防止盜竊行爲。
Argent移動端產品界面
「社交恢復功能」在是在生成「Vault」後,通過智能合約錢包實現的,目前只在ETH上。值得一提的是,目前「Vault」功能只針對5萬美元以上存款的用戶才提供,門檻不低。設置Vault後,用戶可以添加Guardians(守護人),可以是任何錢包,包括EOA或者CA,這些被指定的錢包在用戶丟失密鑰後可以籤名生成一個新的帳戶設定爲錢包Owner,以此來實現社交恢復。此外,錢包Owner還可以設置是否需要Guardians批準交易、是否在指定時間段內任意交易等等。
Argent移動端產品界面
根據Dune顯示,目前有7萬多個Argent合約錢包,總計存儲了7.6萬個ETH。
接着再來看第二個產品,瀏覽器插件「Argent X」。事實上,Argent公司近期的高估值更多是由Argent X之稱的,因爲這是StarkNet上的第一個錢包,也是基於帳戶抽象的錢包,代表了錢包賽道的新方向。
「帳戶抽象」是以太坊社區對於錢包發展方向的一個共識概念,可以簡單概括爲:將EVM 中的實體 (帳戶) 與移動資產的所有權的實體 (密鑰對或籤名者)進行解耦,換言之就是把所有帳戶都變成CA[2]。前文提到,EOA和CA是EVM中的兩種帳戶類型,CA無法驗籤,因此必須依賴EOA主動發起交易;而在實現了帳戶抽象後,CA將不再依賴EOA就可以發起交易,實現更多的自定義功能。
聽起來很美好,但這裏仍然有很多問題,一是技術實現上仍然有很多工作,比如Argent X現在的功能非常有限,還沒有做到在ETH實現的Guardians社交恢復功能;二是智能合約錢包歷來面臨的gas fee問題依然存在,在Layer2上雖然有所好轉,但是依然不如同鏈上的EOA錢包。gas fee問題最終的解決方案,是通過批量交易來攤薄額外支出,從這一點來講智能合約錢包確實是未來的發展方向,有潛力做到比EOA錢包更便宜。當然,這就要看賽道上各路英雄的開發速度了。
MPC+智能合約的混合方案
前文介紹的「MPC錢包」和「智能合約錢包」其實是兩個維度的描述,前者是疊加在錢包之外的一層鏈下驗證技術,後者則是錢包本身的一種類型(相對於EOA錢包)。這兩種錢包並不衝突,事實上也確實存在兩者相結合的混合方案:Unipass就是在智能合約錢包的基礎上,疊加了MPC技術。
智能合約錢包的典型功能,就是可以設置多個密鑰來管理同一個帳戶。例如在Argent Vault中,用戶可以添加Guardians,在在用戶丟失密鑰後生成一個新的帳戶並設定爲錢包Owner;在Gnosis Safe中,用戶可以添加多個錢包來實現門限籤名。Unipass同樣通過一系列具有角色權重的密鑰來管理帳戶,較之Argent Vault和Gnosis Safe更爲豐富,主要有三種角色:
1)Owner:設定爲這類角色的密鑰可以控制帳戶,有最高權限;
2)Operator:這類密鑰可以轉帳、交互合約、授權等,是用戶最常用的角色;
3)Guardians:這類密鑰可以在其他密鑰丟失時,用來恢復帳戶,效果等同於Argent Vault的社交恢復。Unipass更先進的地方在於,Argent Vault只允許綁定EOA錢包作爲Guardians,而Unipass則可以綁定郵箱而非錢包來做社交恢復,大大降低了用戶門檻。
來源:https://docs.wallet.unipass.id/architecture/key-management
上述功能體現了智能合約錢包的特性,而MPC則體現在上圖中的Master Key中。Master Key是默認會爲用戶生成的主密鑰,包含Owner和Operator角色,可以說是Unipass帳戶中最重要的密鑰,而這一密鑰的生成管理使用了MPC技術。
MPC方案在分片存儲上存在這樣一個困境:如果客戶端分片由用戶保管,那麼就存在丟失風險;如果客戶端分片實質上仍然由第三方保管(如Particle Network),就存在中心化風險,密碼可以被服務商訪問。Unipass選擇了前者:客戶端分片中的Password由用戶自己保管,允許丟失,萬一丟失的情況下可以通過Guardians來進行社交恢復。相對於純MPC錢包,Unipass在保持去中心化的前提下,通過智能合約的社交恢復來保證帳戶安全。
來源:https://docs.wallet.unipass.id/architecture/master-key
此外,Unipass也支持ERC-4337協議,未來可以提供帳戶抽象所實現的功能。
本文從「無助記詞」的場景出發,探討了幾種典型的實現方式。第一種是以Web3Auth和Particle Network爲代表的純MPC錢包,這類錢包仍然是EOA錢包,只是將私鑰分片。MPC方案簡單高效,但是面臨中心化或者密鑰丟失風險。第二種是以Argent爲代表的智能合約錢包,Argent通過手機本地存儲密鑰來實現無助記詞功能,並通過智能合約的社交恢復來保障帳戶安全,應對密鑰丟失。第三種則是Unipass的MPC+智能錢包混合方案,將最主要的密鑰通過MPC技術實現無助記詞,再通過智能合約的角色權重管理來實現社交恢復,達到和Argent一樣的目的。
可以看到,「無助記詞」本質是這樣一種取舍:用較低安全級別存儲密鑰的方式,來提升用戶登入便捷度。相應地,要麼用部份托管的手段來應對密鑰丟失風險,要麼通過智能合約的社交恢復來保證安全。智能合約錢包並不能直接實現無助記詞功能,但是其社交恢復卻能給低安全級別的密鑰存儲帶來托底保障,而且去中心化的實現方式更符合Web3價值觀。
不過另一個值得思考的問題是:什麼樣的用戶需要無助記詞錢包?Web3用戶幾乎人手多個小狐狸帳號,是否會註冊新錢包完全取決於項目方集成了什麼錢包,在這樣的背景下,無助記詞錢包似乎更適合Web2用戶。但是這部分用戶原本就是需要教育、獲客成本更高的羣體,很難轉化成高價值Web3用戶。無助記詞錢包面臨着類似社交賽道的問題:如何吸引大批量、低資產屬性的用戶。
分享
目录
1.爲什麼需要無助記詞錢包
「無助記詞錢包」並不是任何一種具體的錢包技術,而是一種功能體驗:用戶不再需要保管復雜的助記詞,而是通過郵箱密碼即可登入。由此,用戶使用錢包的門檻大大降低,使用體驗上接近Web2產品。
這類錢包的本質是允許密碼丟失,也就是在密碼丟失的情況下仍然可以保全資產安全、並且最終恢復對錢包的訪問。所以,用戶不再需要謹小慎微地在線下自行保管助記詞,而是可以用安全級別較低的方式來存儲密碼,包括雲端存儲、移動端本地存儲、第三方托管等等。如此,產品就可以在用戶體驗上做文章,設計新手友好的登入體驗。
實現無助記詞有多種技術路線,包括MPC、智能合約等。但不論何種技術,在獲得使用便利性的同時,也都存在某種信任假設——或是需要信任托管中介、或是需要信任智能合約,錢包的安全性並不唯一掌握在用戶自己手中。對於安全要求極高的人來說,這未必是個最佳選擇;但是對於普羅大衆而言,無助記詞錢包確實能夠降低Web3的進入門檻。
2.無助記詞錢包有哪些實現方案
本文介紹市面上主流的三種實現方案。
2.1 MPC錢包
第一種主流的方式是MPC(Multi-party Computation,多方計算)。這是一種鏈下的解決方案,是錢包之外的另一層技術,換言之可以和任何類型的錢包結合,使用了MPC技術來保管私鑰的錢包都可以稱作MPC錢包。
MPC錢包使用SSS或TSS技術生成私鑰的多個分片,分發給多個參與方。在使用錢包時,各方通過自己的分片,在不暴露每一方分片的情況下,生成完整的數據來籤名。
MPC錢包可以靈活地設置閾值策略,比如可以要求3個分片中至少2個分片參與籤名,也可以要求2個分片全部參與籤名。但是需要注意,雖然允許密碼丟失,但是分片的存儲方案仍然會影響錢包安全,比如由項目方托管的存儲更多依賴於項目方不作惡。目前MPC錢包的閾值策略和存儲方案並不統一,還沒有一個行業標準;每種錢包所使用的不同方案,也體現了不同的安全設計策略。
MPC錢包的私鑰分片方案可以有效避免單點故障:即使丟失了單個分片,也可以保全錢包內資產,而且可以在不改變私鑰的情況下更新各個分片,做到密碼恢復。此外,MPC錢包的所有實現都在鏈下,最終只生成一個私鑰籤名,因此相比智能合約的多籤更節約資源。
典型的MPC錢包包括Web3Auth、Particle Network、Openblock等。
Web3Auth採用SSS(Shamir Secret Sharing,Shamir私鑰分割)方案來進行密鑰分割。SSS區別於TSS(Threshold Signature Scheme,門限籤名方案)的地方在於,SSS需要首先由單方生成一個私鑰,然後再通過密碼學分割私鑰並分發給各方,籤名時也必須先重構完整私鑰,因此私鑰仍然有在前端暴露的風險;而TSS不論在密鑰生成還是籤名的階段,都是通過分布式計算進行、而不需要進行重構,因此避免了暴露風險。SSS方案使得Web3Auth存在一定安全缺陷,MPC錢包的後起之秀通常都使用TSS。
下圖展示了2-3模型,也是Web3Auth採用的基礎模型,即需要3個分片中的2個分片參與才能完成籤名。其中,設備分片存儲在用戶的本地設備中;OAuth登入分片由節點網路進一步分割存儲;備份分片由用戶自行存儲,可以存儲在單獨的設備或通過密碼訪問。
來源:https://web3auth.io/docs/overview/key-management/
用戶在登入時,首先通過Gmail等第三方登入,獲得OAuth登入分片;再用存儲在本地設備的設備分片,就可以重構完整私鑰。當用戶登入新設備時,必須同時用到第三個分片,也就是備份分片來實現登入。此外,通過用戶也可以自己設置不同的閾值模型,比如3-4、4-5等等。
來源:https://web3auth.io/docs/overview/web3auth-for-wallets
Particle Network採用TSS,相對SSS更安全。其閾值模型採用2-2,客戶和官方分別保管一部分分片。客戶端的分片由Particle或第三方雲服務提供商存儲在雲端,通過郵件OTP或社交登入驗證後調用。但是,客戶端密鑰本質上不受保護,服務提供商可以訪問該密鑰,這一方案依賴於客戶信任Particle或者第三方提供商[1]。
獲客方式是所有錢包都面臨的難題,因爲絕大部分ToC市場都已經被佔據。Web3Auth和Particle Network都採用ToB策略,通過服務項目方來獲得用戶量。值得一提的是,使用了Particle Netowork錢包服務的Web3遊戲Power of Women曾一度登頂美國區谷歌商店遊戲總榜,成爲了Web3遊戲破圈的一個標杆案例。MPC錢包提供了絲滑的登入體驗,對於Free to Play的遊戲來說是一個非常重要的降低門檻的方式,可以預見未來低門檻的Web3項目很可能會大規模採用類似的登入體驗。
來源:https://foresightnews.pro/article/detail/14777
上文說的「MPC錢包」是使用了MPC技術來保管私鑰的錢包,「智能合約錢包」則是錢包本身的一種類型。
在EVM有兩種錢包類型,一種是EOA錢包(Externally Owned Accounts ,外部控制帳戶),由任何人通過私鑰控制;另一種是CA錢包(Contract Accounts,合約帳戶),部署在區塊鏈上,由合約代碼控制,這也就是智能合約錢包。
目前我們使用的絕大多數錢包都是EOA錢包,如小狐狸。事實上,智能合約錢包由於可以自定義合約代碼,實現的功能遠比EOA錢包豐富,例如帳戶找回、預設執行邏輯等;但是目前普及度並不高,主要是由於使用成本高,每筆交易都會比EOA錢包多出一筆gas fee。因此,目前的使用場景主要在於「多籤」這樣的機構管理層面,個人用戶採用較少。此外,智能合約錢包沒有私鑰、無法驗籤,因此交易實質上仍然需要由一個EOA錢包來調起,個人用戶如果要用智能合約錢包,還需要另外保管EOA錢包密鑰,仍然有較高的復雜度。
在針對個人用戶的智能合約錢包賽道,Argent是一個先行者,2019年就開始運營至今。Argent包含兩個產品:
1)移動端App錢包「Argent」,在ETH和zkSync上,實現無助記詞功能;在ETH上還有「Argent Vault」產品,提供社交恢復功能;
2)瀏覽器插件錢包「Argent X」,只在StarkNet上,是基於帳戶抽象(Account Abstraction)的錢包,後文會再做解釋。
我們先來看第一個產品,移動端錢包Argent,其中的「Vault」也就是傳統的智能合約錢包。
前文說過,EVM上的智能合約錢包沒有私鑰、無法驗籤,發起交易時仍然需要另一個EOA錢包,因此使用Argent移動端時,實質上是首先生成了一個EOA錢包,接着再生成一個智能合約錢包「Vault」,這一步需要額外支付gas fee。
「無助記詞功能」是在生成EOA錢包這一步,通過手機本地存儲私鑰來實現的。用戶只需要郵箱或者電話就可以註冊生成EOA錢包,私鑰存儲在手機本地、無法導出;與此同時會有一份備用私鑰存儲在雲端,在用戶更換設備時使用。具體步驟爲:備份私鑰被加密後存儲在用戶的iCloud雲端,而解密密鑰由Argent掌握。用戶更換設備時,從iCloud獲取加密後的私鑰,再通過郵件電話驗證後從Argent獲取解密密鑰,從而獲得備份私鑰。此外,Argent在發送解密密鑰前等會先通知用戶並等待兩天,給用戶充足的緩衝時間,防止盜竊行爲。
Argent移動端產品界面
「社交恢復功能」在是在生成「Vault」後,通過智能合約錢包實現的,目前只在ETH上。值得一提的是,目前「Vault」功能只針對5萬美元以上存款的用戶才提供,門檻不低。設置Vault後,用戶可以添加Guardians(守護人),可以是任何錢包,包括EOA或者CA,這些被指定的錢包在用戶丟失密鑰後可以籤名生成一個新的帳戶設定爲錢包Owner,以此來實現社交恢復。此外,錢包Owner還可以設置是否需要Guardians批準交易、是否在指定時間段內任意交易等等。
Argent移動端產品界面
根據Dune顯示,目前有7萬多個Argent合約錢包,總計存儲了7.6萬個ETH。
接着再來看第二個產品,瀏覽器插件「Argent X」。事實上,Argent公司近期的高估值更多是由Argent X之稱的,因爲這是StarkNet上的第一個錢包,也是基於帳戶抽象的錢包,代表了錢包賽道的新方向。
「帳戶抽象」是以太坊社區對於錢包發展方向的一個共識概念,可以簡單概括爲:將EVM 中的實體 (帳戶) 與移動資產的所有權的實體 (密鑰對或籤名者)進行解耦,換言之就是把所有帳戶都變成CA[2]。前文提到,EOA和CA是EVM中的兩種帳戶類型,CA無法驗籤,因此必須依賴EOA主動發起交易;而在實現了帳戶抽象後,CA將不再依賴EOA就可以發起交易,實現更多的自定義功能。
聽起來很美好,但這裏仍然有很多問題,一是技術實現上仍然有很多工作,比如Argent X現在的功能非常有限,還沒有做到在ETH實現的Guardians社交恢復功能;二是智能合約錢包歷來面臨的gas fee問題依然存在,在Layer2上雖然有所好轉,但是依然不如同鏈上的EOA錢包。gas fee問題最終的解決方案,是通過批量交易來攤薄額外支出,從這一點來講智能合約錢包確實是未來的發展方向,有潛力做到比EOA錢包更便宜。當然,這就要看賽道上各路英雄的開發速度了。
MPC+智能合約的混合方案
前文介紹的「MPC錢包」和「智能合約錢包」其實是兩個維度的描述,前者是疊加在錢包之外的一層鏈下驗證技術,後者則是錢包本身的一種類型(相對於EOA錢包)。這兩種錢包並不衝突,事實上也確實存在兩者相結合的混合方案:Unipass就是在智能合約錢包的基礎上,疊加了MPC技術。
智能合約錢包的典型功能,就是可以設置多個密鑰來管理同一個帳戶。例如在Argent Vault中,用戶可以添加Guardians,在在用戶丟失密鑰後生成一個新的帳戶並設定爲錢包Owner;在Gnosis Safe中,用戶可以添加多個錢包來實現門限籤名。Unipass同樣通過一系列具有角色權重的密鑰來管理帳戶,較之Argent Vault和Gnosis Safe更爲豐富,主要有三種角色:
1)Owner:設定爲這類角色的密鑰可以控制帳戶,有最高權限;
2)Operator:這類密鑰可以轉帳、交互合約、授權等,是用戶最常用的角色;
3)Guardians:這類密鑰可以在其他密鑰丟失時,用來恢復帳戶,效果等同於Argent Vault的社交恢復。Unipass更先進的地方在於,Argent Vault只允許綁定EOA錢包作爲Guardians,而Unipass則可以綁定郵箱而非錢包來做社交恢復,大大降低了用戶門檻。
來源:https://docs.wallet.unipass.id/architecture/key-management
上述功能體現了智能合約錢包的特性,而MPC則體現在上圖中的Master Key中。Master Key是默認會爲用戶生成的主密鑰,包含Owner和Operator角色,可以說是Unipass帳戶中最重要的密鑰,而這一密鑰的生成管理使用了MPC技術。
MPC方案在分片存儲上存在這樣一個困境:如果客戶端分片由用戶保管,那麼就存在丟失風險;如果客戶端分片實質上仍然由第三方保管(如Particle Network),就存在中心化風險,密碼可以被服務商訪問。Unipass選擇了前者:客戶端分片中的Password由用戶自己保管,允許丟失,萬一丟失的情況下可以通過Guardians來進行社交恢復。相對於純MPC錢包,Unipass在保持去中心化的前提下,通過智能合約的社交恢復來保證帳戶安全。
來源:https://docs.wallet.unipass.id/architecture/master-key
此外,Unipass也支持ERC-4337協議,未來可以提供帳戶抽象所實現的功能。
本文從「無助記詞」的場景出發,探討了幾種典型的實現方式。第一種是以Web3Auth和Particle Network爲代表的純MPC錢包,這類錢包仍然是EOA錢包,只是將私鑰分片。MPC方案簡單高效,但是面臨中心化或者密鑰丟失風險。第二種是以Argent爲代表的智能合約錢包,Argent通過手機本地存儲密鑰來實現無助記詞功能,並通過智能合約的社交恢復來保障帳戶安全,應對密鑰丟失。第三種則是Unipass的MPC+智能錢包混合方案,將最主要的密鑰通過MPC技術實現無助記詞,再通過智能合約的角色權重管理來實現社交恢復,達到和Argent一樣的目的。
可以看到,「無助記詞」本質是這樣一種取舍:用較低安全級別存儲密鑰的方式,來提升用戶登入便捷度。相應地,要麼用部份托管的手段來應對密鑰丟失風險,要麼通過智能合約的社交恢復來保證安全。智能合約錢包並不能直接實現無助記詞功能,但是其社交恢復卻能給低安全級別的密鑰存儲帶來托底保障,而且去中心化的實現方式更符合Web3價值觀。
不過另一個值得思考的問題是:什麼樣的用戶需要無助記詞錢包?Web3用戶幾乎人手多個小狐狸帳號,是否會註冊新錢包完全取決於項目方集成了什麼錢包,在這樣的背景下,無助記詞錢包似乎更適合Web2用戶。但是這部分用戶原本就是需要教育、獲客成本更高的羣體,很難轉化成高價值Web3用戶。無助記詞錢包面臨着類似社交賽道的問題:如何吸引大批量、低資產屬性的用戶。