This library supports for using zk-SNARKs on substrate and is implemented as an extension of librustzcash.
Primary purpose of this library is to be used with zero-chain. However, it is designed to be as flexible as possible and might be suited well for any other projects to use zk-SNARKs on Substrate.
In order to use the bellman-based zk-SNARKS on Substrate, following features are added to this library.
no_std
compatible- some attributes (like
Encode
,Decode
, etc...)for binary serialization and deserialization. (These codec is implemented as a parity-codec.) Rng
fixes to be compatible with wasm.
These libraries are currently under development and have not been fully-reviewed.
All code in this workspace is 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.
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.