In the original launch of Zcash we introduced the Sprout shielded protocol. In the time since, we’ve deployed a new shielded protocol called Sapling which uses a different value pool. There is basically no reason to use the original Sprout shielded protocol and its expensive proofs, and so for years the default in our software is to offer Sapling addresses. We’ve been encouraging users to migrate their Sprout funds to Sapling. Community projects at this point solely target Sapling support.
As of this post the Sprout shielded value pool apparently has 110640.29858694 ZEC in it, which is over $6M dollars worth of coins. In an effort to further encourage migration of these coins, the upcoming Canopy upgrade will make it impossible to move new coins into the Sprout value pool. This will probably not be enough to flush everyone out; a huge portion of these coins may be in discarded wallets and lost keys.
Sprout is the first example of a legacy value pool. It’s been deprecated and nobody uses it seriously, that we know of. However, it remains in the protocol. Nodes still have the code to verify the rare Sprout transaction that appears on chain. This code needs to be maintained, as well as the wallet code necessary to make Sprout transactions. This is a perpetual burden on development and continually increases the risk of consensus forks and security bugs. We’d really like to get rid of the pool entirely some day.
However, we’ve never established an expectation among our users about how long a pool will be supported before we pull the plug on dormant coins. Imagine someone buying some ZEC back in 2016, watching ZEC moon (as we know it will!) and then trying to dig up their old shielded wallet. Surprise!
The idea of destroying dormant value is extremely controversial in crypto communities. However, if we set the expectation that long term cold storage in shielded protocols isn’t supported and that mandatory turnstiles should be expected, it’s fair game. We haven’t done this yet, or even had a conversation about it.
There may be some alternatives to destroying the pool. Perhaps we could create a sidechain-like thing which runs the Sprout protocol and punt the maintenance burden to the interface between the chains? Or you could have some kind of organization take custody of the pool and be responsible for maintaining/distributing the coins to people who show up with Sprout proofs.
More radical proposals include destroying the pool and redistributing its funds to miners or airdropping it on the community. Some might argue that having more confidence in the monetary base makes market capitalization a more useful economic indicator.
In any event, let’s talk about what to do because this probably isn’t the last pool that we’re going to want to get rid of and we need to start setting expectations.