你知道還有比 zk-SNARK、FHE 更逆天的技術嗎?有請 MPC 登場

在越來越多對數據隱私的擔憂聲中,政府開始行動制定數據使用合規法案。而另一方面,對數據的保護,卻產生了一個矛盾:大量的數據因爲需要依法保護而無法被聯合在一起計算

反過來試想一下,如果全世界的基因數據能夠聯合在一起分析,人類或許可以更快找到癌症的解藥。這讓我們大膽地去思考,是否存在一種保護數據安全而又能夠有效利用數據的方式?


1980 年代,姚期智院士提出了「百萬富翁」問題:兩個百萬富翁街頭邂逅,他們都想炫一下富,比比誰更有錢,但是出於隱私,都不想讓對方知道自己到底擁有多少財富,如何在不借助第三方的情況下,讓他們知道他們之間誰更有錢?

在這個經典問題之下,誕生了「多方安全計算」(Multiparty Computation, MPC) 這門密碼學分支。MPC技術能夠讓數據在不泄露的情況下聯合多方的數據進行聯合計算並得到明文計算結果,最終實現數據的所有權和數據使用權的分離。

本文作者章磊,ARPA 聯合創始人 & 首席科學家,美國喬治華盛頓大學金融工程碩士,擁有十年深度學習、AI 算法和風險建模經驗,並對密碼學有深度鑽研。曾於硅谷最大的股權衆籌公司 CircleUp 擔任資深數據科學家;此前其就職於世界銀行、AIG、PineBridge 等大型金融機構,精通人工智能和量化策略。同時章磊於 2017 年創立星塵數據,爲 AI 行業提供數據賦能。

原文標題:《姚期智提出的 「 百萬富翁 」 難題被破解 ? 多方安全計算 MPC 到底是個什麼鬼?》
作者:章磊
編輯:Aholiab

今天我們就來介紹一下 MPC 的出現背景和應用場景。在開始前,我們先來看看如今數據對於我們的意義。

我們正生活在數據保護的時代

個人隱私和數據隱私

2018 年 5 月 25 日正式生效的歐盟通用數據保護條例(GDPR)引起全球廣泛關注,這部被稱爲「史上最嚴」的數據保護法案將對科技行業和個人生活產生深遠影響,因爲它是人類歷史上第一個定義個人數據所有權的規則,它在法律上明確規定了個人數據是個人所有的數據資產

這項法律將保障人們對個人數據有更多的掌控權。舉例說明,社交網絡公司在使用你的數據前必須徵得你的同意。此項法律對創 Facebook 等科技巨頭無疑影響很大,因爲這些公司就指望着用戶數據賺錢。

商業利益中的數據保護

數據是現代商業與個人的核心價值與重要資產。數據正在重新塑造人類生活的方方面面,包括 金融、廣告、零售、醫療、物流、能源和工業等。

隨着人工智能時代的到來,數據在現代商業活動中也成爲了最重要的競爭資源。巨頭公司利用數據壟斷的優勢建築起了行業壁壘。

例如,打車軟件公司擁有人們每天出行的數據,包括乘客的起點與終點,他們可以利用這些數據來優化自己的產品和業務,甚至是用這些數據來進行一些預測,比如一個房地產價格指數或者一個政府道路優化方案。

數據的融合可提高其價值,數據的交叉使用可產生協同作用。但因爲數據本身的可複製性和易傳播性,一經分享無法追蹤使用情況,數據資產的分享與協同開發受到嚴重製約。

既然如此,那數據保護的價值又從何說起呢?

被保護的數據如何產生價值 ?

雖然個人對隱私的保護、商業公司的數據保護,都是正當的利益訴求,但卻產生了一個個數據孤島。擁有數據源的中小型公司無法安全的將數據共享或變現。

對於數據使用者,大數據公司、開發者和科學家僅能接觸到有限的數據集,並且費用高昂。與運營商等大數據源的合作需要開發人員現場部署模型於數據源的服務器上,模型算法存在泄露風險,且效率低下。

一方面,數據需要得到保護和隔離;另一方面,數據對人類社會的價值在於聯合在一起的計算和分析這是否是一個不可破解的矛盾?

理想情況下,我們可以委託一個安全可信的第三方對數據進行計算。然而,現實中,要麼數據太重要而沒有第三方,要麼第三方會因爲有了數據而擁有過多的權利,例如信用卡公司和電商公司,如果乙方能有對方的數據,會非常可怕。

要解決這個問題,就回到了本文最初提到的「多方安全計算技術」(MPC)。通過 MPC,我們可以實現聯合多方的隱私數據,在沒有一個可信第三方的情況下,一起計算並得到分析的結果,而不擔心各自的數據被泄露。

MPC 是一套基於現代密碼學的協議組,這個工具組裏面有很多組件組成。

