Pool upgrade incentive / penalty

This idea (and variants thereof) has been proposed several times in the past for Zcash. A few examples I could easily find:

(the second one links to a specific example proposal, within the broader issue).

I think I might have also mentioned it here:

If we wanted to implement this on-chain, the idea as applied to Zcash would effectively be:

  • A pool is deprecated and a timeline is set.
  • A Network Upgrade deploys consensus enforcement of the deprecation.
  • At at defined point after the NU, the amount you can withdraw from the deprecated pool starts decreasing at some consensus-defined rate (corresponding to an increasing “legacy storage fee”).
    • This could be implemented as “amount X leaves the deprecated pool, amount X*fee_ratio is removed from circulation via the NSM, amount X*(1-fee_ratio) enters a non-deprecated pool”.
  • Once the “legacy storage fee” reaches 100%, everyone knows that no more funds can be withdrawn from the deprecated pool (because every transaction that did so would incur a 100% fee). At that moment, the consensus rules:
    • Start enforcing that new transactions do not involve the deprecated pool (which “turns off” usage of the pool).
    • Treat the remaining value contained in the deprecated pool as entirely “legacy storage fee”.
      • With the above implementation of per-tx fees, this would mean removing the remaining value in the deprecated pool from circulation via the NSM.

Once the above process completes, the deprecated pool’s protocol would no longer be part of the Zcash protocol and security surface, and full node implementations could remove the deprecated pool’s code from their implementations.

11 Likes