0c9e783172
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. |
||
---|---|---|
src | ||
tests | ||
.gitignore | ||
COPYRIGHT | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |
README.md
bellman
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
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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.