21d573122c
now implement a different strategy for choosing whether there will be any change, and its value. The aims are: * Ensure that it is possible to create fully transparent transactions with no change (this will be needed for ZIP 320). The `InsufficientFunds` error in this case should have a `required` field that reflects the additional amount needed, according to the fee calculated without an extra change output. * Avoid leaking information about note amounts in some cases: an adversary that knew the number of external recipients and the sum of their outputs was able to learn the sum of the inputs if no change output was present. * Defend against losing money by using `DustAction::AddDustToFee` with a too-high dust threshold. * Ensure that if a "change memo" is requested, there will always be a shielded change output in which to put it. Previously, this would not be the case when using `DustAction::AddDustToFee`. Co-authored-by: Jack Grigg <jack@electriccoin.co> Co-authored-by: Kris Nuttycombe <kris@nutty.land> Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org> |
||
---|---|---|
.. | ||
examples | ||
proptest-regressions | ||
proto | ||
src | ||
CHANGELOG.md | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md | ||
build.rs |
README.md
zcash_client_backend
This library contains Rust structs and traits for creating shielded Zcash light clients.
Building
Note that in order to (re)build the GRPC interface, you will need protoc
on
your $PATH
. This is not required unless you make changes to any of the files
in ./proto/
.
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.