區塊鏈與分佈式隱私計算行業報告

我們選取了三個不同技術路徑的分佈式隱私計算項目,分別是採用安全多方計算方案的ARPA、採用Trusted Execution Environment(TEE)硬件支持方案的Trias和採用分佈式雲計算與TEE相結合的綜合性方案的iExec,作為分析案例。

要點總結

1. 隨著區塊鏈技術的發展,其功能也從實現點對點的電子現金系統逐漸擴大到不同領域。隱私保護作為區塊鏈中一個重要的課題,也在不斷豐富擴充自己的含義——從僅僅確保交易隱私匿名性逐漸加入了對數據所有權、使用權的隱私保護。

2. 為了保持計算過程的公平公正,同時為了避免數據向第三方洩露的風險,涉及隱私計算的項目往往採用分佈式的系統架構

3. ARPA是一個通過安全多方計算(MPC)進行分佈式隱私計算的項目。目前ARPA測試網1.0版本ASTRAEA已於2019年3月正式發佈。該版本為基於以太坊的Layer 2隱私計算解決方案。

4. ARPA的MPC加密計算方案是通過祕密分享(Secret Sharing)、部分同態加密、Beaver電路隨機化技術等實現密文狀態下的多方加法與乘法計算。但在目前技術環境下,多方安全計算與明文計算的速度仍有1-2個數量級的差距。ARPA對自身定義為Layer 2的解決方案,在未來可以不同的公鏈提供隱私計算服務。

5. Trias是一個通過Trusted Execution Environment(TEE)進行分佈式隱私計算的底層公鏈項目。Trias第一版測試主網已於2019年Q2上線,主網的正式版Leviatom層計劃於2019年Q4推出。

6. Trias三權分立的總系統設計對計算過程的公平與公正性起到一定的保證作用。其結合了異構TEE (Trusted Execution Environment)技術與圖計算的異構共識圖協議(Heterogeneous Consensus Graph, HCGraph)則構建了一個全網公開的信任體系,方便用戶選擇出最值得信任的TEE節點進行計算。

7. iExec是一個通過結合分佈式雲計算與TEE來提供分佈式隱私計算的項目。iExec已於2019年5月推出iExec V3企業版,允許顧客接入iExec網絡出售個人算力換取獎勵。同時新加入的數據錢包(Data Wallet)功能也使得用戶租賃自身所持數據使用權獲利變得可能。

8. iExec的分佈式雲計算通過桌面網格(Desktop Grid)的方式,來收集網上未充分利用的計算與儲存資源,允許用戶端以傳統超級計算機幾分之一的成本去執行大規模的並行及分佈式計算。出於對用戶數據隱私所有權的保護,iExec進一步與TEE結合,實現了數據的租賃、交易與變現。

9. 目前三個項目都在落地方面取得了一定的成果,但離大規模推廣都還存在一定的距離。除了技術發展水平的限制外,怎樣進行基於商業場景的優化,怎樣提高業界對新技術的認知與接受度等都是限制因素。對於項目後續的發展如何,我們將持續保持關注。

1. 行業背景

區塊鏈作為一個融合了去中心化、公開透明、不可篡改等特性的新技術範式,起初主要為實現無需第三方的點對點交易。儘管隱私保護作為一個重要特性在初始設計時也給予一定考慮,但區塊鏈自身公開透明的特性決定了任何人可以根據交易關聯記錄推測出賬戶的地址,難以真正做到交易的匿名性。

面對加密貨幣市場上對隱私保護需求的不斷提高,市場上逐漸出現通過不同技術路徑實現匿名隱私保護的新通證,比較知名的有基於ZK-SNARKS的Zcash,基於環簽名的Monero,與基於創新加密協議MimbleWimble的Grin與Beam等。

隨著圖靈完備的腳本語言加入,開發者開始可以在區塊鏈上設計不同功能的應用,這也直接促成了區塊鏈技術逐步與其他不同領域的融合,如金融徵信、產品溯源、物聯網等領域。與此同時,區塊鏈中的隱私保護概念也不斷融入了新的內涵,逐步從僅僅保證交易的匿名性擴大到對原生數據所有權、使用權的隱私保護

怎樣在保護客戶隱私的前提下,同時合規的採集數據、應用數據成為區塊鏈行業新的機遇與挑戰。在此環境背景下,目前普遍的解決方案是通過隱私安全計算來實現保護數據隱私的前提下發掘數據價值,技術上其又可大致劃分為安全多方計算(MPC)與安全執行環境(TEE)兩種路徑。

同時,為保證整個計算過程的公平可信,涉及隱私計算的區塊鏈項目紛紛採用去中心化的分佈式組織架構,避免數據向第三方洩露的風險。在已經落地的項目之中,比較有代表性的有基於MPC純密碼學技術的ARPA,基於TEE硬件技術的Trias,與將TEE與分佈式雲計算相結合的iExec。本次報告將聚焦於各項目的簡要介紹,技術實現路徑與項目進展。

2. 技術介紹

分佈式隱私計算離不開三個維度的考慮,分別是隱私、性能和通用性。但目前所採用的安全多方計算(MPC)、安全可執行環境(TEE)和同態加密的這些加密技術中並沒有能同時滿足三個維度的最優解決方案,都在諸多特點之間做出了一定的權衡取捨。鑑於iExec項目的設計除了TEE以外還考慮了桌格計算,將在具體項目介紹時對其採用的技術單獨介紹。

同態加密(Homomorphic Encryption)

同態加密是指對原始數據進行加密,之後進行計算得出一個輸出,將此輸出進行解密後,其結果與未加密原始數據直接計算得到的結果一致。在實際運算過程中,同態加密的每一步計算步驟都會涉及大量的加密運算,導致計算複雜度隨著步驟的增加而急速上升。

這一問題直接導致了在實際應用中,同態加密目前僅能支持操作次數有限的加法同態或乘法同態,來實現部分同態加密(Somewhat Homomorphic Encryption),但難以做到同時支持加法和乘法操作完成運算次數不受限制的全同態加密(Fully Homomorphic Encryption)。目前在安全多方計算的運算過程之中,會融入部分同態加密。

安全多方計算 (Multi-PartyComputation, MPC)

安全多方計算解決一組互不信任的參與方之間保護隱私的協同計算問題,實現各方在不洩露本地任何數據隱私的情況下,完成數據的聚合計算功能。按照應用場景來劃分,目前安全多方計算可分為安全兩方計算和安全多方計算。前者主要通過加密電路(Garbled Circuit)、不經意傳輸(Oblivious Transfer)和布爾電路等密碼學技術來實現,但受制於參與者數量的限制,限制了其在實際應用中推廣的潛力。

安全多方計算的技術實現路徑則主要是通過祕密分享(Secret Sharing)、同態加密、加密電路、不經意傳輸等來實現。但考慮到實際計算過程中需要大量的計算來實現同態性,在具體實施層面,多方計算會通過節點間通訊來降低加密運算的複雜度,代價則是增加了通訊的複雜程度。綜合來看,目前多方計算方案的速度與明文計算比有大於1至2個數量級的差距。

可信執行環節(Trusted Execution Environment, TEE)

與之前通過密碼學實現隱私計算的方式不同,TEE主要是通過硬件方面的設定來解決安全計算的問題,並已大規模應用於手機端,雲端等領域,例如Intel的SGX,華為海思的TrustZone,ARM的Trustonic等。具體而言,TEE提供了一塊隔離並加密的安全區域Enclave,並且搭配可信隨機數據源,與定製的計算指令,實現數據的隱私運算。

