Today we’re announcing the release of Zcash 1.0.14, which contains new features, bug fixes, and documentation improvements.
Incoming viewing keys
Support for incoming viewing keys, as described in the Zcash protocol spec, has been added to the wallet.
Use the z_exportviewingkey RPC method to obtain the incoming viewing key for a z-address in a node’s wallet. For Sprout z-addresses, these always begin with “ZiVK” (or “ZiVt” for testnet z-addresses). Use z_importviewingkey to import these into another node.
A node that possesses an incoming viewing key for a z-address can view all past
transactions received by that address, as well as all future transactions sent
to it, by using z_listreceivedbyaddress. They cannot spend any funds from the
address. This is similar to the behaviour of “watch-only” t-addresses.
z_gettotalbalance now has an additional boolean parameter for including the
balance of “watch-only” addresses (both transparent and shielded), which is set
to false by default. z_getbalance has also been updated to work with
- Caution: for z-addresses, these balances will not be accurate if any
funds have been sent from the address. This is because incoming viewing keys
cannot detect spends, and so the “balance” is just the sum of all received
notes, including ones that have been spent. Some future use-cases for incoming
viewing keys will include synchronization data to keep their balances accurate
Sprout circuit value tracking
Nodes can now track the total amount of shielded ZEC inside the Sprout circuit.
This is measured by adding up the ZEC moving between the Transparent Value Pool
and JoinSplits (see Anatomy of a Zcash Transaction).
getblockchaininfo shows the total for the entire chain, while getblock
will show the total as of a specific block.
To enable this monitoring on a specific node, it must be re-indexed. This will
take several hours to complete, but otherwise will not affect any other node
Summary of the changes included in this release
- We fixed a non-exploitable buffer overflow in libsnark. (#2800)
- We added support for incoming viewing keys. (#2143)
- We added tracking of the total shielded value inside the Sprout circuit, which can be enabled by re-indexing. (#2795)
- We modified dumpwallet and z_exportwallet to prevent them overwriting existing files. (#2741)
- We fixed bugs on several unsupported platforms. (#2700, #2752, #2786)
- We improved various parts of the help text and documentation. (#2724, #2744)