noir-lang / noir

Noir is a domain specific language for zero knowledge proofs
https://noir-lang.org
Apache License 2.0
913 stars 207 forks source link

Expose core functionality (eliminate the need for the compiled service) #3305

Closed jonas089 closed 9 months ago

jonas089 commented 1 year ago

Problem

I understand that currently the only supported backend is barretenberg. However since there are plans to add support for bulletproofs, I would like to ask if prover and verifier logic will be exposed (public). This seems like a major improvement in terms of developer experience, since it'll enable the development of pure Rust services depending on Noir's lib.

Happy Case

Ideally it'd look similar to this:

use noir::backend use noir::{Prover, Verifier}

let backend = backends::Bulletproofs Prover.prove(..., ) Verifier.verify(...,)

where noir::backends is an enum of all supported pure Rust backends

Alternatives Considered

No response

Additional Context

No response

Would you like to submit a PR for this Issue?

No

Support Needs

No response

TomAFrench commented 9 months ago

I'm closing this as I'd say that this usecase is enabled by the dynamic backends project.