plonky2_ecgfp5

Crates.ioplonky2_ecgfp5
lib.rsplonky2_ecgfp5
version0.1.1
sourcesrc
created_at2023-01-30 23:53:46.348984
updated_at2023-02-08 06:24:27.005188
descriptionplonky2 gadgets for EcGFp5 curve and base field arithmetic
homepage
repositoryhttps://github.com/Sladuca/plonky2_ecgfp5
max_upload_size
id772240
size294,033
Sebastien La Duca (Sladuca)

documentation

README

plonky2-ecgfp5

DISCLAIMER: this is a prototype. It hasn't been audited. It probably has bugs. DO NOT USE THIS IN PRODUCTION.

DISCLAIMER: the curve is pretty new, and, being built upon an extension field, may be vulnerable to more kinds of attacks than other curves. Read Thomas Pornin's paper on eprint for more information about security of the curve itself.

NOTE: this crate is not (yet) constant time.

This crate provides plonky2 SNARK gadgets and an out-of-circuit implementation of EcGFp5, an elliptic curve whose base field is a degree-5 extension field of Goldilocks, the field whose modulus is 2^64 - 2^32 + 1.

Most of the out-of-circuit implementation is built atop Thomas Pornin's implementation, which can be found here. All credit for designing the curve and providing its first implementation belongs to him.

Why does this exist?

One of the most useful things to have access to in a proof system is a curve that can be represented in its native field, as it allows one to efficiently verify public key cryptography (signatures, assymetric encryption, etc). For proof systems implemented atop BLS12-381, we have JubJub, and for proof systems implemented atop BN128, we have Baby JubJub. Plonky2 has something similar - EcGFp5. The hope is this will allow people to do in plonky2 the things people typically do with Baby JubJub in Circom/Groth16.

Commit count: 0

cargo fmt