QuickMPC
A practical engine for Secure Multiparty Computation (SMPC) that is part of privacy-enhancing technologies (PETs). QuickMPC can perform computations on personal data used in fundamental static calculations while keeping confidentiality.
This will enable businesses and engineers worldwide to use Python client libraries to easily develop SaaS products that utilize SMPC functions without the need for expert SMPC knowledge.
You can easily describe a process using SMPC as follows:
Dependent Tools/Commands
make
docker
docker-compose
vscode-yaml-sort
Getting Started
The demonstration with libClient-py
Development Requirements
Recommended
- memory:
16 GB
- storage:
20 GB
Run all test suite
- Change your current directory into
scripts/
cd QuickMPC/scripts
- Launch all containers
make debug t=./manage_container
- Execute libClient Demo
How to test each container
- Change your current directory into
scripts/
cd QuickMPC/scripts
- Run test
# Testing all containers
make test
# Only the Computation Container test
make test t=./computation_container/
# Only the Manage Container test
make test t=./manage_container/
How to start each container
This section is usefule when you want to stand 2 containers and dare to test manually.
make debug t=./computation_container # Launch of the dev_cc{1,2,3}
make debug t=./manage_container # Then, all container is launched
How to develop each container
Computation Container
- Change your current directory
cd packages/server/computation_container
- Start the container and enter the container
make upd
make login
cd QuickMPC
- Develop and bulid and test
# build
bazel build //:all
# test
bazel test ... --test_env=IS_TEST=true --test_output=errors
Delete temporary files generated by Bazel
The files generated by bazel can be removed by running the following in the /QuickMPC
directory in the container
bazel clean
Manage Container
- Change your current directory
cd packages/server/manage_container
- Start the container and enter the container
make upd
make login
- Develop and bulid and test
# Create a vendor directory directly under QuickMPC and copy all dependent packages
go mod vendor
# build
go build
# test
go test ... -v