安全多方計算(MPC)從入門到精通:簡易教程
阿新 • • 發佈:2018-07-04
編程 部署 門面 html 節點 lin 入門到精通 插件 之前 簡介: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谷歌瀏覽器插件的安裝包並在本地解壓。
第二步,將Chrome瀏覽器啟用開發者模式,然後點擊按鈕“加載已解壓的擴展程序”,選擇插件所在的文件夾即可。
註意:由於該插件暫未上傳Google插件商店,所以只能以開發者模式運行。由於是以開發者模式運行該插件的,Chrome瀏覽器會彈出“請停用以開發者模式運行的擴展程序”的提示,此時點擊“取消”才可以繼續使用Frutta谷歌瀏覽器插件。
3.JUGO-IDE
JUGO-IDE是JUGO技術產品面向開發者提供的用來編寫MPC算法的開發工具。
結合Frutta谷歌瀏覽器插件,開發者無需搭建任何環境就可以快速編寫、編譯、運行和發布算法。
通過使用JUGO-IDE,開發者可使用Frutta語言編寫算法,並通過JUGO-IDE編譯成可在JUGO技術產品上執行的電路文件和java模板文件。
4.Frutta語言
Frutta是矩陣元為安全多方計算的算法電路文件生成而專門定制的編程語言。它是一門類高級語言,也是一門面向過程的編程語言。Frutta支持大部分運算符、數據類型,表達方式靈活實用。目前只有矩陣元提供的在線ide可以進行編譯運行。ide可以把Frutta文件編譯成可在JUGO平臺上執行的電路文件。
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指令:
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語言編寫算法。
安裝步驟:
第二步,將Chrome瀏覽器啟用開發者模式,然後點擊按鈕“加載已解壓的擴展程序”,選擇插件所在的文件夾即可。
註意:由於該插件暫未上傳Google插件商店,所以只能以開發者模式運行。由於是以開發者模式運行該插件的,Chrome瀏覽器會彈出“請停用以開發者模式運行的擴展程序”的提示,此時點擊“取消”才可以繼續使用Frutta谷歌瀏覽器插件。
3.JUGO-IDE
JUGO-IDE是JUGO技術產品面向開發者提供的用來編寫MPC算法的開發工具。
結合Frutta谷歌瀏覽器插件,開發者無需搭建任何環境就可以快速編寫、編譯、運行和發布算法。
4.Frutta語言
Frutta是矩陣元為安全多方計算的算法電路文件生成而專門定制的編程語言。它是一門類高級語言,也是一門面向過程的編程語言。Frutta支持大部分運算符、數據類型,表達方式靈活實用。目前只有矩陣元提供的在線ide可以進行編譯運行。ide可以把Frutta文件編譯成可在JUGO平臺上執行的電路文件。
5.開發編程
5.1.計算邏輯編程
計算邏輯:為實現某個場景下的安全多方計算所編寫的算法。
使用Frutta語言,在JUGO-IDE中可以快速完成計算邏輯的編程、驗證和發布。
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 ,可調試接收方接口。
更多內容可以參考視頻:安全多方計算MPC視頻課程
安全多方計算(MPC)從入門到精通:簡易教程