安全多方計算(MPC)從入門到精通:簡易教程


簡介:JUGO平台針對企業級用戶,打造基於MPC的安全數據交易平台。本節內容將介紹具體如何通過在本地部署MPC節點的教程,完成數據協同計算。

1.編程語言&開發環境

1.1.計算邏輯編程語言

  Frutta語言

1.2.IDE開發環境

  操作系統windows(后續支持linux),chrome瀏覽器(需先安裝Frutta谷歌瀏覽器插件)

1.3.MPC應用部署

  環境搭建(要求linux系統)

  安裝nginx

  安裝JDK,配置JDK環境變量

2.安裝插件

  使用JUGO-IDE之前,需要先安裝Frutta谷歌瀏覽器插件。安裝后可在JUGO-IDE中使用Frutta語言編寫算法。

  安裝步驟:

  第一步,請點擊下載Frutta谷歌瀏覽器插件的安裝包https://jugo.juzix.net/file/PLUGIN.tar.gz,並在本地解壓。

  第二步,在Chrome瀏覽器地址欄輸入chrome://extensions/,啟用開發者模式,然后點擊按鈕“加載已解壓的擴展程序”,選擇插件所在的文件夾即可。

  注意:由於該插件暫未上傳Google插件商店,所以只能以開發者模式運行。打開chrome://extensions/,如下圖示開啟開發者模式。由於是以開發者模式運行該插件的,Chrome瀏覽器會彈出“請停用以開發者模式運行的擴展程序”的提示,此時點擊“取消”才可以繼續使用Frutta谷歌瀏覽器插件。

3.JUGO-IDE

  JUGO-IDE是JUGO技術產品面向開發者提供的用來編寫MPC算法的開發工具。

  結合Frutta谷歌瀏覽器插件,開發者無需搭建任何環境就可以快速編寫、編譯、運行和發布算法。

  通過使用JUGO-IDE,開發者可使用Frutta語言編寫算法,並通過JUGO-IDE編譯成可在JUGO技術產品上執行的電路文件和java模板文件。

詳情https://jugo.juzix.net/api_document/jugoide/jugoide.html

4.Frutta語言

  Frutta是矩陣元為安全多方計算的算法電路文件生成而專門定制的編程語言。它是一門類高級語言,也是一門面向過程的編程語言。Frutta支持大部分運算符、數據類型,表達方式靈活實用。目前只有矩陣元提供的在線ide可以進行編譯運行。ide可以把Frutta文件編譯成可在JUGO平台上執行的電路文件。

詳情https://jugo.juzix.net/api_document/frutta/frutta.html

5.開發編程

5.1.計算邏輯編程

  計算邏輯:為實現某個場景下的安全多方計算所編寫的算法。

  使用Frutta語言,在JUGO-IDE中可以快速完成計算邏輯的編程、驗證和發布。

5.2.JUGO-SDK

  JUGO-SDK是JUGO技術產品面向開發者提供的安全多方計算應用開發工具包。

  開發者通過使用JUGO-SDK與其他JUGO技術產品,可以高效快速的開發MPC(安全多方計算)應用。每個集成了SDK的應用將作為計算節點接入到計算網絡中。應用調用SDK可以實現安全多方計算以滿足業務需求。

  集成流程:

  1. IDE上編寫電路算法;
  2. 編譯算法並生成電路文件JAVA包裝類;示例查看
  3. 項目中引入步驟2中的JAVA包裝類;
  4. 集成API,完成應用開發;

5.3.應用部署

  應用包含三大部分的代碼。包括:1)算法代碼、2)服務端應用代碼、3)前端頁面展示代碼。

  實現流程:

1) MPC應用部署

  准備工作:

  環境搭建(要求linux系統)

  安裝nginx

  安裝JDK,配置JDK環境變量

2) 項目打包

  描述:

  項目依賴gradle進行構建;

  可通過gradle指令進行打包,文件輸出在同級build目錄下;

  可通過JAVA IDE打包可執行文件;

  gradle指令:

>clean build
Copy

  

3) 項目運行

  描述:

  在環境中執行以下指令進行監聽;

  后續可通過統計目錄nohup.out查看輸出日志

  指令參考:

>nohup java -jar MPCAcceptApp.jar &//啟動接收方節點

>nohup java -jar MPCStartApp.jar &//啟動發起方節點
Copy

  

4) 項目調試

  部署完畢。

  在瀏覽器中輸入http://ip:port/swagger-ui.html ,可調試發起方接口。

  在瀏覽器中輸入http://ip:port/swagger-ui.html ,可調試接收方接口。

更多內容可以參考視頻:http://edu.51cto.com/course/14087.html

產品實操請訪問:https://jugo.juzix.net/home


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM