The Sapling network upgrade is a major feature enhancement to the Zcash network targeted to activate on October 28th, 2018. We’ve outlined the usability and security improvements coming with Sapling but now it’s time to take a closer look at what they mean for users and ecosystem services. This is the first of a short series on Sapling features in order to clarify expectations and boost understanding.
The current version of Zcash supports the original Sprout shielded address which start with “zc”. These addresses infamously require around 1.5 gigabytes of computer memory and 40 seconds to create a zero-knowledge transaction, a severe limitation in their usability.
Upon activation, there will be a new type of shielded address to support the improved efficiency of Zcash’s cryptography introduced in Sapling. These Sapling shielded addresses start with a “zs” and are slightly shorter in length (78 characters vs Sprout’s 95 characters). While we don’t anticipate the shorter address to enhance usability significantly, the time and memory requirements to create transactions will. To do the same function, Sapling shielded addresses take only a few seconds and 40 megabytes of memory on a modern computer. This equates to a time reduction of over 90% and a memory reduction of over 97%!
Migrating From Sprout
Sprout shielded addresses will be supported for the foreseeable future; however, users should migrate funds to Sapling addresses to keep up with ecosystem support. Expect third-party services to take advantage of Sapling improvements in the weeks and months after activation.
In addition to moving funds to the more efficient Sapling addresses, the migration will act as a monetary auditing mechanism. The trade-off between shielding value and auditing the circulating supply raise valid concerns. Like any valuable asset, preserving the scarcity of ZEC is an important driver of long-term, sustainable value. For example, if gold counterfeiters could successfully sell fools’ gold, the perceived loss in scarcity would drive the value down over time.
Zcash engineers have gone through great lengths to protect the network from any deviation in the expected ZEC in circulation. We recommend reading about Zcash’s public parameters to understand counterfeiting risks and mitigation techniques. Regardless of how low the probability might be, taking the extra step to detect counterfeit coins is a valuable reassurance.
To audit existing shielded ZEC, we’ve implemented a process we call the Sapling turnstile. Users will be required to send funds held in old Sprout shielded addresses to transparent addresses before sending to new Sapling shielded addresses. There will be no way to send ZEC directly between Sprout and Sapling shielded addresses using the
zcashd RPC. To understand how Zcash transactions work between transparent and shielded addresses, read Anatomy of a Zcash Transaction.
Deshielding ZEC by sending funds from a shielded address to transparent address will link the value to the transparent address. This brings up some important privacy considerations for users. Most importantly, only deshield to unused transparent addresses and never use them again. We explain more about these considerations in our Sapling turnstile documentation.
It is also worth noting that this migration method allows sending ZEC back into Sprout shielded addresses from transparent addresses. As of this post, there is no roadmap for deprecating Sprout shielded addresses but discussions around this topic are ongoing.
We recommend all Sprout shielded addresses be replaced with Sapling shielded addresses after activation. Use the privacy recommendations linked above for migrating funds. Not only do Sapling shielded addresses provide a richer feature set but migrating also contributes to auditing the Zcash monetary supply.
Look out for future blog posts which will cover new features enabled in Sapling shielded addresses like HD wallets, diversified addresses, full viewing keys and more.