Since mid-June, the size of the Zcash blockchain has grown from approximately 30GB to approximately 116GB representing an almost quadrupling in chain size. During that time, we’ve added on average .78GB per day to the chain.
At ECC, we’ve been tracking the impact of the increased shielded transaction load since it started and have been taking steps to mitigate its impact ever since. Our first priority was to ensure the stability of network operations and restore node performance to near historic levels, even under this increased load. We released multiple zcashd releases (5.1.0 and 5.2.0) for that purpose.
Release 5.1.0 provided faster block validation for Sapling and Orchard transactions reducing worst-case block validation times for observed historic blocks by around 80%. We also made performance improvements to the getblocktemplate RPC to reduce block propagation times throughout the network
Release 5.2.0 provided a number of updates to node and zcashd wallet performance including various caching improvements, parallelizing and batching trial decryption of Sapling outputs, and improvements to witness handling.
We will release zcashd 5.3.0 next week which will have continued performance and scalability improvements primarily in the area of concurrent memory utilization.
Our top priority at ECC remains an improved sync experience for our mobile SDKs. The NightHawk, Unstoppable, and Edge wallets are built on this SDK and have experienced extreme sync times since this load started, to the point of being unusable in some cases. We’ll roll out SDKs updates in a couple of phases, with the first phase offering incremental sync improvements, and targeted for release in the next couple of weeks.
We have also spent significant time analyzing potential fee changes, like those proposed in ZIP 317 to make chain usage more fair and equitable among all users. We are almost complete with our analysis and will have a concrete recommendation that we’re supportive of potentially as early as this coming week.
None of these items directly address the rate of growth of the blockchain. The fact is, if block space is fully utilized in every block added to the chain, we would be adding about 2GB on a daily basis. The maximum block size is currently set at 2MB and the protocol is designed to allow those blocks to be filled. We are monitoring to see if there are any other impacts on the Zcash ecosystem due to this or other factors. If you are a Zcash user and are having issues, please reach out to us.
Supporting further increases in the levels of usage of Zcash will require more than a quick fix to scale properly. Our next priority after the SDK updates is to define a medium term roadmap focused on performance and scalability which has the goal of allowing the chain to scale at max capacity and still provide the basis for an excellent experience for ZEC users. We’ll be publishing more on this as we nail down some of the specifics.