安全多方计算(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可以实现安全多方计算以满足业务需求。
集成流程:
- IDE上编写电路算法;
- 编译算法并生成电路文件JAVA包装类;示例查看
- 项目中引入步骤2中的JAVA包装类;
- 集成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