- ZEC miners delegate their existing hashrate to validators by embedding a vote in the blocks they already mine. No new hardware, no new energy.
- ZEC holders timelock ZEC on the Zcash chain to vote for validators. The ZEC never leaves their wallet.
- Z token stakers stake Z tokens directly on the network to vote for validators.
The Three Legs
Leg 1: ZEC Miners (Delegated Proof of Work)
Zcash miners vote for Z validators by embedding delegation metadata in the blocks they already mine. What the miner does:- Includes two pieces of data in an
OP_RETURNoutput (80-byte limit) when mining a Zcash block: the Z validator address they are voting for, and the Z address where they want to receive rewards - No new hardware, no additional energy, no changes to existing mining operations
- For mining pools, the pool operator delegates on behalf of all participants
- A Zcash Light Client contract on Z verifies Zcash block headers on-chain
- Permissionless relayers submit headers in batches
- Each header is validated using Equihash and Blake2b precompiles before being accepted
- 6-block confirmation depth (~7.5 minutes) before miner power is counted, to handle reorgs
- Power calculations are frozen 7 rounds in the past to prevent last-minute manipulation of validator elections
Leg 2: ZEC Holders (Self-Custodial ZEC Staking)
ZEC holders stake by timelocking their ZEC on the Zcash chain. The ZEC stays in the holder’s wallet the entire time. No bridging. No wrapping. No custody transfer. What the holder does:- Creates a CLTV (CheckLockTimeVerify) output that locks the ZEC for the chosen duration
- Includes an
OP_RETURNoutput containing the Z validator address and the holder’s Z reward address
- A relayer submits the transaction to Z’s ZcashStake contract
- The contract verifies inclusion via the Zcash Light Client (Merkle proof against a confirmed header)
- Delegation metadata is parsed from the
OP_RETURNpayload using ZIP-244 transparent component parsing
- No custody transfer. The ZEC never leaves the holder’s possession.
- No trust assumptions beyond the Zcash protocol itself.
- The only cost is temporary illiquidity.
Leg 3: Z Token Stakers (Delegated Proof of Stake)
Z token holders stake directly on Z by delegating tokens to validators through the ZSPStake contract. Standard on-chain staking.- Staking Z alongside ZEC earns boosted yield through Dual Staking.
Validator Election
Every round, each validator candidate receives a hybrid score calculated from the combined weight of all three delegation sources.Becoming a Validator Candidate
Validator candidates register through the CandidateHub contract by staking a minimum deposit of Z tokens and providing their consensus key and commission rate. Candidates must maintain a node that meets the network’s hardware and uptime requirements. The commission rate determines what percentage of delegator rewards the validator keeps. Changes take effect in the next round to prevent mid-round manipulation.Round Lifecycle
A round lasts 24 hours. At the end of each round, the CandidateHub contract orchestrates the transition:- Freeze state. All delegation data for the current round is finalized.
- Filter candidates. Only active candidates with sufficient minimum delegation qualify.
- Calculate hybrid scores. StakeHub aggregates delegation data from all three agent contracts and computes each candidate’s normalized score.
- Sort and elect. Candidates are ranked by hybrid score. The top candidates become the active validator set.
- Distribute rewards. The previous round’s block rewards are distributed through StakeHub to delegators proportional to their delegation weight.
- Reset flags. Validator and candidate state is reset for the new round.
turnRound function on CandidateHub. Any account can trigger it once the round interval has elapsed.
Emissions and Rewards
Consensus rewards are paid in Z tokens.Reward Flow
- ValidatorSet receives block rewards (minted at genesis and stored in the contract).
- StakeHub receives the round’s accumulated rewards and routes them to the three leg-specific agent contracts.
- Each agent contract distributes to individual delegators proportional to their delegation weight within that leg.
On-Chain Verification Infrastructure
Zcash Light Client
A system contract that maintains a verified chain of Zcash block headers on Z.- Relayers submit headers in batches. Each header is validated using the Equihash precompile before being stored.
- 6-block confirmation depth (~7.5 minutes). Headers with fewer confirmations are not yet trusted.
- Reorg handling: if a new header arrives with higher cumulative score than the current chain tip, the contract walks back and updates.
Equihash and Blake2b Precompiles
| Precompile | Address | Purpose | Gas model |
|---|---|---|---|
| Equihash(200,9) | 0x0B | Validates Zcash proof-of-work solutions | Heavy flat-rate fee, benchmarked on minimum-spec hardware |
| Blake2b | 0x0C | Blake2b hashing with Zcash personalization strings. Merkle root verification and ZIP-244 transaction ID computation. | Dynamic linear fee based on payload size |
Staking Porter (ZcashStake)
When a relayer submits a Zcash transaction containing a CLTV timelock andOP_RETURN delegation data, the ZcashStake contract:
- Validates the redeem script format (
CLTVstructure) - Computes the transaction ID using ZIP-244 transparent component hashing via Blake2b (
0x0C) - Verifies transaction inclusion against the Zcash Light Client (Merkle proof against a confirmed header)
- Parses the
OP_RETURNoutput to extract the validator candidate address and delegator reward address - Registers the delegation with the appropriate staking weight and lock duration
Relayer Network
Relayers are permissionless. Any participant can run a relayer that submits Zcash block headers and staking transactions to Z. Relayers are compensated through the SystemReward contract.Comparison to Core’s Satoshi Plus
| Component | Core | Z |
|---|---|---|
| PoW source | Bitcoin miners (SHA-256) | Zcash miners (Equihash) |
| Self-custodial staking | BTC holders (CLTV on Bitcoin) | ZEC holders (CLTV on Zcash) |
| Token staking | CORE token holders | Z token holders |
| Header verification | SHA-256 | Equihash + Blake2b precompiles |
| Transaction format | Bitcoin | ZIP-244 (transparent, Phase 1) |
| Source chain block time | ~10 minutes | ~75 seconds |
| Confirmation depth | 6 blocks (~60 min) | 6 blocks (~7.5 min) |
| Round interval | 24 hours | 24 hours |
| Live since | January 2023 | Pre-launch |
Finality
ZSP uses probabilistic finality with a 6-block confirmation depth on the Zcash source chain. On Z itself, once a supermajority of validators signs off on a block, it is considered final.Crosslink Implications
Crosslink is a proposed Zcash protocol alteration that would layer a proof-of-stake finality gadget on top of Zcash’s proof-of-work consensus. ZSP does not depend on Crosslink and requires zero changes to the Zcash protocol. ZSP reads Zcash state through a light client using existing Zcash primitives (CLTV timelocks,OP_RETURN metadata, Equihash block headers). These primitives are unchanged by Crosslink. If Crosslink goes live, miners continue embedding delegation metadata in blocks they already mine, and ZEC holders continue timelocking on the Zcash base layer. ZSP participation is unaffected.