MetaGravity
MetaGravity

MetaGravity - yieldDAO contributor

下一代智能錢包:合約錢包 vs MPC

SAFE VAULT 使用隔離安全來改善和解決錢包私鑰洩露問題。並引入一種安全且有意義的新方式來避免因私鑰丟失而導致的錢包資產死鎖

錢包作為Web 3.0的入口,其用戶體驗直接影響著加密行業何時能迎來大規模應用。雖然各大錢包在這方面做出了很大的努力,但在普通用戶看來,錢包的體驗還是差強人意。託管錢包雖然使用方便,但安全是一大隱患,錢包被盜事件層出不窮。自託管錢包雖然相對安全,但以比傳統互聯網的用戶名密碼系統複雜得多的方式保存長助記詞和私鑰。根據 Chainalysis 研究報告,截至 2021 年,流通中的比特幣約有 20% 丟失,原因是所有者不記得私鑰。

在波哥大舉行的 Devcon 6 大會上,Tomasz Tunguz 提到了 Web 3.0 的一些統計數據:各主流公鏈的累計 DAU 約為 250 萬,而傳統互聯網的 DAU 為50 億因此,Web 3.0 還很遙遠大規模採用。

關於錢包的三個問題

Web3.0的大規模普及需要解決一些關鍵問題,包括一是用戶體驗問題,二是錢包帶來的安全問題。

  1. 一個用戶體驗問題:

A. 助記詞和私鑰難以記憶和保存,導致用戶使用門檻高

2.兩個安全問題:

B. 助記詞和私鑰洩露導致資產被盜。

C. 助記詞和私鑰丟失導致資產丟失。

為什麼只能通過私鑰來驗證呢?要回答這個問題,我們需要一些背景知識和概念。首先是以太坊上的賬戶類型。以太坊賬戶有兩種類型:外部賬戶(EOA)和合約賬戶(CA)

合約賬戶是智能合約,其代碼由以太坊虛擬機運行。外部賬戶就是我們通常用來發起交易的錢包賬戶,之所以稱為“外部”是因為賬戶本身沒有代碼,因此獨立於以太坊虛擬機,由用戶通過私鑰控制。

合約賬戶雖然有自定義邏輯,但不能主動發起交易。因此,合約狀態的任何變化都是由支付 ETH 的外部賬戶發起的。

那麼如何驗證一筆交易的合法性呢?以太坊上的驗證方式與支票交易的發起者和資產(以太幣)的擁有者相同,即這個外部賬戶的擁有者。因此,用戶需要通過錢包對交易進行簽名。簽名的正確性可以通過驗證簽名來自公鑰對應的私鑰來驗證,所以用戶必須有私鑰。這就是為什麼無論你如何優化錢包的用戶體驗,你都無法繞過私鑰。

前面說了,外部賬戶是沒有代碼邏輯的。如果要引入更複雜的邏輯來實現其他功能,比如多籤等,不能直接在外部賬戶上進行。那麼,目前解決這個問題的方法有哪些呢?我們將介紹兩種被認為最可行和有效的解決方案: MPC錢包和智能合約錢包。

MPC錢包

MPC,即多方計算,是一種重要的密碼安全措施。它包含了多種技術方案,本文中主要指的是MPC-TSS。而MPC錢包則通過多方計算私鑰,實現鏈下“多重簽名”、“跨鏈”等更複雜的驗證方式。

簡單來說,就是將一個私鑰分解成多個碎片,將私鑰碎片交給一個去中心化的網絡進行計算和加密。當需要私鑰簽名時,將這些片段拼接在一起形成完整的私鑰。 MPC的核心思想是去中心化控制,達到分散風險或提高備災能力的目的,有效避免單點故障等安全問題。

MPC錢包“多方參與”的概念有點類似於“多方簽名錢包”,但實際上,雖然可以實現“多方參與”的功能,但兩者的實現方式不同。

我們之前知道的多重簽名錢包,比如Gnosis Safe等,都是建立在智能合約之上的錢包,在合約中定義了驗證邏輯,比如如果需要驗證一筆交易,就需要多個私鑰密鑰,或用於驗證的五個私鑰中的至少三個。這類錢包屬於後文提到的智能錢包。

