ZK-Garage / plonk

A pure Rust PLONK implementation using arkworks as a backend.
https://discord.gg/XWJdhVf37F
Mozilla Public License 2.0
294 stars 76 forks source link

Compatibility Between zk-garage Implementation and snarkjs Proof Format #168

Open saurabhchalke opened 1 year ago

saurabhchalke commented 1 year ago

Description:

I've been working with the zk-garage PLONK implementation and I am interested in making it compatible with the snarkjs proof format. This would greatly enhance interoperability with other tools and platforms that utilize snarkjs.

Details:

  1. zk-garage Proof Structure:

    • The zk-garage proof contains commitments to witness polynomials, permutation polynomials, lookup polynomials, and quotient polynomials.
    • Additionally, it contains batch opening proofs and evaluations.
  2. snarkjs Proof Structure:

    • The snarkjs proof, as per my understanding, consists of an evaluation of polynomials at a random point, along with a series of elliptic curve points that act as commitments to those polynomials.
  3. Challenges:

    • The two proof formats have distinct structures and might encode the circuit's information differently.
    • The elliptic curve representations may differ.

Request:

I would appreciate guidance or a potential enhancement to bridge the compatibility gap between these two formats. This could be in the form of:

Additional Context:

Understanding the compatibility and potentially achieving it would be beneficial for developers like myself looking to leverage both tools in our zero-knowledge proof systems.

Thank you for the great work and looking forward to any insights or updates on this matter!