從這5個場景, 看MPC多方安全計算的行業應用

買賣虛擬貨幣

作者 | 章磊

責編 | Aholiab

出品 | CSDN、ARPA

在我們之前的“多方安全計算”系列文章中,我們首先透過姚期智教授的“百萬富翁問題”引出了資料安全計算這個密碼學話題,並介紹了多方安全計算在資料隱私中的應用場景。第二期中,我們又簡要的介紹了兩種“多方安全計算”的技術路線以及理論知識。

本期,我們將繼續深入介紹多方安全計算在行業中的應用透過這篇文章,讀者可以瞭解到這樣一個工具是如何在金融科技,機器學習中發揮作用,打破壁壘,保護隱私。也歡迎讀者將安全多方計算放在您的工作場景中來啟發出新的行業應用。

場景1 基金聯合收益計算

在母基金管理中,我們需要計算每個基金的真實收益情況。而基金的持倉資訊是一個非常重要的私密資訊,它代表了基金的價值判斷和策略導向,也是基金公司的核心機密。

一方面是出於管理預警作用所需要的資訊共享,一方面是基金本身的商業資訊的保護,傳統方法必然導致一方的訴求無法得到滿足。

使用MPC計算,不僅能夠同時滿足雙發的利益訴求,甚至可以讓基金資訊得到有效的政府監管、防止出現市場結構性風險,同時保證商業資訊不被洩露。

以一個典型的兩方計算場景為例:一方提供編譯好的計算函式,一方將加密的資料進行聯合計算。程式碼極其簡單,甚至幾行程式碼就能實現其核心邏輯。

場景2 聯合個人徵信(不經意查詢)

個人徵信的場景大家再熟悉不過了,透過多個資訊渠道對個人歷史記錄進行多維度計算,反應出一個人的信貸能力。

透過計算信用等級,貸款機構就能算出風險,並能決定是否放貸。個人資料維度越多,信貸能力的計算越準確。傳統意義上,我們會使用央行給出的詳細個人歷史記錄作為信用模型計算的依據。

而其他渠道的資訊,例如電商購買行為,甚至是手機APP安裝情況,都能幫助反應個人的肖像。

然而,多渠道資訊融合的難度極大。一方面是法律因素:交易個人隱私資訊是違法的;另一方面,處於商業利益的保護,資料共享也會導致資料持有公司失去競爭優勢;再次,查詢方也會暴露查詢的物件和內容,從而在一定程度暴露資訊。

而MPC能解決的核心問題,是透過不經意查詢,達到資料不被公開、查詢物件不暴露、而結果能夠被正確查詢返回。要達到這個核心目的,我們只需要一下幾步:

  1. 資料擁有方將查詢ID和對應數值構建陣列a, b,組成資料庫,並秘密分享。這樣共享的資料不能被任何一方解密。注意ID需要將asic編碼轉化成特定的數值編碼,方便查詢;

  2. 查詢方將查詢ID進行秘密分享,這樣所有人都不知道真實的ID是什麼。這裡ID也進行了相應的數值轉換;

  3. 透過遍歷計算得到相應的位置值。這裡兩點需要注意:a)查詢必須遍歷整個列表而不能終止,不然會暴露查詢物件;b)返回的不是真實的位置,而是一個代表位置的表達值;

  4. 透過位置表達值再進行查詢值搜尋,最終得到一個多方秘密值;

  5. 將秘密求和即可得到最終的值。

ARPA已經將整個操作,包括資料庫分享、不經意查詢封裝成簡單的函式方便使用。示意程式碼如下:

場景3 供應鏈金融

供應鏈上下游企業,如何構建一個資訊對稱共享、核心企業信用價值可傳遞、商票可拆分流程,是一個極大的挑戰。

如果能保證在風險可控前提下,創造出新型供應鏈金融融資模式,可以為監管提供資料追溯便利,提升行業整體服務效率。