而MPC錢包則是將一個私鑰分解成多個碎片,驗證過程只涉及一個私鑰。計算網絡是鏈下的,與智能合約沒有聯繫。

智能錢包

智能合約錢包,顧名思義,就是基於智能合約而非外部賬戶的錢包。市場上已經有很多智能合約錢包,但由於這些智能合約是定制化的,缺乏統一的行業標準,存在合約漏洞和與其他合約的兼容性,所以沒有得到廣泛應用。

即將到來的以太坊上海昇級,近期由於“賬戶抽象”提案EIP-4337的重大進展,智能合約錢包再次成為熱門話題。那麼賬戶抽像到底是什麼意思呢?實現賬戶抽像後,能給用戶帶來什麼樣的新體驗?

在了解以太坊上的賬戶抽象之前,我們首先需要了解CS中的抽象概念。

“抽象”是計算機科學中最重要的概念之一,指的是對外提供必要的關鍵信息,同時隱藏其背後的實現細節,讓開發者在處理任務時只需要關注這個抽象層的一個抽象層。

和賬戶抽像一樣,我們作為錢包用戶,還需要考慮很多因素,比如gas price、gas limit、交易阻塞等複雜的手續費邏輯。根本原因是基於外部賬戶的錢包不能很好地“抽象”,這直接導致用戶不得不處理很多不應該由用戶處理的問題。那麼如何解決呢?

邏輯很簡單,我們可以抽像出外部賬戶和合約賬戶,讓外部賬戶更接近合約賬戶,這樣我們就可以通過智能合約給錢包更複雜的邏輯。智能合約錢包能夠實現的功能,不僅僅是“多簽”的場景。

如果EIP-4337能夠對以太坊賬戶進行系統升級,我們作為用戶可以獲得哪些新的體驗?理論上,任何可以通過智能合約代碼定義的功能都可以實現。首先,智能合約錢包可以通過非secp256k1驗證算法進行驗證,用戶無需面對長密鑰對和助記詞。

同時,智能合約也可以賦予密鑰更多的邏輯。例如在多重簽名場景下,為每個私鑰定義不同的權限:50USDC以下的交易需要私鑰A簽名,50USDC以上的交易需要私鑰B簽名,2000USDC以上的交易需要私鑰ABC共同簽名, 等等。

另外,通過移動端與區塊鏈交互會更容易,我們可以授權一個手機獨有的key,我們可以定義這個key加上限制,比如只能和幾個固定的智能合約進行交互,或者小額交易的智能驗證。其他可實現的功能包括批量交易一鍵授權、交易黑名單等。總之,智能合約錢包的想像空間非常大。

應用

1.安全庫

Safe Vault — Trustless Ethereum self-custodial contract safe,是一系列開源且安全的以太坊智能合約。您存入的資金(ETH 和 ERC20 資產)可以安全地“託管”,只有金庫的所有者才能按照預先定義的合約比例提取。

沒有第三者

Safe Vault 由 merkle 樹提供支持。通常處理 merkle 樹很複雜並且需要鏈下存儲,並且經常導致一些業務將其作為中心化服務運行。但使用 Safe Vault 則不然。您不需要依賴第三方。它是這樣工作的:

  1. MERKLE TREE ON IPFS:默克爾樹存儲在 IPFS 上(未來將同時在 ARWEAVE 上)

2. IPFS HASH STORED ON ETHEREUM:然後將 merkle 樹的 IPFS 哈希存儲在智能合約中。

因此,Vault 沒有任何存儲您的 merkle 樹的中心化雲,也沒有第三方依賴。一切都在 IPFS 和以太坊上。任何人都可以自己託管 Vault。

安全風險評估

1.合約安全: Safe Vault智能合約是開源的,經過長期測試。它接受第 3 方公開審核並具有無可置疑的安全性。

2.資金安全:每個Safe Vault都是一個智能合約,有自己獨立的地址。由於沒有私鑰,資金一旦存入金庫合約,將按照合約代碼永久存儲和運行,資金安全得到充分保障。

3.安全操作: SV (Safe Vault) 是一個免費的客戶端 Web3.0 界面,可幫助您與以太坊區塊鏈進行交互。我們易於使用的開源平台允許您在鏈上生成 Vault(合約錢包)、與智能合約交互等等。

