ZIPsZoo Proposals
ZIP-0019

Validator Rewards Conservation Split

Draft

Defines the mechanism for splitting validator rewards between stakers and the conservation fund

Type
Standards Track
Category
Core
Author
Zoo Labs Foundation
Created
2025-01-15
stakingvalidatorsconservationrewards

ZIP-0019: Validator Rewards Conservation Split

Abstract

This proposal defines a mandatory split of Zoo Network validator rewards between stakers and the conservation fund. As an L2 on Lux Network, Zoo does not operate its own validator set, but it does generate sequencer fees and MEV revenue. This ZIP specifies that a minimum of 20% of all such revenue flows to the conservation fund, with the split adjustable by governance within defined bounds.

Motivation

Conservation funding must be sustainable and automatic, not dependent on voluntary donations:

  1. Mission alignment: Every transaction on Zoo Network directly contributes to conservation
  2. Predictable funding: Conservation organizations need reliable revenue streams for multi-year projects
  3. User alignment: Users choose Zoo Network knowing their activity funds real-world impact
  4. Protocol-level commitment: Embedding the split at the protocol level makes it credible and irrevocable
  5. Tax efficiency: Automatic protocol-level allocation avoids the complexity of individual charitable deductions

Specification

Reward Sources

reward_sources:
  base_fees:
    description: EIP-1559 base fees collected per block
    split: conservation receives 20% before burn
  priority_fees:
    description: Tips paid by users for transaction priority
    split: conservation receives 20%
  sequencer_revenue:
    description: MEV and ordering revenue from L2 sequencer
    split: conservation receives 30%
  blob_fees:
    description: Data availability fees for posting to Lux L1
    split: conservation receives 10%

Split Parameters

ParameterDefaultMinMaxGovernance
Base fee conservation share20%15%50%DAO vote (Parameter type)
Priority fee conservation share20%15%50%DAO vote
Sequencer revenue conservation share30%20%60%DAO vote
Blob fee conservation share10%5%25%DAO vote

Fee Distributor Contract

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

contract ConservationFeeSplitter {
    uint256 public constant MIN_CONSERVATION_BPS = 1500; // 15% floor
    uint256 public constant MAX_CONSERVATION_BPS = 5000; // 50% ceiling

    uint256 public baseFeeConservationBps = 2000;    // 20%
    uint256 public priorityFeeConservationBps = 2000; // 20%

    address public conservationFund;
    address public stakerRewardsPool;

    event RewardsSplit(
        uint256 totalRewards,
        uint256 conservationAmount,
        uint256 stakerAmount,
        uint256 epoch
    );

    function distributeRewards() external {
        uint256 baseFees = address(this).balance;
        uint256 conservationShare = (baseFees * baseFeeConservationBps) / 10_000;
        uint256 stakerShare = baseFees - conservationShare;

        payable(conservationFund).transfer(conservationShare);
        payable(stakerRewardsPool).transfer(stakerShare);

        emit RewardsSplit(baseFees, conservationShare, stakerShare, block.number);
    }

    function updateSplit(uint256 newBps) external onlyGovernance {
        require(newBps >= MIN_CONSERVATION_BPS, "below minimum");
        require(newBps <= MAX_CONSERVATION_BPS, "above maximum");
        baseFeeConservationBps = newBps;
    }
}

Distribution Schedule

  • Epoch length: 1 day (86,400 seconds)
  • Distribution: Automatic at epoch boundary via keeper bot
  • Accumulation: Fees accumulate in the splitter contract between epochs
  • Slippage protection: If keeper misses an epoch, funds roll forward (no loss)

Staker Reward Calculation

After the conservation split, remaining rewards are distributed to stakers proportionally:

staker_reward = (staker_stake / total_stake) * epoch_staker_pool

Stakers who delegate to the Zoo conservation pool receive a bonus multiplier:

Delegation TargetReward Multiplier
Standard staking1.0x
Conservation pool1.15x (15% bonus)

Transparency Dashboard

All splits are tracked in real-time at rewards.zoo.network:

  • Cumulative conservation funding by epoch
  • Per-source breakdown (base fees, priority fees, sequencer, blobs)
  • Historical split ratios and governance changes
  • USD-equivalent impact metrics

Rationale

The 20% default conservation share balances meaningful conservation funding with competitive staking yields. The hard floor of 15% prevents governance from eliminating conservation funding entirely, while the 50% ceiling prevents staking from becoming uneconomical.

The conservation pool bonus multiplier (1.15x) incentivizes users to actively support conservation beyond the mandatory minimum, creating a voluntary amplification mechanism on top of the protocol-level guarantee.

Sequencer revenue has a higher default split (30%) because MEV extraction is a privilege granted by the protocol and should contribute more to the public good.

Security Considerations

  • Governance manipulation: The MIN_CONSERVATION_BPS constant is immutable in the contract, preventing governance from reducing conservation funding below 15%
  • Keeper reliability: If the epoch distributor fails, funds accumulate safely in the splitter contract until the next successful execution
  • Oracle dependency: The split operates on native token amounts, not USD values, avoiding oracle manipulation risks
  • Reentrancy: The distributor uses checks-effects-interactions pattern and reentrancy guards
  • MEV on distribution: The distribution transaction itself should be submitted via a private mempool to prevent front-running

References

Copyright

Copyright and related rights waived via CC0.