傳統供應鏈金融的實現過程中,有以下痛點:

  1. 傳統的商票不可拆分,供應商無法基於商票再次背書轉讓,核心企業信用無法有效傳遞給多級供應商體系。

  2. 供應商、經銷商之間的約定或合同資訊無法得到有效確認或核實,使得金融機構存在較大的授信風險。

  3. 供應鏈層級的繁複,使貿易真實性和交易透明性無法簡單透過系統進行確認和稽覈,造成了監管的不便利性。

  4. 在傳統供應鏈金融多級供應商體系下,資訊難以有效傳遞,使得一級供應商以外的其他層級供應商無法享受到核心企業的信用,融資較難。

比如有些廠商可以基於區塊鏈和密碼學演算法,為供應鏈金融提供了金融資產數字化驗證的方案,使得企業能夠將企業應收賬款進行數字化資產登記,形成不可篡改的資料記錄,並實現實時資訊共享。

同時,透過參與方分散式賬本,參與方可以得到資產確認,將企業信用轉化成數字資產。此外,還提供了審計入口,方便監管機構審計和檢視平臺的資產交易情況。最重要的是,在傳統區塊鏈只能保證資料的不可修改性前提下,透過MPC和零知識證明等加密技術,可幫助區塊鏈實現智慧合約的公開審計確認能力與實際資料保密性的分離,讓企業不再擔心核心商業資訊的洩露。

核心實現內容如下:

場景4 機器學習

人工智慧現階段以機器學習為主,機器學習中使用的演算法大體分為 3 類:監督學習、無監督學習和強化學習

監督學習提供了反饋來表明預測正確與否,而無監督學習沒有響應,演算法僅嘗試根據資料的隱含結構對資料進行分類。

強化學習類似於監督學習,因為它會接收反饋,但反饋並不是對每個輸入或狀態都是必要的。

目前行業的應用以監督學習為主。透過對資料進行標註所得到的訓練資料集,可以用來進行監督訓練。

如今,深度學習需要使用大量的資料訓練模型。我們發現,一個優秀的深度學習模型是演算法透過大量的資料集訓練而達到的(而不是一個優秀的演算法和少量的資料)。雖然演算法理論不斷豐富完善,具體的落地模型卻被少數人掌握在手中,極為稀少和珍貴。我們都知道,演算法+資料=機器學習模型。

然而,這樣的共識卻會導致一個後果:資料霸權。即資料掌握在少數公司手裡。因為資料是企業的核心競爭力,越是有價值的資料,越是沒有辦法透過共享而產生價值。

這個問題可以透過MPC來解決。企業間可以不用擔心資料流失,而是透過MPC實現資料租賃,從而可以得到資料價值變現。同時也讓資料的使用價格低至原來的十分之一。

微軟研究院也曾在類似方面有所探索,他們在刊發的論文CryptoNet中採用了同態加密的方式來保護CNN中處理的資料,同樣因為計算複雜的問題,CryptoNet為CNN中的不同運算進行了對應的最佳化。

MIT進行生物醫藥研究的一個小組,利用了安全兩方計算來實現了保護隱私的製藥實驗,傳統制藥中,可透過受體和藥物之間的分子對比來預估藥效,這個過程會涉及商業機密,MPC可在製藥過程中一些簡單步驟上得以應用。

Google則採取了一種完全不同的方案來解決CNN中的資料安全問題,聯邦學習,然而這是一個具體問題具體分析的方法,只對分層神經網路有效。

一次CNN訓練和預測過程示意圖如下:

今天我們展示一下,如何使用Tensorflow實現MPC,從而達到計算深度神經網路。

利用MPC,構建一個CNN模型的程式碼如下:

下一步是實現MPC張量運算,程式碼如下:

最後是實現秘密分享,程式碼如下所示:

其他需要修改的運算

Softmax:是用來計算分類資訊的運算操作,裡面需要用到exponentiation的計算。這個操作比較複雜,這裡就不展開了。

Sigmoid函式啟用函式是一個非線性函式,需要加以修改,我們使用一個9自由度的多項式代替。當然我們也可以使用ReLU來代替,這就需要用到garbled circuits,過程比較複雜,這裡就不展開了。