4.隔離安全:資金一般存放在金庫中,金庫所有者的錢包地址有取款權(相當於金庫鑰匙)。如果所有者錢包的私鑰洩露,由於金庫和所有者錢包是信息隔離的,黑客不知道金庫信息(1.他不知道洩露的是金庫密鑰;2.他不知道 Vault 地址),所以他無法竊取 Vault 資金。

5.針對性攻擊: (1)。如果黑客通過社會工程學攻擊得知某個錢包是Safe Vault所有者的錢包,(2)。然後對其發起後續針對性攻擊,成功獲取到主人錢包的私鑰,(3)。此時,金庫與主人錢包之間的信息隔離已經被打破。黑客可以通過分析工具追踪主人錢包的交易歷史數據,獲取Vault合約地址,對Vault合約發起提現操作。

99% 的安全改進

對於錢包私鑰和助記詞的洩露,SAFE VAULT採用隔離安全的方式進行改進和解決。針對私鑰丟失的問題,SAFE VAULT下一步會引入一個新的安全模塊:“OwnedWithTimer”,允許合約定時器在指定休眠時間後,允許合約指定第二個所有者進入激活狀態,這是一種安全且有意義的新方法,可以避免因私鑰丟失而導致的錢包資產死鎖。

綜合風險分析表明,應用Safe Vault相比一般熱錢包安全性提升99%;但為了100%的資金安全,我們還是建議您:(1)。保護主人錢包私鑰或助記詞安全; (2).保持金庫地址的私密性,維護金庫與所有者錢包之間的信息安全隔離。

下一步,Safe Vault將提供通用、獨立、可擴展、開放的Web3.0 SafeVault API標準和服務,等待以太坊Account Abstraction和ERC-4337提案成熟,逐步引入MPC技術。 ,所以用戶可以仔細體驗。

2.開塊

在最近出現的MPC錢包中,我們注意到2014年出現的歷史悠久的錢包OpenBlock最近通過與OPEN-TSS合作推出了全新的MPC加密協議錢包,採用2-3門限簽名方案(TSS )、審批人模型和多層多維安全防護體系。具有良好的用戶體驗和易用性,不足之處是OPENBLOCK錢包關鍵代碼目前沒有開源計劃,用戶可謹慎體驗

概括

介紹完兩款錢包後,讀者可能會問,這兩種方案哪個更好?筆者認為很難比較,因為MPC錢包和智能合約錢包本質上不是在同一層面上解決問題。 MPC錢包是一種鏈下解決方案,既可以控制基於外部賬戶的普通錢包,也可以控制智能錢包。兩者各有各的用例,並不衝突。因此,筆者將分別列出兩種解決方案的機遇和挑戰。

MPC錢包作為鏈下解決方案,不涉及對以太坊共識層或合約層的改動,用戶成本更低,短期內更具可行性。另外,在跨鏈密鑰等一些特殊的使用場景下,更具有優勢。智能合約錢包是以太坊的系統升級,可以為用戶帶來更多新的體驗和用例。但是,賬戶抽像是一個需要“打動人心”的大工程,需要其他智能合約、開發者、以太坊架構的配合升級。實際操作的困難,使得從2015年就提出的願景,今天並沒有完全落地。智能合約錢包對用戶來說最直接的問題是使用錢包的成本會增加,從創建錢包開始就需要付費。

我們認為智能合約錢包是我們的最終願景,MPC是短期內比較可行的方案,在一些特殊場景下更有優勢。

由於成本問題,未來智能錢包在以太坊主網上實現的可行性和可能性較低。讀者可以多關注Layer 2的賬戶抽象和智能錢包進展,目前EIP-4337是最可行的賬戶抽象方案,很多智能合約錢包項目已經在探索這條路徑,智能錢包的全面落地可能比我們想像的更近。

參考

Wallet2.0時代: 《Wallet2.0時代:mpc錢包vs智能合約錢包》

保險箱: https://safe.io

OpenBlock: https://openblock.com








CC BY-NC-ND 2.0 版權聲明

喜歡我的文章嗎?
別忘了給點支持與讚賞,讓我知道創作的路上有你陪伴。

載入中…

發布評論