New Release: 1.0.14

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

  1. We fixed a non-exploitable buffer overflow in libsnark. (#2800)
  2. We added support for incoming viewing keys. (#2143)
  3. We added tracking of the total shielded value inside the Sprout circuit, which can be enabled by re-indexing. (#2795)
  4. We modified dumpwallet and z_exportwallet to prevent them overwriting existing files. (#2741)
  5. We fixed bugs on several unsupported platforms. (#2700, #2752, #2786)
  6. 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.