https://github.com/th4s/mpz-play
A workshop to get familiar with the mpz library
https://github.com/th4s/mpz-play
Last synced: 10 months ago
JSON representation
A workshop to get familiar with the mpz library
- Host: GitHub
- URL: https://github.com/th4s/mpz-play
- Owner: th4s
- Created: 2024-07-03T10:35:30.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-07T15:38:55.000Z (almost 2 years ago)
- Last Synced: 2024-09-08T14:49:02.793Z (almost 2 years ago)
- Language: Rust
- Size: 2.79 MB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MPZ Play
This is a workshop to get familiar with [mpz](https://github.com/privacy-scaling-explorations/mpz),
which is a [PSE](https://pse.dev) library for [secure multi-party computation](https://en.wikipedia.org/wiki/Secure_multi-party_computation) (MPC).
## Resources
Learning MPC:
- [Secret Sharing MPC](https://eprint.iacr.org/2022/062)
- [SecureComputation](https://securecomputation.org/)
- [BIU MPC Lectures](https://www.youtube.com/playlist?list=PL8Vt-7cSFnw1F7bBFws2kWA-7JVFkqKTy)
- [CO15 - Simple Oblivious Transfer](https://eprint.iacr.org/2015/267)
- [MASCOT](https://eprint.iacr.org/2016/505)
MPZ library:
- [MPZ Overview](https://github.com/privacy-scaling-explorations/mpz/blob/dev/README.md)
- [MPZ Design Considerations](https://github.com/privacy-scaling-explorations/mpz/blob/dev/DESIGN.md)
## Getting started
This repository offers some exercises to get exposed to MPC with mpz. Each of
these exercises are Rust crates, that start with a number, e.g. `00-connect`. In
each of theses crates you will find two binaries `alice.rs`, `bob.rs` and a
library file `lib.rs`. This library file contains instructions and typically you
will need to add some code to the binaries. To complete the exercises run the
binaries and see if your code works as expected.
For example to complete lesson `00-connect`, you follow the instructions in
`00-connect/src/lib.rs`. Then in two different terminals run
```sh
cd 00-connect
cargo run --bin alice
cargo run --bin bob
```
Since we use a TCP connection for connecting `Alice` and `Bob`, you can work
through the exercises together with a colleague. Then each of you only needs to
run one binary, either `alice.rs` or `bob.rs`, and you can connect to your
colleague's machine. This way you can do pair programming and real MPC on
different machines :)