diff --git a/bellman/README.md b/bellman/README.md index 659a81c..d64dd9c 100644 --- a/bellman/README.md +++ b/bellman/README.md @@ -1,12 +1,23 @@ # bellman [![Crates.io](https://img.shields.io/crates/v/bellman.svg)](https://crates.io/crates/bellman) # -This is a research project being built for [Zcash](https://z.cash/). +`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](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. diff --git a/ff/README.md b/ff/README.md index 3efef94..c3127d8 100644 --- a/ff/README.md +++ b/ff/README.md @@ -15,11 +15,15 @@ Add the `ff` crate to your `Cargo.toml`: ff = "0.4" ``` -The `ff` crate contains `Field`, `PrimeField`, `PrimeFieldRepr` and `SqrtField` traits. See the **[documentation](https://docs.rs/ff/0.4.0/ff/)** for more. +The `ff` crate contains `Field`, `PrimeField`, `PrimeFieldRepr` and `SqrtField` traits. +See the **[documentation](https://docs.rs/ff/)** for more. ### #![derive(PrimeField)] -If you need an implementation of a prime field, this library also provides a procedural macro that will expand into an efficient implementation of a prime field when supplied with the modulus. `PrimeFieldGenerator` must be an element of Fp of p-1 order, that is also quadratic nonresidue. +If you need an implementation of a prime field, this library also provides a procedural +macro that will expand into an efficient implementation of a prime field when supplied +with the modulus. `PrimeFieldGenerator` must be an element of Fp of p-1 order, that is +also quadratic nonresidue. First, enable the `derive` crate feature: @@ -41,13 +45,16 @@ extern crate ff; struct Fp(FpRepr); ``` -And that's it! `Fp` now implements `Field` and `PrimeField`. `Fp` will also implement `SqrtField` if supported. The library implements `FpRepr` itself and derives `PrimeFieldRepr` for it. +And that's it! `Fp` now implements `Field` and `PrimeField`. `Fp` will also implement +`SqrtField` if supported. The library implements `FpRepr` itself and derives +`PrimeFieldRepr` for it. ## License Licensed under either of - * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. diff --git a/group/README.md b/group/README.md index 7fadc0b..5c2398b 100644 --- a/group/README.md +++ b/group/README.md @@ -1,10 +1,13 @@ # group [![Crates.io](https://img.shields.io/crates/v/group.svg)](https://crates.io/crates/group) # +`group` is a crate for working with groups over elliptic curves. + ## License Licensed under either of - * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. diff --git a/librustzcash/README.md b/librustzcash/README.md index c21ca8e..0d6eeae 100644 --- a/librustzcash/README.md +++ b/librustzcash/README.md @@ -1,12 +1,17 @@ # librustzcash -This repository contains librustzcash, a static library for Zcash code assets written in Rust. +`librustzcash` is an FFI library crate that exposes the Zcash Rust components to +the `zcashd` full node. + +The FFI API does not have any stability guarantees, and will change as required +by `zcashd`. ## License Licensed under either of - * Apache License, Version 2.0, ([LICENSE-APACHE](../LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) + * Apache License, Version 2.0, ([LICENSE-APACHE](../LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](../LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. diff --git a/pairing/README.md b/pairing/README.md index bf386de..47a25dc 100644 --- a/pairing/README.md +++ b/pairing/README.md @@ -1,6 +1,16 @@ # pairing [![Crates.io](https://img.shields.io/crates/v/pairing.svg)](https://crates.io/crates/pairing) # -This is a Rust crate for using pairing-friendly elliptic curves. Currently, only the [BLS12-381](https://z.cash/blog/new-snark-curve.html) construction is implemented. +`pairing` is a crate for using pairing-friendly elliptic curves. + +Currently, only the [BLS12-381](https://z.cash/blog/new-snark-curve.html) +construction is implemented. + +## Roadmap + +`pairing` is being refactored into a generic library for working with +pairing-friendly curves. After the refactor, `pairing` will provide basic traits +for pairing-friendly elliptic curve constructions, while specific curves will be +in separate crates. ## [Documentation](https://docs.rs/pairing/) @@ -8,13 +18,15 @@ Bring the `pairing` crate into your project just as you normally would. ## Security Warnings -This library does not make any guarantees about constant-time operations, memory access patterns, or resistance to side-channel attacks. +This library does not make any guarantees about constant-time operations, memory +access patterns, or resistance to side-channel attacks. ## License Licensed under either of - * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. diff --git a/zcash_client_backend/README.md b/zcash_client_backend/README.md index da5c9e2..af9a7ff 100644 --- a/zcash_client_backend/README.md +++ b/zcash_client_backend/README.md @@ -1,12 +1,14 @@ # zcash_client_backend -This library contains Rust structs and traits for creating shielded Zcash light clients. +This library contains Rust structs and traits for creating shielded Zcash light +clients. ## License Licensed under either of - * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. diff --git a/zcash_primitives/README.md b/zcash_primitives/README.md index b284820..02a0c33 100644 --- a/zcash_primitives/README.md +++ b/zcash_primitives/README.md @@ -6,7 +6,8 @@ This library contains Rust implementations of the Zcash primitives. Licensed under either of - * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. diff --git a/zcash_proofs/README.md b/zcash_proofs/README.md index 92d9c77..f365c5a 100644 --- a/zcash_proofs/README.md +++ b/zcash_proofs/README.md @@ -7,7 +7,8 @@ and verifying proofs. Licensed under either of - * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or + http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option.