什麼是安全的多方計算?

安全多方計算

安全的多方計算是密碼術的一個子領域,其目的是為各方創建方法,以在其輸入上共同計算功能,同時保持這些輸入為私有

概述

藉助區塊鏈,強制執行正確性的解決方案大體上是讓每個參與者自己驗證鏈。要確認一個新塊,需要完全驗證該塊以確保正確性。擴大區塊鏈交易能力的大量努力(例如閃電網路)要求利用時間承諾來建立保真度債券(斷言/挑戰協議),以便斷言的數據必須處於爭議期限內,區塊鏈上的參與者才能執行狀態。這種斷言/挑戰發展使一個人可以斷言某個特定狀態是正確的,如果值不正確,則存在爭議期,在此期間,另一位觀察者可以在某個約定的時間之前提供對該斷言進行質疑的證據。在欺詐或錯誤行為的情況下,區塊鏈可以懲罰錯誤的行為者。這創建了一種機制,鼓勵參與者在斷言錯誤狀態的情況下強制執行「且僅」。

通過具有斷言/挑戰證明的構造,感興趣的參與者可以向根區塊鏈(例如以太坊)上的不感興趣的參與者確認基本事實。這種結構不僅可以用於支付,還可以擴展到計算本身,因此,區塊鏈是合約的裁決層。但是,假定所有各方都參與了驗證計算。例如,在閃電網路中,構造會對其產生影響,以便可以建立對計算合約狀態的承諾(例如,使用條件狀態的多簽名交易的預簽名樹)。

這些構造考慮了大規模的強大計算,但是,存在一些問題需要大量外部狀態的總和(即,整個系統/市場的總和,大量共享/不完整數據的計算,大量的貢獻者)。這種對多方脫鏈狀態(「狀態通道」)的承諾要求參與者完全驗證計算,否則,即使在單回合遊戲中,在計算本身中也建立了相當數量的信任。此外,通常存在「回合」的推定,即在合約啟動之前必須完全展開執行路徑,這為參與者提供了退出並強制執行鏈上昂貴的計算的機會(因為無法證明哪一方暫停) 。相反,我們試圖設計一種系統,使計算可以在鏈外進行,但最終在鏈上可強制執行,並且可在鏈上更新最少的情況下擴展到每秒數十億次計算。這些狀態刷新發生在一組自主的權益證明驗證程序中,這些驗證程序被激勵採取欺詐行為所強制的正確行為,從而允許進行計算而沒有單個參與者能夠輕鬆地停止計算服務。這需要能夠限制圍繞數據可用性問題的問題(即,塊扣繳),最大程度地減少拜占庭行動者在根鏈上發生的狀態更新,以防止根鏈上的風險折算交易費用,以及一種機制強制狀態更改。

定義

在MPC中,給定數目的參與者p1,p2,…,pN各自具有私有數據,分別為d1,d2,…,dN。參與者希望在該私有數據上計算公共函數的值:F(d1,d2,…,dN),同時將自己的輸入保密。

例如,假設我們有三方愛麗絲,鮑勃和查理,分別用輸入x,y和z表示他們的薪水。他們希望發現這三者中的最高者,而又不會彼此透露他們各自能賺多少。從數學上講,這轉化為它們的計算:

F(x,y,z)=最大值(x,y,z)

如果有一些值得信賴的第三方(例如,他們有一個共同的朋友托尼,他們知道可以保守秘密),那麼他們每個人都可以將薪水告訴托尼,他可以計算出最高工資,然後將這個數字告訴所有人。 MPC的目標是設計一種協議,通過僅相互交易所消息,Alice,Bob和Charlie仍可以學習F(x,y,z),而無需透露誰做什麼,而不必依賴Tony。他們應該通過參與協議來學習更多,而不是通過與廉潔,完全可信賴的Tony進行交互來學習。

具體來說,各方可以學習的就是他們可以從輸出和自己的輸入中學到的東西。因此,在給定的示例中,如果輸出為z,則Charlie知道他的z是最大值,而Alice和Bob知道(如果x,y和z不同),則它們的輸入不等於最大值,並且保持的最大值等於z。基本方案可以很容易地推廣到當事方具有多個輸入和輸出的位置,並且該函數向不同的當事方輸出不同的值。

隨意地說,多方計算協議旨在確保的最基本屬性是:

  • 輸入隱私:不能從協議執行期間發送的消息中推斷出有關各方擁有的私有數據的信息。可以收集的有關私有數據的唯一信息是僅從函數的輸出可以推斷出的任何信息。
  • 正確性:在協議執行過程中,願意共享信息或偏離指令的對抗性合謀方的任何合法子集都不能強迫誠實的方輸出錯誤的結果。此正確性目標有兩種形式:保證誠實的一方計算正確的輸出(「穩健」協議),或者如果發現錯誤則中止雙方(「帶有中止」的MPC協議)。

從簡單的任務(例如拋硬幣)到更複雜的任務(例如電子拍賣(例如計算市場清算價格),電子投票或隱私保護數據挖礦),實際應用範圍廣泛。一個例子就是百萬富翁的問題:兩個百萬富翁想知道誰更富有,以至於他們兩個都不了解另一個的凈資產。這種情況的解決方案實質上是安全地評估比較功能。

資訊來源:由0x資訊編譯自NVESTLABS。版權歸作者manasa所有,未經許可,不得轉載
提示:投資有風險,入市需謹慎,本資訊不作為投資理財建議。請理性投資,切實提高風險防範意識;如有發現的違法犯罪線索,可積極向有關部門舉報反映。
你可能還喜歡