簡單的來說,這套工具組裏面有零知識證明(ZKP)、概率加密、信息理論消息認證碼(MAC),各種分佈式溝通協議和不經意的轉移(OT),以及最重要的基礎技術:祕密共享和祕密分片計算是實現安全多方計算的基礎

特別是,在被動對手的情況下,Shamir 的多項式祕密共享是多方計算的基石,而 Chor、Goldwasser、Micali 和 Awerbuch 的可驗證祕密共享在拜占庭對手問題中起着類似的作用。

在過去 35 年中,MPC 算法和工程設計得到了實質性的改進,並且已經達到性能上不需要考慮協議性能視爲使用的主要障礙的程度。

MPC 社區採用了事實上的基準,即在兩個參與者之間執行 AES 加密,一個帶有加密消息,另一個帶有密鑰。AES 包含各種算術和布爾運算符,因此非常適合直接在硬件和 MPC 中進行計算。 在過去十年中,安全計算提高了 4-5 個數量級。

出於比較目的和考慮摩爾定律的影響,下圖顯示了在相同時間段內本機 AES 計算的性能。

你知道還有比 zk-SNARK、FHE 更逆天的技術嗎?有請 MPC 登場通過 MPC 實現的性能提升

接下來,我們再來通過一個例子,更清晰的理解 MPC 的實現原理。請看下圖:

你知道還有比 zk-SNARK、FHE 更逆天的技術嗎?有請 MPC 登場

根據上圖所示,假設我們的目標是聯合計算所有各方祕密數據的總和,這可以通過祕密共享來實現。

首先,每一方將其祕密號碼隨機分成三部分,並將其中兩部分別分享給其他部分。

然後,每個方在本地對來自其他對等方及其自身的所有三個共享進爲了公開最終結果,每個方的本地總和(local sum)都會公開給同行(Peers)。

最後,任何一方都可以通過將所有三個公共本地總和相加來知道最終結果。

祕密共享的關鍵點在於,通過了解祕密共享,一方不會獲知有關私有數據的信息。例如,在通過揭示祕密共享 5 的三方計算中,祕密數據可以是 10、79、-11 這樣的隨機數字。即使知道祕密共享,該方也可以猜測私人數據,而不是猜測隨機數。

由於在整個過程中沒有顯示隱私數據,因此祕密共享計算可以保護隱私。對手方不能發現祕密信息。

正式因爲擁有這樣的特性,MPC 在現實世界中受到越來越多的重視,也被更多領域所採用。比如以下 3 類場景。

聯合徵信

MPC 可賦能金融、保險企業對客戶的負債率等風險指標進行聯合分析。目前各家金融、保險、資產管理機構只掌握客戶部分數據,從而導致風險評估誤差。聯合分析不泄露各參與方數據,對客戶的風險有整體評估,在多頭借貸等場景下能有效降低違約風險。

多維度健康分析

MPC 賦能醫療機構對病人在多家醫院的病歷和智能硬件生物數據進行分析,從而在病人、醫院和智能硬件廠商數據不泄露的情況下,對病人有更精準的診斷。同時,針對醫療機構的聯合數據分析可以讓藥品研究機構對某特定地區特定病種有更全面的瞭解。

聯合精準營銷

MPC 賦能商戶對潛在客戶多維度信息進行分析,從而更精準的投放廣告。廣告投放機構可以從更多數據維度對客戶購買意向建模,且數據源不泄露個人隱私數據。

你知道還有比 zk-SNARK、FHE 更逆天的技術嗎?有請 MPC 登場

MPC 與現實世界

以上是幾個例子過於簡單,現實世界的情況比這更復雜。

例如,用於添加的 MPC 是容易的,因爲可以在祕密共享上本地計算加法操作。但是,乘法更加困難,因爲如果沒有其他工具幫助,它不能單獨在本地共享上計算。不過利用同態加密(Somewhat Homomorphic Encryption, SHE),有更復雜的 MPC 協議可以實現安全的乘法。

好消息是任何函數都可以轉換爲加法和乘法的組合,因此基於祕密共享的 MPC 能夠進行任何類型的通用計算,就像現代 PC 一樣。

另一個例子是主動惡意節點(Actively Malicious)。主動惡意被定義爲節點將偏離協議,與被動惡意相反,其中節點試圖學習其他對等方祕密數據但始終遵循協議。

在上述祕密共享示例中,雖然沒有節點可以學習其他私有數據,但是惡意節點可以發佈錯誤的本地共享總和,從而使所有其他對等體學習錯誤的最終結果。

有各種方法可以發現這種惡意行爲,甚至可以防止這種行爲的發生。最流行的一種稱爲消息驗證代碼(MAC),其中每個操作都與一個數字相關聯,以驗證其正確性。一旦節點發出錯誤的消息,這個錯誤將很容易被其他節點驗證

