密碼學可以解決這個問題。如果子密鑰儲存在不同的設備中,可以以去中心化的方式還原原密鑰,而不是在某臺設備上完成,這種技術叫門限簽名(threshold signature)技術。典型的例子就是使用雙重安全機制的電子錢包(N=2且K=2),如果兩個子密鑰分別保存在個人電腦和手機上,妳可以在電腦上發起付款,這時,電腦會生成壹個簽名片段,並發送到妳的手機上,然後,手機會提示妳付款信息(包括收款人、金額等),然後等待妳確認。如果妳確認了付款信息,這時,手機會利用它的子密鑰完成整個簽名,然後廣播到區塊鏈上。萬壹黑客控制了妳的電腦,試圖把比特幣轉到他的賬戶,妳根據手機上的付款信息就知道有問題了,從而不會確認這筆交易。門限密碼涉及的數學細節比較復雜,員外也看不懂,所以就不展開討論了。
門限簽名是密碼學中的壹項技術,將壹個密鑰切分成不同片段,分別儲存,在交易簽名時無須還原原密鑰。而多重簽名是比特幣腳本的特性,把壹個比特幣賬戶的控制權交給多個密鑰,這些密鑰***同保障賬戶安全。門限簽名和多重簽名都能克服密鑰單點保存的缺陷。
還有另外壹種方法可以克服密鑰單點保存的缺陷,即多重簽名(multisignatures),這個名詞在第3章曾出現過。通過比特幣腳本,可以直接把壹個比特幣賬戶的控制權交給多個密鑰,而不是將密鑰分存。這些密鑰可以保存在不同的地點,並分別生成簽名。當然,最終完成的交易的信息還是會保存在某臺設備上,但即使黑客控制了這臺設備,他所能做的也只不過阻止這個交易被廣播到整個網絡上去。沒有其他設備參與,他無法生成出壹個正當有效的多重簽名。
舉例來說,假設A、B、C、D、E是壹家公司的創始人,這家公司有許多的比特幣。我們可能會用多重簽名來保護這些比特幣。這5個人,每人都有壹對密鑰,我們可以用其中的3個簽名來保護冷儲存,壹筆交易需要5個人中至少3個人的簽名才能完成。
這樣,只要我們5個人在不同地方且使用不同的安全措施保存各自的密鑰,那麽比特幣就會相當安全。黑客必須盜取我們當中3個人的密鑰,才能盜取比特幣。即便我們其中壹個或兩個背棄了我們,他(們)也無法卷款而逃,因為他們還需要另壹個簽名。同時,如果我們其中壹個遺失了密鑰,其他人還是可以取出比特幣,並轉到新的賬戶,重新設置密碼。總而言之,多重簽名可以比較妥善地管理在冷儲存端的大額比特幣,任何重大事項都需要多人的參與才能實現。
上文中,我們說到,人們使用門限簽名技術的原因是為了實現雙重安全機制或多重安全機制,使用多重簽名技術的原因是為了實現多人對***同財產實現***同控制。實際上,這兩種技術都可以實現上述兩種目的。