Skip to content

Implementation of the R1CS compiler #31

Description

@juja256

Hello!
Despite, informally arithmetic circuits in this implementation are named "r1cs" they aren't actually true R1CS circuits in their canonical form
$A\mathbf{z} \circ B\mathbf{z} = C\mathbf{z}$. Current circuits representation is, without a doubt, a great and convenient one, but I'm wondering:

  • why the current implementation calls arithmetic circuits "R1CS" while they are not actually in canonical "R1CS" form.
  • if you have any plans for implementing true R1CS circuits compiler that could for example be compatible (in terms of circuit representation/encoding etc.) with other R1CS compilers, such as circom etc. Bunz in his thesis paper presented a bulletproofs variant for R1CS circuits with committed witness (into only one curve point, despite the original arithmetic circuits protocol where each witness scalar must be committed separately). After that Gil Segev revised a security proof that bridges a completness-soundness gap of the original Bunz work additionally achieving zero-knowledge with a zero-knowledge variant of the inner product argument.
    @cathieyun

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions