Go to file
Jack Grigg 0c9e783172 group: Separate prime and cofactor traits into modules
Instead of having the Group crate hold a Subgroup associated type (and
thus needing to define the subgroup of a prime-order group as itself),
we specify two separate sets of traits for prime-order groups and ones
with a cofactor.

Protocol implementors can either restrict their implementations to only
work with PrimeGroup, or can explicitly choose to support CofactorGroup
and then explicitly handle the subgroup edge cases with e.g.
CofactorGroup::mul_by_cofactor (which would be a no-op for PrimeGroup).

Protocol implementors can also choose to specialise to elliptic curves
if they want to leverage an affine representation and mixed addition in
their protocol for efficiency, or they can ignore those traits and stick
with the simpler group-focused traits.
2020-08-25 23:11:18 +01:00
src group: Separate prime and cofactor traits into modules 2020-08-25 23:11:18 +01:00
tests ff: Remove ScalarEngine 2020-08-25 23:11:17 +01:00
.gitignore Initial commit 2015-12-24 02:58:38 -07:00
COPYRIGHT Make license files/copyright identical to `pairing` crate. 2017-11-12 15:56:03 -07:00
Cargo.toml impl ConditionallySelectable for Field 2020-08-25 23:09:46 +01:00
LICENSE-APACHE Make license files/copyright identical to `pairing` crate. 2017-11-12 15:56:03 -07:00
LICENSE-MIT Make license files/copyright identical to `pairing` crate. 2017-11-12 15:56:03 -07:00
README.md Update READMEs 2019-09-24 14:23:55 +01:00

README.md

bellman Crates.io

bellman is a crate for building zk-SNARK circuits. It provides circuit traits and primitive structures, as well as basic gadget implementations such as booleans and number abstractions.

Roadmap

bellman is being refactored into a generic proving library. Currently it is pairing-specific, and different types of proving systems need to be implemented as sub-modules. After the refactor, bellman will be generic using the ff and group crates, while specific proving systems will be separate crates that pull in the dependencies they require.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.