完全依賴多方計算技術而沒有多重簽名保護,會降低安全保護並顯著消除交易-時間的可追究性。

原文標題:《多重簽名與多方計算:哪個更安全?》(Multi-Sig vs MPC: Which is more secure?)
作者:Mike Belshe
編譯:幣信研究院

由於其強大的安全性和強大的認證特性,我們在六年多的時間裏一直在倡導使用多重簽名錢包。但是,我們一直在評估新的加密技術進展,而在最近幾個月中,一種被稱爲多方計算(multi-party computation,MPC)的新技術經常被引用。多方計算爲沙米爾祕密共享(Shamir’s Secret Sharing,SSS)提供了一種的強大替代方案,一些錢包提供商認爲,多方計算可能比多重簽名技術更安全、更易於使用。

在本文中,我們將描述多方計算及其與多重簽名錢包安全性有何不同。我們認爲,多方計算與多重簽名技術結合使用時可以提供實用性,但是我們不認爲目前這是一種明智的多重簽名技術替代方法。

依賴多方計算而取代多重簽名,可能並不明智

多方計算的背景

多方計算是一種相對較新的加密方法,可以將私鑰分成多個部分。人們經常把它和一種叫做沙米爾祕密共享的技術相提並論,該技術自 20 世紀 70 年代後期開始出現,用於將單個私鑰拆分爲多個部分。兩種技術之間的關鍵概念是,一個密鑰對的私有部分可以被分爲 N 個部分,因此,爲了使用私鑰創建簽名,需要將這些部分中的 M 個放在一起。此類技術被稱爲_M-of-N_,其中 N 個總部分中的 M 個部分保護底層數據。

和多重簽名技術一樣,沙米爾祕密共享和多方計算都可以幫助減輕兩個關鍵風險:

  1. 盜竊:如果少於 M 個部分被盜或被黑客入侵,對手就不可能生成有效的簽名
  2. 損失:在大多數情況下(M 小於 N),一部分無意損失可以通過備用部分來彌補。

與沙米爾祕密共享相比,多方計算具有一項重要優勢。對於沙米爾祕密共享,在將其用於簽名之前,需要先在單臺機器上重新組裝密鑰的獨立部分。這會在重新組裝密鑰的機器上產生一個單一故障點。相比之下,多方計算不需要在單臺機器上重新組裝各個部分。相反,每個部分都可以在單獨的機器上用於數學函數,並且,只有在把 M 個部分應用於此數學函數之後,簽名纔有效。這使得每個部分都可以保持完全分離,並避免了單一故障點。

沙米爾祕密共享和多方計算的一個有趣的好處是,它們可以在區塊鏈不知道利用了它們的情況下使用。這對某些尚不提供原生多重簽名功能的區塊鏈(例如門羅幣)來說意義重大,因爲多方計算簽名可以在外部應用。

與多重簽名的比較

從功能的角度來看,每個簽名錢包使用 M-of-N 密鑰的多重簽名錢包類似於基於多方計算的錢包,後者將單簽名錢包的 M-of-N 部分用作密鑰。不同之處在於,多重簽名錢包將使用由不同私鑰生成的獨特簽名來保護錢包,而多方計算僅使用創建單個簽名,而與參與的私鑰部分的數量無關。

簽名可追究性

基於多方計算的錢包引入了一個在多重簽名錢包那裏不存在的重大問題:可追究性(accountability)。對於多重簽名的錢包,我們總是很清楚地使用了哪些私鑰來簽名交易。這很重要,因爲我們通常會將單把私鑰分配給特定個人,並且瞭解參與簽名交易的人員至關重要。但是,使用基於多方計算的簽名,我們無法區分使用了哪個密鑰部分來簽名交易。多方計算完成後,所有簽名看起來都是相同的。

可追究性聽起來似乎並不是一個巨大的缺點,但它在貨幣系統中至關重要,尤其是在考慮通常用於密鑰各個部分的人員和存儲類型的差異時:

  • 人員

