librustzcash/zcash_client_backend
Daira-Emma Hopwood 21d573122c `zcash_client_backend::{fixed,standard,zip317}::SingleOutputChangeStrategy`
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>
2024-06-19 13:12:17 +01:00
..
examples Use `sapling-crypto` crate directly outside `zcash_primitives` 2023-12-12 19:50:26 +00:00
proptest-regressions ZIP 321 Reference Implementation (#294) 2020-10-15 14:03:40 +01:00
proto zcash_client_backend: Address comments from code review & fix incorrect `data_api::wallet` documentation. 2024-02-14 20:24:12 -07:00
src `zcash_client_backend::{fixed,standard,zip317}::SingleOutputChangeStrategy` 2024-06-19 13:12:17 +01:00
CHANGELOG.md `zcash_client_backend::{fixed,standard,zip317}::SingleOutputChangeStrategy` 2024-06-19 13:12:17 +01:00
Cargo.toml Migrate from `hdwallet` to `bip32` 2024-06-15 00:04:37 +00:00
LICENSE-APACHE
LICENSE-MIT
README.md Remove notices about the BOSL license exception, which are no longer needed. 2024-01-17 23:28:15 +00:00
build.rs Add a protobuf representation for transaction proposals. 2023-11-09 20:02:36 -07:00

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

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.