ECC Engineering flight plan: Mid-horizon update

In our 2019 Q4 livestream, we mapped out our Engineering flight plan aimed at advancing the future of Zcash across a multi-year timeframe. In that presentation, we defined three time horizons and our product plans associated with each: a 0-to-6-month period, a 6-to-24-month period and a 24-to-48-month period.

This post provides a mid-horizon update to that flight plan and provides insights into our Engineering activities for Q1 2020 that align with the goals presented there. We also provided a similar update in our most current livestream. Like any product plan, the further out the planning periods go in these horizons, the less well-defined the plans are and the more likely they are to change. And while we talk about horizons as far as four years out, the activities described here are just those for the current quarter.

Horizon 1

Horizon 1 is focused on community enablement and interoperability, and we have several activities, both ongoing and planned, for this quarter in support of these goals.

Goal: Flyclient support

Flyclient support does a couple of things, primarily: 

  1. It enables low-power devices (for example, mobile phones) to send and verify transactions.
  2. It facilitates cross-chain interoperability protocols. 

Our activities this quarter in support of this goal include the implementation of ZIP-221 and an external implementation audit.

Goal: Shielded coinbase implementation

A coinbase transaction is the first transaction in a block and contains the block reward for the miner. Currently in Zcash, coinbase transactions can only contain transparent outputs, meaning the block rewards can only go to transparent addresses. Shielded coinbase eliminates that requirement and incentivizes miners to shield directly into the Sapling pool. 

Our activities for this quarter include the implementation of ZIP-213 and conducting an external implementation audit.

It’s worth noting that for any feature (like flyclient and shielded coinbase) that contains consensus changes, we conduct two types of audits: specification and implementation. The specification audits for both of these features have already been done and are available here and here. Trail of Bits also produced an informative Zcash whitepaper that can be found here.

Goal: Viewing key RPC support

Viewing keys allow users to selectively disclose transaction information to third parties. There are multiple use cases for this feature but two of the main ones are regulatory and audit compliance:

  1. Exchanges need to be able to detect deposits into shielded deposit addresses while storing spending authority keys on secure hardware.
  2. Exchanges and/or custodians need to be able to provide visibility of their shielded Zcash holdings to auditors.

Viewing key support was first deployed into Zcash with the Sapling network upgrade (NU1). 

Activities this quarter include making those viewing keys usable by Zcashd.

Goal: Testnet-in-a-Box

Our Testnet-in-a-Box is an incredibly important initiative that allows protocol development teams to spin up a working, multinode testnet then invite others to join and participate in extended testing (assuming consensus compatibility). 

This quarter, we’ll be delivering this feature along with a branch running Transparent Zcash Extensions.

Goal: Transparent Zcash extensions

Transparent Zcash Extensions (TZEs) were formerly called Whitelisted Transparent Programs. They’re intended to simplify BOLT layer-2 support and extensibility of the consensus rules for other use cases, such as atomic swaps with other blockchains.

Activities planned for this quarter include delivering a prototype implementation of ZIP-222 and a TZE branch that can be used with our Testnet-in-a-Box initiative.

Goal: Shielded wallet SDKs for iOS and Android

We’re also doing quite a bit of work this quarter on our shielded wallet SDKs for iOS and Android. As we mentioned in the last livestream, we’re developing an internal-use wallet for both operating systems and learning a lot about wallet UX in the process. We’re currently alpha testing these wallets internally and excited to be open sourcing both the Android and iOS wallets before the end of Q2.

Activities this quarter included continued improvements to the wallet SDKs, continued development and internal rollout of our Android and iOS wallets, and the deployment of a wallet developer information portal.

Horizon 2

Horizon 2 covers the the 6-to-24-month timeframe — which will take place under a new governance structure, decided by the community in recent dev-fund-related conversations and polling. 

Goal: Translate development fund decision

The Zcash community recently voted to create a new dev fund with 20 percent of the mining rewards. The distribution will be as follows: 7% to ECC, 5% to the Zcash Foundation and 8% to support major grant initiatives. More detail on the process and results can be found here.

Our primary activity for this quarter is to fulfill the community governance decision by translating this decision into consensus rules we can implement in NU4. 

Goal: Scalability 2021

Scalability 2021 is a long-term initiative to transition to a new architecture with layer 1, horizontal scalability. The current focus of this effort is in research and development around Halo, a new proof system that supports recursive proofs without a toxic waste systemic vulnerability.

Our primary activity this quarter includes continued HALO-related R&D, peer review and high-performance implementation work.

Goal: Community-driven development

The next goal is to begin the transition to a community-driven development model, which begins in earnest with the advent of major grants post NU4.

Activity this quarter includes reaching out to protocol development teams involved in NU3 and NU4 to begin to craft a new network upgrade process. We’re incredibly excited about the potential this brings to the Zcash ecosystem and look forward to working with everyone to move Zcash forward.

Horizon 3

Horizon 3 covers the the 2-to-4-year timeframe, with a focus on layer-1 scalability and a closed loop with regard to the shielded lifecycle. 

Goal: Scalability 2021 deployment

The first goal is the deployment of our Scalability 2021 initiative. Ideally, engineering teams should always address scalability before it becomes a concern. In complicated systems and networks, the intricacies of scalability are often complex and there is no quick fix. By beginning work on this long-term initiative now, we ensure we’re ready to deploy well ahead of demand. We want Zcash users to feel confident in their decision to use it, both at a consumer and business level.

Our primary activity this quarter is our continued work on Halo.

Goal: Extending privacy across various bridging protocols

The next activity is focused on extending privacy across various bridging protocols, creating a privacy network effect. This makes Zcash more valuable to DeFi applications and other blockchains, and it enables use cases such as shielded BOLT channel management.

Activity for Q1 2020 includes early R&D for Shielded Zcash Extensions (SZEs).