Skip to content

Proposal: Replicating circom-MP-SPDZ to support tfhe-rs #67

Description

@Vishalkulkarni45

General Grant Proposal

Project Overview 📄

Overview

replicate circom-MP-SPDZ to support tfhe-rs

Project Details

Team members

Team members

Team's experience

  • Worked on the grant to support tfhe for the greco
  • 2nd place on Ethcon Korea 2023: torch2circom, Built upon keras2circom and circomlib. Implemented some mathematical libraries about matrix operations.
  • Finished 2023 ZK Summer Contribution Program
  • The team has developed a practical product called ZK-Snap, an innovative private voting protocol tailored for decentralized communities and organizations, constructed using the halo2-axiom framework.
  • Participated in Zk-Block1 of the yAcademy, where audited codebase built using circom.
  • Constructed a rlwe pk-enc circuit for Greco .
  • The team is skilled in constructing circuits using halo2-axiom, halo2-scroll, plonky2, and cirom.

Development Roadmap 🔩

Overview

  • Total Estimated Duration: 8 weeks
  • Total Estimated Working Hours: 150 hr
  • Full-time** equivalent (FTE): 0.5
  • Expected Start Date: Aug 20th 2024
  • Expected End Date: Oct 15th 2024

Milestone 1 : Understanding tfhe-rs and Documentation

  • Total Estimated Duration: 3 weeks
  • FTE: 0.375
  • Estimated delivery date: Sep 10 th 2024

Deliverables and Specifications

1a. Documentation
  • A comprehensive tutorial explaining tfhe-rs'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^k$), 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 tfhe-rs.
  • Understand circom-MP-SPDZ

Milestone 2 : Adaptation of circom-MP-SPDZ to circom-tfhe-rs

  • Total Estimated Duration: 5 weeks
  • FTE: 0.525
  • Estimated delivery date: Oct 15th 2024

Deliverables and Specifications

2a. Functionality: Generate Circuits for tfhe-rs from Bristol Circuit

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

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

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

2c. Functionality: Run the Generated tfhe-rs Circuits and Inputs

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

Application

Component 2c runs tfhe-rs with the circuits generated by component 2a with the inputs generated from component 2b.

2d. Testing Guide
  • Proper unit test coverage (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 ( expected some tricky issues here due to incompatibility between circom front end and tfhe-rs backend, and also some configurations are needed, look into 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.

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions