-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP]Feat/zcash #1366
base: master
Are you sure you want to change the base?
[WIP]Feat/zcash #1366
Conversation
|
||
```cddl | ||
zcash-accounts = { | ||
master-fingerprint: uint32, ; the master fingerprint to identify the wallet |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ZIP 32 specifies a 16-byte seed fingerprint: https://zips.z.cash/zip-0032#seed-fingerprints
It's a byte array so endian-independent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's good to use this seed fingerprint instead.
} | ||
``` | ||
|
||
`zcash-ufvk` describes the UFVK of a Zcash account. Each seed has multiple accounts with different indexes. For index 0, `zcash-ufvk` should contain a BIP32 extended public key with path `M/44'/133'/0'` (transparent) and an Orchard FVK with path `M_orchard/32'/133'/0'` (Orchard). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Specify that:
-
M
is defined as in https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#master-key-generation -
M_orchard
(we use$m_{\mathsf{Orchard}}$ ) is defined as in https://zips.z.cash/zip-0032#orchard-master-key-generation .
133'
is for mainnet. Like other coins, we use 1'
for testnet as specified in SLIP 44.
Keystone Zcash UR Registries
This protocol is based on the Uniform Resources. It describes the data schemas (UR Registries) used in Zcash integrations.
Introduction
Keystone's QR workflow involves two main steps: linking the wallet and signing data, broken down into three sub-steps:
Two UR Registries are needed for these steps, utilizing the Partially Created Zcash Transaction structure.
Zcash Accounts
Unified Full Viewing Key (UFVK)
UFVK is a standard account expression format in Zcash as per ZIP-316. It consists of:
This protocol focuses on the Transparent and Orchard components.
CDDL for Zcash Accounts
The specification uses CDDL and includes
crypto-hdkey
andcrypto-key-path
specs defined in https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-007-hdkey.md.zcash-ufvk
describes the UFVK of a Zcash account. Each seed has multiple accounts with different indexes. For index 0,zcash-ufvk
should contain a BIP32 extended public key with pathM/44'/133'/0'
(transparent) and an Orchard FVK with pathM_orchard/32'/133'/0'
(Orchard).CDDL for Zcash PCZT