相比前兩項數字加密技術而言,TEE有著更廣泛的應用,並且計算效率也可達到實際應用的級別,但使用者需要信任提供TEE硬件的安全廠商不會出現 “留後門”。與此同時,由於Spectre及Spoiler漏洞的存在,TEE還面臨著緩存側信道攻擊的風險,造成安全與非安全區的數據隔離被打破,進而造成隱私數據的洩露問題。

3. 項目介紹

3.1 ARPA項目簡介

ARPA項目主要通過MPC技術路徑來構建一個可驗證的鏈下多方安全計算網絡,打破數據分散在各企業和機構間的數據孤島現象,允許不同數據提供者在不透露自己數據、無需信任第三方的情況下,以較低成本協同計算得到可靠結果。

在技術設計上,ARPA所採用的安全多方計算不是特指某個特定算法,而是融合了部分同態加密、祕密分享、混淆電路等技術實現的。與此同時,作為一個layer2的架構,ARPA可以接入不同的公鏈,以滿足各公鏈上不同節點的隱私安全計算需求,這也極大地拓展了ARPA的應用範圍。

3.1.1 ARPA系統設計

作為一個layer 2的解決方案,ARPA網絡的計算任務來自於各個區塊鏈網絡。ARPA將在各個主要區塊鏈網絡上部署代理智能合約,每次計算髮起之前,ARPA計算網絡將隨機選取一定數量的節點,被選中且有參與意願的節點需抵押部分ARPA通證來正式參與計算。隨機選擇從一定程度上遏制了節點間計算前合謀的可能性;抵押機制則提高參與計算節點的作惡成本,降低蓄意竊取數據,不執行計算任務等行為。

根據ARPA的實驗結果,在有100個計算節點的情況下,需要串通95%的節點才能有不到1%的機會成功攻擊。ARPA的密碼學設計結合經濟層面的設計,能充分打消潛在的攻擊意圖。當計算開始後,各參與方的數據將以密文碎片的形式在ARPA網絡中傳輸計算,結束後,計算結果與相應證明將傳回發起請求的智能合約,整個計算過程中,各參與方只會接觸到計算結果與自身所擁有的數據。ARPA的具體計算過程,可以大體分為兩個部分 – 預處理階段與計算階段。

3.1.1.1 鏈下安全計算——預處理

預處理階段佔據了MPC整個計算過程的大部分時間,主要是準備計算過程中會被用到的各種加密計算“原料”,主要包括祕密分享及乘法運算過程中需要的“三元組和隨機數組”,用於之後計算過程證明與驗證的全局MAC key與分佈式MAC key。MAC key是ARPA網絡可驗證性的來源,對於計算結果的可信驗證至關重要。由於很多數據是消耗性的,所以在運算節點多、運算邏輯複雜的情況下需要較長的準備時間。目前,多方計算相比明文計算慢大約1至2個數量級。

3.1.1.2 鏈下安全計算——計算階段

預處理完成之後,將進入計算階段。ARPA的多方計算包括幾個步驟:祕密分享、計算求值、揭示結果。

祕密分享:祕密分享將在輸入數據分發的層面保證數據的隱私安全。首先,參與計算的節點向數據提供者發送一個隨機值;然後,數據提供者將接收到的隨機值與自己的隨機值相加,得到總隨機值,並將輸入值減去總隨機值,將結果向其餘計算節點分發;各個計算節點在收到經過混淆的輸入值後,加上自己本地的隨機值,就能得到自己需要的輸入值。經過這種操作,只有數據提供者擁有原始輸入值,在數據提供者不作惡的前提下,保證了輸入數據的安全。

計算求值:收到自己的輸入值後,各個計算節點將開始本地計算。因為使用的祕密分享算法使得輸入值具有加法性,所以加法運算與線性運算可以在本地執行,但乘法運算需要計算各方進行一定的信息交換。由於計算節點無法直接傳遞自己的輸入值,所以要藉助Beaver電路隨機化技術,將乘法運算轉化成線性運算和隨機化公開變量。這個過程需要消耗預處理階段生成的三元組,由於三元組在使用後會被公佈,所以每個三元組只能使用一次,這意味著複雜的運算將需要預處理階段準備大量的計算“原料”。

