librustzcash/zcash_primitives
Kris Nuttycombe 5873950648 Restructure batch decryption to avoid cartesian product of results.
While it is necessary in the worst case to perform `m * n` decryptions,
where `m` is the number of outputs being decrypted and `n` is the number
of IVKs, it is possible to stop performing trial decryptions when the
first successful decryption is performed. Also, it's inconvenient and
unnecessary to return the full cartesian product of these results, as
only one IVK will decrypt a given output. This commit modifies batch
trial decryption to stop on the first successful decryption, and instead
of returning the cartesian product of results we return the index of the
input IVK along with the output it decrypted. Note that this means that
trial decryption is not constant-time with respect to the number and/or
order of IVKs.
2022-07-28 15:23:21 -06:00
..
benches Fix stray clippy complaints. 2021-08-31 13:19:24 -06:00
proptest-regressions Implement manual serialization for incremental Merkle tree components. 2021-08-05 09:32:44 -06:00
src Restructure batch decryption to avoid cartesian product of results. 2022-07-28 15:23:21 -06:00
CHANGELOG.md Merge pull request #570 from zcash/387-migrate-from-extfvk-to-ufvk 2022-06-28 10:49:37 -06:00
Cargo.toml Return the network type for encoding addresses as part of the network parameters. 2022-06-30 12:09:32 -06:00
LICENSE-APACHE Empty crates as a base for code refactoring 2018-08-28 22:24:14 +01:00
LICENSE-MIT Electric Coin Company 2019-05-09 20:32:39 +03:00
README.md Address feedback about the use of "permissive". 2022-06-28 16:46:13 +01:00

README.md

zcash_primitives

This library contains Rust implementations of the Zcash primitives.

License

Licensed under either of

at your option.

Downstream code forks should note that 'zcash_primitives' depends on the 'orchard' crate, which is licensed under the Bootstrap Open Source License. A license exception is provided allowing some derived works that are linked or combined with the 'orchard' crate to be copied or distributed under the original licenses (in this case MIT / Apache 2.0), provided that the included portions of the 'orchard' code remain subject to BOSL. See https://github.com/zcash/orchard/blob/main/COPYING for details of which derived works can make use of this exception.

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.