Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Replicate circom-MP-SPDZ to support MOTION #68

Open
frodoresearch opened this issue Aug 15, 2024 · 2 comments
Open

Proposal: Replicate circom-MP-SPDZ to support MOTION #68

frodoresearch opened this issue Aug 15, 2024 · 2 comments
Assignees
Labels
Application Proposal Proposal submitted by applicants Grant Work in Progress Passed review and work in progress

Comments

@frodoresearch
Copy link

frodoresearch commented Aug 15, 2024

Project Overview 📄

Overview

Replicating circom-MP-SPDZ to support MOTION.

This proposal is in response to issue #56

Project Details

This project will allow people to write Circom code and run MPC with the MOTION framework, enabling more options for benchmarks and different use cases.

I'll reuse the code in the circom-MP-SPDZ repo and adapt the functions to generate circuits and inputs for MOTION, allowing parties to easily run the MOTION framework with the generated files.

Team 👥

Team members

Team's experience

I have good experience in research and development. I've done computer architecture based research, full-stack web3 engineering, as well as zk circuit engineering, and I'm looking forward to learning more with this project.

Development Roadmap 🔩

Overview

  • Total Estimated Duration: 6.5 weeks
  • Total Estimated Working Hours: 150 hours
  • Full-time equivalent (FTE): 0.50
  • Expected Start Date: Aug 20th 2024
  • Expected End Date: Oct. 5th 2024

Milestone 1: Understanding MOTION and Documentation

  • Estimated Duration: 2.5 weeks
  • Estimated Working Hours: 45 hours
  • FTE: 0.45
  • Estimated delivery date: Sept. 7th 2024

Deliverables and Specifications

1a. Documentation
  • A comprehensive tutorial explaining MOTION's domains, supported operations and data types (and how they are compatible with circom's operations, paying special attention to binary, arithmetic in prime field and ring 2𝑘), security parameters, and number of parties supported.
  • Best practices and caveats.
  • Step-by-step guide on executing example scenarios (covering as much of the discovered knowledge above as possible for demonstration purposes) with MOTION.

Milestone 2: Adaptation of circom-MP-SPDZ to circom-MOTION

  • Estimated Duration: 4 weeks
  • Estimated Working Hours: 105 hours
  • FTE: 0.65625
  • Estimated delivery date: Oct. 5th 2024

Deliverables and Specifications

2a. Functionality: Generate Circuits for MOTION from Bristol Circuit

Modify circom-MP-SPDZ code to generate MOTION circuit output from circom-2-arithc.

2b. Functionality: Generate Inputs for MOTION from circom-MP-SPDZ Inputs

Modify circom-MP-SPDZ code to generate inputs for MOTION from the inputs defined in circom-MP-SPDZ.

2c. Functionality: Run the Generated MOTION Circuits and Inputs

Modify circom-MP-SPDZ code to run MOTION and get parsed outputs.

Application

Component 2c runs MOTION with the circuits generated by component 2a with the inputs generated from component 2b.

2d. Testing Guide
  • Proper unit test coverage (e.g., above 90%) for circuit generation, input generation, and circuit execution.
  • Integration tests for example circuits like op_tests, naive_search, two_outputs, and nn_circuit_small (noted that this will be tricky issues here due to incompatibility between circom front end and MOTION backend, and also some configurations are needed, I'll be sure to check the original circom-MP-SPDZ for reference).
2e. Documentation
  • Inline documentation of the code.
  • Comprehensive documentation covering the entire workflow, from code modification to testing and execution.

Expected Outcome

A library for people to run MPC with MOTION, supporting the same functionality as circom-MP-SPDZ.

@NOOMA-42 NOOMA-42 added the Application Proposal Proposal submitted by applicants label Aug 15, 2024
@mhchia
Copy link

mhchia commented Aug 21, 2024

@frodoresearch

Could you please adjust the current milestones by changing the Estimated Duration to include both weeks and working hours? The updated overview and milestones would look like this:

Overview:

  • Total Estimated Duration: 6.5 weeks
  • Total Estimated Working Hours: 150 hours
  • Full-time equivalent (FTE): 0.75
  • Expected Start Date: Aug 20th, 2024
  • Expected End Date: Oct 5th, 2024

Milestone 1:

  • Estimated Duration: 2.5 weeks
  • Estimated Working Hours: 45 hours
  • FTE: 0.75
  • Estimated Delivery Date: Sept 7th, 2024

Milestone 2:

  • Estimated Duration: 4 weeks
  • Estimated Working Hours: 105 hours
  • FTE: 0.75
  • Estimated Delivery Date: Oct 5th, 2024

Thank you!

NOTE: The "Expected Start Date" and "Expected End Date" might be subject to changes since they could be finalized after the grant is confirmed.

@mhchia
Copy link

mhchia commented Aug 23, 2024

Looks good to us! cc @NOOMA-42

@NOOMA-42 NOOMA-42 added the Grant Work in Progress Passed review and work in progress label Sep 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Application Proposal Proposal submitted by applicants Grant Work in Progress Passed review and work in progress
Projects
None yet
Development

No branches or pull requests

3 participants