{"id":23239146,"url":"https://github.com/th4s/mpz-play","last_synced_at":"2025-08-19T23:33:18.340Z","repository":{"id":247970997,"uuid":"823597248","full_name":"th4s/mpz-play","owner":"th4s","description":"A workshop to get familiar with the mpz library","archived":false,"fork":false,"pushed_at":"2024-09-07T15:38:55.000Z","size":2927,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-09-08T14:49:02.793Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/th4s.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-03T10:35:30.000Z","updated_at":"2024-07-28T00:50:25.000Z","dependencies_parsed_at":"2024-07-26T03:09:24.266Z","dependency_job_id":"fe6af013-8428-4c04-b722-2a16d1b495da","html_url":"https://github.com/th4s/mpz-play","commit_stats":null,"previous_names":["th4s/mpz-play"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th4s%2Fmpz-play","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th4s%2Fmpz-play/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th4s%2Fmpz-play/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th4s%2Fmpz-play/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/th4s","download_url":"https://codeload.github.com/th4s/mpz-play/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230375371,"owners_count":18216241,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-19T04:22:03.082Z","updated_at":"2024-12-19T04:22:03.594Z","avatar_url":"https://github.com/th4s.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./mpc-ferris.png\" width=1280 /\u003e\n\u003c/p\u003e\n\n# MPZ Play\n\nThis is a workshop to get familiar with [mpz](https://github.com/privacy-scaling-explorations/mpz),\nwhich is a [PSE](https://pse.dev) library for [secure multi-party computation](https://en.wikipedia.org/wiki/Secure_multi-party_computation) (MPC).\n\n## Resources\nLearning MPC:\n- [Secret Sharing MPC](https://eprint.iacr.org/2022/062)\n- [SecureComputation](https://securecomputation.org/)\n- [BIU MPC Lectures](https://www.youtube.com/playlist?list=PL8Vt-7cSFnw1F7bBFws2kWA-7JVFkqKTy)\n- [CO15 - Simple Oblivious Transfer](https://eprint.iacr.org/2015/267)\n- [MASCOT](https://eprint.iacr.org/2016/505)\n\nMPZ library:\n- [MPZ Overview](https://github.com/privacy-scaling-explorations/mpz/blob/dev/README.md)\n- [MPZ Design Considerations](https://github.com/privacy-scaling-explorations/mpz/blob/dev/DESIGN.md)\n\n## Getting started\n\nThis repository offers some exercises to get exposed to MPC with mpz. Each of\nthese exercises are Rust crates, that start with a number, e.g. `00-connect`. In\neach of theses crates you will find two binaries `alice.rs`, `bob.rs` and a\nlibrary file `lib.rs`. This library file contains instructions and typically you\nwill need to add some code to the binaries. To complete the exercises run the\nbinaries and see if your code works as expected.\n\nFor example to complete lesson `00-connect`, you follow the instructions in\n`00-connect/src/lib.rs`. Then in two different terminals run\n\n```sh\ncd 00-connect\ncargo run --bin alice\ncargo run --bin bob\n```\n\nSince we use a TCP connection for connecting `Alice` and `Bob`, you can work\nthrough the exercises together with a colleague. Then each of you only needs to\nrun one binary, either `alice.rs` or `bob.rs`, and you can connect to your\ncolleague's machine. This way you can do pair programming and real MPC on\ndifferent machines :)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fth4s%2Fmpz-play","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fth4s%2Fmpz-play","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fth4s%2Fmpz-play/lists"}