多項式函式以及覆蓋函式實現如下:

下圖是用不同自由度實現的多項式擬合,最終我們使用了9度。

最終實現,使用TensorBoard視覺化如下:

使用深度學習這個話題太大,還涉及Optimizer的最佳化,Dense Layer的實現,Dropout、Pooling、矩陣計算最佳化、預訓練、遷移學習、精度損失、演算法matrix對比、GPU實現等方面的話題。這些會在將來的文章裡再詳細解說。

場景5 聯合風險價值計算

Value at Risk(VaR)按字面的解釋就是“處於風險狀態的價值”,即在一定置信水平和一定持有期內,某一金融工具或其組合在未來資產價格波動下所面臨的最大損失額。

摩根大通定義為:VaR是在既定頭寸被沖銷(be neutraliged)或重估前可能發生的市場價值最大損失的估計值;而Jorion則把VaR定義為:“給定置信區間的一個持有期內的最壞的預期損失”。

VaR模型計算方法

計算VAR相當於計算E(ω)和ω*或者E(R)和R*的數值。從目前來看,主要採用三種方法計算VaR值:

1. 歷史模擬法(historical simulation method);

2. 方差—協方差法;

3. 蒙特卡羅模擬法(Monte Carlo simulation)

咱們在這裡主要用到歷史模擬法。“歷史模擬法”是藉助於計算過去一段時間內的資產組合風險收益的頻度分佈,透過找到歷史上一段時間內的平均收益,以及在既定置信水平α下的最低收益率,計算資產組合的VaR值。

計算方式為:首先,計算平均每日收入E(ω);其次,確定ω*的大小,相當於圖中左端每日收入為負數的區間內,給定置信水平 α,尋找和確定相應最低的每日收益值。

設定信水平為α,由於觀測日為T,則意味差在圖的左端讓出。

t=T×α,即可得到α概率水平下的最低值ω*。

由此可得:VaR=E(ω)-ω*

從數學上來看,這個工作非常簡單。假設現有200支股票持倉的權重向量是w,長度為200。一年的股票價格資料為200x255的矩陣P。如果置信度α為95%,則我們尋找5%的最小的每日持倉價值。

1. 每日持倉價值 h = w’*P;

2. 排序價值 s = sort(h);

3. 找到5%排序價值s作為VaR

在MPC裡面,我們除了實現簡單的整數、定點小數的四則運算外,還要支援排序和矩陣運算來實現VaR計算。

當然,我們可以用多層迴圈來實現矩陣叉乘,但實際上,不僅在程式碼層看起來非常冗餘和易錯,更重要的是在基於秘密分享的安全計算裡面,編譯器會將這段邏輯忠誠地反應出來。

這會導致bite code及其龐大,以及計算效率很低。ARPA在矩陣運算上進行了最佳化,透過區域性秘密共享和多執行緒技術將矩陣乘法最佳化了一個數量級。

在排序邏輯上,我們也進行了最佳化。簡單來說,透過多個執行緒實現”Divide and Conquer”,將大量線性運算並行而達到效率的大幅提升。

具體程式碼示意如下:

結束語

綜上所述,MPC可以在包括金融,網際網路等行業中得以切實應用。並能夠打破行業內已有的資料壁壘,保護資料隱私的同時消除因資料聯合分析帶來的法規風險,提升資料價值。

以上案例是我們在真實商業環境下與合作公司具體探討的結果,新的密碼學協議和工具需要應用在現實環境下,不止要保證安全性,效率,易用性等問題,還需要能讓這個工具契合真實場景,解決真實問題。

*關於作者:

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

ARPA是一家專注於安全加密計算和區塊鏈底層技術的研發的公司,其核心產品為基於安全多方計算的隱私計算平臺,並提供全套區塊鏈+安全計算解決方案。同時ARPA作為行業成員,參與起草了工信部中國資訊通訊研究院即將出臺的安全多方計算標準。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;