Abstract
Zecnero is an implementation of the Zerocash scheme as refined by Zcash. Its cryptographic core is the Sapling and Orchard protocols as deployed in Zcash at network upgrade NU6. The consensus changes relative to Zcash concern proof of work, difficulty adjustment, issuance, network identity and chain selection. Proof of work is RandomX with a Zecnero-specific Argon2 salt, so the most efficient hardware for it converges on a general-purpose processor. Difficulty follows aserti3-2d, anchored at genesis. Each block pays 6.25 ZMR, halving every 1,680,000 blocks, ending after 30 halvings with no tail emission. Below the first halving every block also pays 3% of its subsidy to a published founder script; no other allocation exists and no height is reserved for any miner. The Sprout shielded protocol is removed. This document specifies where Zecnero departs from Zcash; everything it leaves out follows the Zcash protocol specification.
Consensus parameters
1Introduction
Zecnero bridges the transparent payment scheme of Bitcoin with shielded payment schemes secured by zero-knowledge proofs. All value belongs to one of three chain value pools: transparent, Sapling and Orchard. Transparent value moves essentially as in Bitcoin, with the same privacy properties. Value in a shielded pool is carried by notes, each with a commitment revealed when it is created and a nullifier revealed when it is spent; without the right key, the two cannot feasibly be linked.
Blocks are produced by proof of work. A miner searches for a header whose RandomX-Zecnero hash, read as an integer, does not exceed a target. The target is computed from the genesis time, the height of the chain and the timestamp of the previous block, so that blocks arrive on average every 75 seconds. Each block pays its miner a subsidy that halves every 1,680,000 blocks, together with the fees of the transactions it contains. During the first halving period each block also pays a fixed fraction of its subsidy to a published founder script.
This is a draft. The specification marks several values as undecided, and those must not be used on any public network.