Zapa: A Better Privacy Cryptocurrency

Ryan Kass
3 min readMay 4, 2022

--

Zapa is a cryptocurrency that allows users to send and receive funds anonymously. While this is not an entirely novel concept (Monero and Zcash are two popular currencies that achieve this today), Zapa is the only privacy cryptocurrency that operates on Proof of Stake and offers Transaction Finality.

Zapa is able to offer these features while maintaining high throughput and low latency because it operates as an Avalanche Subnet. Most people familiar with the blockchain space know Avalanche as a popular cryptocurrency, but for developers, its most exciting feature is the concept of Subnets. Avalanche Subnets allow blockchains to benefit from the core features of Avalanche, including its state of the art Snowman consensus mechanism and optimized networking, while also allowing each chain to build custom logic on top of these primitives. In the case of Zapa, this custom logic is a Zcash node which has been modified and optimized to work as a virtual machine running as an Avalanche Subnet.

Today, Zcash faces a problem common among many blockchains: For many years, it has supported a deep economy transacting on top of an established product, while over the same period of time, consensus technology has advanced leaps and bounds. Many chains, like Zcash, would like to move to Proof of Stake, but doing so as an iteration on current technology is difficult and risky (see Ethereum’s many missed deadlines and struggles migrating to ETH 2.0). Subnets present an avenue for existing blockchains to upgrade their underlying consensus mechanism with little disruption to their underlying technology. Zapa offers this simple path forward for Zcash and its user base.

Zapa Under the Hood

Zapa is composed of two processes which communicate with each other over RPC, Zapavm and Zcashd. Zapavm is a thin layer which acts as a bridge between the main Avalanche validator code and Zcashd. The Zcash daemon is a fork of Zcash, doing all the heavy lifting in terms of validating anonymous transactions and composing anonymous transactions. The main difference between the Zapa-Zcash fork and Zcash itself is that all of the proof of work and networking elements have been stripped out, as these responsibilities are offloaded to the Avalanche part of the stack (more details from the Zapa docs). Below is a high level diagram of how these systems interact, annotated with some example API calls. For a more detailed depiction of what happens from the moment a user issues a transaction to the moment it is accepted into the chain, checkout out the in-depth technical diagram on Github.

What’s next?

Zapa is now live on Fuji (Avalanche terminology for testnet). Right now, users can transact ZAPA anonymously by running a validator node and sending requests to this node. That said, there is still more work to be done before Zapa can be released in production and trusted with meaningful value. For example, there is currently no Zapa wallet. What this means in practice is that users must run a validating node in order to transact ZAPA — not a long term solution. We also need a block explorer, heavy stress testing, and other miscellaneous tooling required for running a blockchain in production.

Get Involved

We need developers! If you’re interested in pushing this project forward, join our Discord, have a look at our GitHub, reach out with any questions, or jump right in by tackling an existing issue on Github.

Validators also wanted! Help out by validating the chain on testnet and using ZAPA. Instructions here.

Follow along: Join our Discord to keep up to date with what’s going on.

--

--