ARPA網絡中的計算節點在計算過程中會持續計算變量的信息校驗碼(MAC),用於驗證計算的完整性和正確性。信息校驗碼能夠驗證一條信息產生自相應MAC key的擁有者,並且該信息未被改變。如果計算節點未按照規定計算過程進行計算,其生成的MAC將無法通過驗證。

揭示結果:在所有參與方同意結束計算過程後,參與節點會將結果的祕密分享值和對應的信息校驗碼進行廣播,在首先驗證了本次計算的正確性和完整性之後,協議將全局祕密分享值合併並重建出明文結果。此時,信息校驗碼可以通過常數複雜度的計算達成驗證過程。驗證與計算過程的解耦,使得驗證過程可被區塊鏈節點等第三方容易地執行。驗證無誤後,計算結果將被提交給請求者,結束計算任務。

3.1.2 ARPA項目進展

ARPA測試網1.0版本ASTRAEA已於2019年3月正式發佈,該版本測試網是基於以太坊的Layer 2隱私解決方案。同時,ARPA也與國內頂尖公鏈項目進行合作,在鏈上成功實現了隱私計算。在未來,ARPA團隊計劃在2019年Q2上線Testnet 2.0(ATLAS),2019年Q3上線主網,並在企業客戶端持續發力。在應用落地上,根據ARPA官方公佈的合作信息,ARPA已經與中化集團、孔明科技、啟明股份、雲象區塊鏈等企業達成合作,並積極推進與大型金融、保險機構的戰略合作。

ARPA將為金融、保險、大宗商品等領域提供基於特定場景需求定製多方聯合風控、黑名單共享、聯合模型分析等行業的解決方案,目前已經有落地案例。此外,ARPA還參與安全多方計算的數據流通產品標準制定,作為核心參與企業,ARPA參與了多項密碼學協議層面的內容編寫。目前該標準已於2019年6月由中國信息通信研究院、雲計算與大數據研究院聯合發佈。

3.2 Trias 項目簡介

TRIAS是通過基於異構TEE技術與圖計算的結合來提供對原生應用程序的可信執行環境。設計構架中,Trias由三層子體系構成,對應現實社會中的三權分立結構,通過權力的互相協作與制約,實現Trias執行計算環境的公平與公正。

具體來說,最基層的Leviatom負責行政權,通過異構技術聚合可以提供安全計算環境的節點來為Trias生態提供可信算力,而與圖計算、Gossip協議的結合則為構建Trias信任矩陣提供了基礎,幫助用戶從中篩選可信的TEE節點進行計算。

第二層Prometh負責立法權,提供可溯源軟件開發框架,實現智能合約從開發到正式運行的全生命週期維護、記錄和管理服務。第三層MagCarta負責司法權,管理Trias的整體合約體系,實現全平臺原生應用程序的統一編程與調度,並用經濟模型激勵協調各參與方利益。具體來講,Trias的技術構架與計算過程如下所示:

3.2.1 Trias技術設計

Leviatom: 作為基礎層,為整個Trias生態提供了安全計算環境。為降低區塊鏈使用TEE的難度,Leviatom採用了異構共識圖算法(HCGraph) 實現了基於TEE可信計算的異構網絡與基於Gossip協議構建的信任網絡充分結合。每個節點都將驗證記錄周圍節點的可信度,並藉助Gossip協議在不同節點之間傳播,隨著驗證信息在全網內反覆驗證交互,HCGraph 逐步描繪出全局節點的“同謀違約”模型,實現了可信任節點的高效準確定位,抑制節點作惡行為。

圖表 3-1 Leviatom節點示意圖

區塊鏈與分佈式隱私計算行業報告

相關推薦

推薦中...