Today we’re announcing the release of Zcash 1.0.14, which contains new features, bug fixes, and documentation improvements.

Notable changes

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

watch-only addresses.

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

(e.g. #2542).

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

data.

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)

We’re encouraging all users and miners to update to this new version. See our download

page and the 1.0 User Guide for more information.

For a more complete list of changes, see our 1.0.14

GitHub milestone. To follow our progress, watch the GitHub project

and join the forum.