安全使用多簽名錢包和社交恢復錢包的兩個關鍵問題是:你選擇誰作為守護者,以及你給他們什麼指示?本文源自Vitalik Buterin《How I think about choosing guardians for sig and social recovery wallets》,由鏈捕手編譯、整理。
(新手科普:FTX 垮台爆紅的冷錢包是啥、有何優缺點;V 神力推的多簽錢包更安全?)
多重簽名錢包(如 Gnosis Safe)是一種簡單安全的資金存儲方式,讓你可以享受到自託管的大部分好處 —— 當表面看起來值得信賴的中心化實體變得不可信賴時,你的資金也不會不翼而飛。但同時你又不需承擔對整個安全設置進行負責的風險。我個人使用多簽錢包來存儲我的大部分資金,以太坊基金會也是如此。
另外一個類似多重簽名錢包的是社交恢復錢包 —— 單一的密鑰可用於簽署交易,但如果該密鑰丟失,可使用其他人持有的一組密鑰來恢復資金。社交恢復錢包比多簽錢包更容易使用,特別是 ERC-4337 帳戶抽象興起,靈魂錢包( Soul Wallet)即將問世,將使該技術變得更加人性化。一旦社會恢復錢包變發展得足夠成熟,我的建議是將社會恢復熱錢包,儲存個人或組織的一小部分資金;將多簽用於冷錢包,儲存個人或組織的儲蓄。
延伸閱讀:以太坊ERC-4337被低估了?淺談「帳戶抽象」的4大超棒功能
多重簽名錢包和社交恢復錢包都依賴於「守護者」(guardian)的概念:一組 N 個地址,通常由其他人持有,其中任何 M 個地址可以批准一個操作(例如,可以設置 N=6 和 M=4)。在多簽名錢包的情況下,每筆交易必須由 N 個守護者中的 M 個人簽字。在社交恢復錢包的情況下,單一的密鑰可以簽署交易,但如果該密鑰丟失,N 個守護者中的 M 個人必須簽署訊息來重置密鑰。
安全使用多簽名錢包和社交恢復錢包的兩個關鍵問題是:(i) 你選擇誰作為守護者,以及 (ii) 你給他們什麼指示?這篇文章將概述我是如何思考這個問題的,其中大部分觀點應該也同樣適用於被用於保障個人和組織資金的多簽和社交恢復錢包。
我們想從守護者那裡得到什麼?
最大限度地降低其丟失密鑰的概率。
最大限度地降低其串通起來偷走你的資金或被脅迫這樣做的概率。
在上述兩種風險已不可避免的情況下,每個守護者的風險應是最大限度不相關的 —— 你想盡量減少其的共同點,因為這種共同風險可能會導致風險,使你的許多守護者同時失去能力或受到影響。
這個問題的答案很簡單,但它指導了我在守護者方面的所有選擇:
守護者可以是你自己的設備,但不要讓過多的設備成為你的守護者。
首先至少有一個守護者會是你自己設備上的錢包,這是很正常的,畢竟這是你自己的資金,不存在會影響去中心化的道理。然而,一旦你擁有一個以上受自己控制的守護者,你就會面臨一個棘手的難題:你對他人的信任降低,也將更多的權力集中在自己身上,如果你被駭客攻擊、被脅迫、喪失能力或死亡,這可能會產生風險。
我的經驗是,應該有足夠的守護者受到他人控制。如果你消失了,還有其他足夠的守護者可以收回你的資金。也就是說,你應該至少控制一名守護者,最多控制 NM 名守護者。另外,每個守護者應該在一個單獨的設備上(筆記本電腦、手機、舊手機等)。
選擇不經常交談的守護者,或者最好是不認識的守護者。
理想情況下,守護者應該不知道對方是誰。這大大降低了他們合謀的風險,此外,他們也沒有充分的理由去了解對方。如果你發生了什麼事,他們仍然能夠找到對方,因為在這種情況下,人們自然會想到一些明顯的標準流程(例如,聯繫你的家人)。
另外,你要盡可能地減少守護者之間的關聯性:不要選擇兩個住在同一個城市(甚至最好是同一個國家)的守護者,或者兩個使用同一類型錢包的守護者,並在不同的操作系統之間進行平衡。
守護者在批准一項操作前應先提出一個密保問題:
當你要求守護者為你批准一項操作(在多簽中,指的是交易;在社會恢復錢包中,指的是重設你的帳戶密鑰),他們不應該立馬開始操作。這對安全來說是一場災難:如果有人駭進你的聊天賬戶,他們可以掃描你的訊息,找出你的守護者是誰,聯繫他們每個人並要求他們確認,從而盜走你的資金。
為避免這種情況,我首選的流程是指示守護者提出密保問題。當你要求確認你的操作時,守護者應該問你一些只有你們兩個人和極少數人知道的事情(例如,「我們上次見面時,我們吃了什麼食物?」),只有在你給出正確答案時才確認操作。
一個很自然的選擇是語音或視訊通話,但在人工智慧已擅長於造假的時代,這種方式不再那麼可信,所以你可能想把語音 / 視訊通話與詢問某種密保問題結合起來。
如果你是「Degen 老手」,確保你的守護者能夠快速反應。否則,你不必提出這種要求。
如果你用鏈上合約從事的事情風險較高,你可能需要快速行動:如果合約有漏洞,就把資金抽出來。如果你馬上要被清算,就把錢轉移出去,等等。如果你有這些需求,那麼你要找到能在短時間內迅速行動的守護者(因此也要找到不同時區的守護者,以便有足夠的守護者在任何時候都能完成交易)來保護你的資金。然而,如果你不做這類事情,那麼速度就不是特別重要,事實上甚至可能是有些有害的,因為說服人們緊急行動是駭客常用的社會工程策略,如果人們厭惡這種精神,那可能反而是一種好事。
每年至少對每個守護者進行一次測試
每年至少做一次測試操作。理想情況下,每年做兩次測試操作,一次使用一半的守護者,另一次使用另一半的守護者。這可以確保你的守護者沒有忘記或丟失他們的帳戶。
更進階的問題:隱私
守護者的挑戰之一是,目前還沒有技術可以使你的財務隱私不受守護者的影響。然而,這是一個可以從技術上解決的技術問題:守護者不是直接守護你的帳戶,而是守護一個「保險箱」合約,你的帳戶和保險箱之間的鏈接被隱藏起來。
在需要恢復之前,使鏈接保持隱藏是非常容易的:例如,你的帳戶可以有一個守護者 CREATE2 合約,只有保險箱可以創建。不過,若想要鏈接在恢復後保持隱藏狀態,需要更先進的 ZK-SNARK 技術。我預計這個問題將在未來幾年內慢慢得到解決。
(本文由作者 鏈捕手 授權,屬作者之觀點不代表動區立場。文章內容與觀點亦不是投資建議。)
📍相關報導📍
安全專家也輸人工智慧?Coinbase高管:ChatGPT-4 檢查出以太坊智能合約漏洞!