密鑰可能存儲在不同的人那裏。如果密鑰存儲在公司高管(首席執行官、首席財務官、首席安全官等)那裏,並且其中有 2 人合謀監守自盜,那麼調查人員將如何知道誰是犯罪分子?當被問到誰簽署了交易時,無辜的高管將如何爲自己辯護?

  • 地理

密鑰可能存儲在幾個分開的位置。如果需要存儲在 5 個位置的 3 把私鑰,則取證的一個關鍵部分就是要知道哪些位置參與了交易。

  • 多機構

安全密鑰材料可以存儲在幾個分開的公司那裏。如今,一種常見的做法是向獨立公司的獨立各方提供備份密鑰。當可以明確標識備用密鑰,正如多重簽名安全性時,資金所有人就不會被備用持有者盜取資金。但是,如果多方計算取消了可追究性,則備份持有者將不願意持有備份密鑰,因爲無法區分備份密鑰持有者是否參與了欺詐交易。

同行評審

當今的許多多方計算實現者都在使用專有的實現和方法,都只有有限的公開評審或根本沒有。正如施奈爾在《論安全》中所說:「從最笨拙的業餘愛好者到最好的密碼學家,任何人都可以創建自己無法破解的算法。」不幸的是,許多加密算法從未在數學上被證明是有效的——相反,密碼學家在接受算法可信且安全之前依賴於同行評審和足夠的評審時間(以年或數十年爲單位)。由於橢圓曲線數字簽名算法(ECDSA)多方計算太新了,因此供應商不願分享他們的算法、源代碼和實現細節。當前的實現已經提交了許多專利申請,這可能進一步限制這些工具的使用。缺乏透明度以及限制訪問這些算法的企圖,使得我們無法驗證其正確性或安全性,或預測可能的許可成本。

相比之下,多重簽名技術是經過實踐檢驗的。它採用了衆所周知的、經過嚴格審查的算法,並具有多種實現方式。基於多重簽名的錢包不承擔額外的加密風險,它們使用的是在實踐中經過最嚴格審查和了解的簡單加密算法。

缺乏硬件安全模塊(HSM)支持

同樣,基於多方計算的簽名的問題還在於缺乏支持該技術的工業級硬件安全模塊(Hardware Security Modules,HSMs)。儘管硬件安全模塊被金融機構用於保護私鑰已有數十年,但當前的硬件安全模塊並不支持全新的多方計算加密。安全專家早就認識到,必須通過硬件安全模塊專門存儲和訪問密鑰,才能維護基本安全性,多方計算也不例外。密鑰或密鑰的部分必須被安全地存儲。如果多方計算實現者們不爲其技術建立起定製化的硬件安全模塊,我們可以說它的安全性低於單一密鑰系統。

對冷存儲和硬件安全模塊需求的影響

多方計算的一些支持者提出,多方計算消除了對「冷存儲」的需求,但事實並非如此。

「冷存儲」僅指私鑰_離線_存儲的任何錢包。類似地,「熱存儲」指的是_在線_存儲私鑰的錢包。無論是一把還是三把私鑰,無論是否使用多方計算,保護私鑰的需求都_完全相同_。

事實是,黑客繼續困擾着整個行業。Facebook 已被黑客入侵。Google 已被黑客入侵。美國政府屢遭黑客入侵。如果多方計算私鑰部分在線存儲,則它們與在線存儲的任何其他數據一樣容易遭受黑客和盜竊的風險。

結論

綜上所述,當今數字錢包最強大的安全性仍然是多重簽名錢包。通過將一把或多把私鑰分成多個部分,多方計算可用於增強現有的多重簽名方案。例如,如果利用三個人來保護一個 2-3 多重簽名錢包,那麼這三個用戶中的每個人都可以使用多方計算細分其私鑰,並將其多方計算密鑰部分存儲在獨立的機器上。但是,完全依賴多方計算技術而沒有多重簽名保護,會降低安全保護並顯著消除交易-時間的可追究性。

來源鏈接:blog.bitgo.com