而僞造一個能通過驗證的錯誤數據的難度將是極其困難,這個難度非常大以至於造假的成本大於數據的收益

MPC 與其他實現技術的對比

除了 MPC 之外,還有一些能夠實現類似功能的技術,包括同態加密、零知識證明、可信執行環境等。

但這些技術與 MPC 相比,都有一定的不足,我們一個個的來看看。

同態加密

同態加密(HE)是一種加密形式,允許對密文進行計算,生成加密結果,加密後的結果與操作結果相匹配,就好像它們是在明文上執行一樣。

使用這樣的工具,可以在不危及數據隱私的情況下外包存儲和 / 或計算。 因爲 HE 允許在保持加密的同時計算加密數據,所以它已被廣泛研究作爲安全計算的候選者。

你知道還有比 zk-SNARK、FHE 更逆天的技術嗎?有請 MPC 登場

然而,即使最前沿同態加密方案仍然不能提供計有效運算深度算術電路。

首先,「bootstrapping」爲已經非常繁重的過程增加了額外的成本。目前,HE 的實際應用主要集中在評估函數的優化上,這通過限制電路倍增深度來避免昂貴的過程。

此外,根據該方案和目標安全級別,使用 HE 方案將導致巨大的密文擴展(從 2,000 到 500,000 甚至 1,000,000 倍的開銷)。這是因爲同態方案必須是概率性的,以確保語義安全性和特定的基礎數學結構。正如我們所看到的,SHE 方案在 HE 變體中是最有希望的,它將在我們後面提到的安全計算程序中使用。

零知識證明

零知識證明(ZKP)是一種這樣的方法:一方(證明者 Peggy)可以向另一方(驗證者 Victor)證明她知道值 x,而不傳達任何信息,除了她知道值 x (讀起來好繞口)

最近很多的區塊鏈項目在嘗試利用 ZKP 作爲可信的離線計算解決方案。在這些協議中,該運算模塊被編譯成電路並傳輸到第三方執行環境,在該環境中將使用該電路評估數據

不過,與 FHE 方案類似,ZKP 無法證明在遠程環境中完成的實際工作量。 除此之外,ZKP 也無法保證計算是從惡意方的黑客手中獲得的。

可信執行環境

可信執行環境(TEE)是一種在防分離內核上運行的防篡改處理環境。理想的 TEE 保證了執行代碼的真實性、運行時狀態、寄存器、內存和敏感 I /O 的完整性、以及存儲在持久內存中的代碼、數據和運行時狀態的機密性。此外,它應能夠提供遠程證明,證明其對第三方的可信賴性。

硬件製造商渴望提出他們自己的可信硬件解決方案,但缺乏不同平臺的通用標準。最傑出的工藝單元設計人員已將其硬件安全模塊嵌入其產品中(例如英特爾軟件保護擴展(SGX),ARM TrustZone,AMD 安全加密虛擬化(SEV)和 NVIDIA 可信小內核(TLK)。

然而,最近的一些黑客攻擊證明 SGX 還不能夠承載協議級別的數據安全保護。 事實上,這種看似安全的協議並不安全。

遠程鑑權不會阻止一個惡意雲服務提供商首先忠實地響應遠程證明查詢,然後在 enclave 外部模仿遠程鑑定協議(例如 KeyGen 和 CSR)。

換句話說,SGX 不是爲「通用組合」(Universal Composition)設計的協議,其中協議的真實行爲和理想世界定義(功能)在計算上對於每個對手控制的環境都是無法區分的。簡單來說,使用 TEE,可以信任硬件,但不能信任控制硬件的人因此,SGX 最好用於許可網絡,其中所有節點都經過預先批准,環境經過認證和信任

你知道還有比 zk-SNARK、FHE 更逆天的技術嗎?有請 MPC 登場

在對即同態加密、零知識證明和可信執行環境有了基本瞭解之後,我們可以得出這樣的結論:雖然某些技術具有計算效率等優勢,但它們無法提供無先驗網絡(permissionless network)所需的安全性和功能

具體來說,一個好的技術解決方案,需要能夠驗證計算的安全性,正確性和隱私保護性:

  • 效率:計算的效率;
  • 隱私保留:在這裏指的是在不向任何節點透露細節的前提下,數據集上的函數計算能力。這是安全計算的核心;
  • 證明正確性:證明計算工作實際上是使用規定的函數。在無信任的網絡中,證明以正確的方式執行某個函數是非常重要的;
  • 安全性證明:證明計算實際上是在安全環境中進行的。

那麼從 MPC 與上述 3 中技術的對比中,我們可以得到如下結論:

你知道還有比 zk-SNARK、FHE 更逆天的技術嗎?有請 MPC 登場

最後,MPC 是一個龐大的密碼學領域,在密碼學和分佈式系統中結合了許多概念和工具,它是一個不斷髮展的活躍研究領域。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章