librustzcash icon indicating copy to clipboard operation
librustzcash copied to clipboard

Redesign Rust types for representing wallet key material

Open str4d opened this issue 3 years ago • 1 comments

The key types in our Rust crates have evolved somewhat organically over time:

  • The Sapling key types were originally written for circuit usage, and extracted / extended from there.
  • The Orchard key types were crafted for direct usage, but only within the Orchard context.
  • The transparent key types have only been implemented as minimally as required for our usage. We don't have full transparent support like the zcashd wallet does.
  • Wrapper types like RecipientAddress and UnifiedFullViewingKey were built as they were needed.

Once #578 is complete, we should look at the overall Zcash key structure, and redesign our Rust types for simplicity and cohesiveness, and to better match the actual use cases.

str4d avatar Jun 28 '22 13:06 str4d

The zcash_keys crate is the direction we've headed in for addressing this issue. We still need to redesign the sapling-crypto key structures, and we still need to take input from zcashd (#578) to ensure we can represent those keys as needed.

str4d avatar Apr 24 '24 23:04 str4d