Testing the Zcash Network
Introduction
In early March of 2021, a small team from Equilibrium Labs applied for a grant to build a network test suite for Zcash nodes we named Ziggurat. Three days later, the grant application was accepted and funded by the Zcash Open Major Grants Committee (ZOMG). Though Ziggurat is applicable to any node implementation, our focus was on testing Zcashd and Zebrad, the nodes maintained by the Electric Coin Co. and the Zcash Foundation respectively.
Zcash’s Network
When we first dove into the project, Zcash didn't have a network specification other than what had been inherited from Bitcoin. As a result, both nodes had diverged and it was unclear how large the gap to network feature parity had grown. Ziggurat became a powerful tool for pinpointing these differences and currently constitutes the most comprehensive specification of the Zcash network layer.
Introducing Ziggurat
Ziggurat is a collection of network testing tools and a suite of conformance, performance and resistance tests our team developed in Rust.
The project was presented and discussed on the 1st of July 2021 Arborist Call and its use is documented in the manual.
Impact Review
Starting from the initial handshake when establishing connections, Ziggurat highlighted the major differences in how Zcashd and Zebrad behave from a network perspective. Though not initially planned as a major part of the grant, we discovered, investigated and securely disclosed critical bugs and security vulnerabilities to the maintainers of both projects.
Below is the full list of issues credited to and confirmed by Equilibrium Labs.
Credited: zebrad#2148, zebrad#2153, zebrad#2154, zebrad#2156, zebrad#2181, zebrad#2212, zebrad#2213, zebrad#2214, zebrad#2163, zebrad#2107, zcashd#5168, zcashd#5259, zcashd#5258.
Confirmed: zebrad#1768, zebrad#2216, zebrad#1848, zebrad#1850.
Crucially, Ziggurat has had a profound impact on the Zcash ecosystem by highlighting the need for a network specification that all implementations would follow. It provides powerful tools for the future development and testing of the network.
Future Work
We have ideas for testing custom node topologies, improving the test runner, extending the capabilities of the synthetic nodes and more testnet introspection tooling. This is work Equilibrium Labs may propose to Zcash in the future and work we’d encourage the Zcash community to take on.
About Zcash
Zcash is a digital currency with strong privacy features launched by the Electric Coin Co. It started as a fork from Bitcoin and was the first project to implement shielded transactions through the use of zk-SNARKs.
About the Zcash Foundation
The Zcash Foundation is a 501(c)(3) non-profit organization created to build privacy-focused financial infrastructure. It backs and develops projects connected with the Zcash blockchain and the application of zero-knowledge cryptography.
About Equilibrium Labs
Equilibrium Labs is an R&D company focused on the hardest engineering problems around security, privacy, and scaling of blockchain-based cloud infrastructure.
Continue reading
9 + 1 Open Problems In The Privacy Space
In the third (and final) part of our privacy series, we explore nine open engineering problems in the blockchain privacy space in addition to touching on the social/regulatory challenges.
November 7, 2024
Aleo Mainnet Launch: Reflecting On The Journey So Far, Our Contributions And Path Ahead
Equilibrium started working with Aleo back in 2020 when ZKPs were still mostly a theoretical concept and programmable privacy in blockchains was in its infancy. Following Aleo's mainnet launch, we reflect on our journey and highlight key contributions.
October 15, 2024
Do All Roads Lead To MPC? Exploring The End-Game For Privacy Infrastructure
This post argues that the end-game for privacy infra falls back to the trust assumptions of MPC, if we want to avoid single points of failure. We explore the maturity of MPC & its trust assumptions, highlight alternative approaches, and compare tradeoffs.
August 12, 2024
What Do We Actually Mean When We Talk About Privacy In Blockchain Networks (And Why Is It Hard To Achieve)?
An attempt to define what we mean by privacy, exploring how and why privacy in blockchain networks differs from web2, and why it's more difficult to achieve. We also provide a framework to evaluate different approaches for achieveing privacy in blockchain.
June 12, 2024
Will ZK Eat The Modular Stack?
Modularity enables faster experimentation along the tradeoff-frontier, wheras ZK provides stronger guarantees. While both of these are interesting to study on their own, this post explores the cross-over between the two.
April 9, 2024
Overview of Privacy Blockchains & Deep Dive Of Aleo
Programmable privacy in blockchains is an emergent theme. This post covers what privacy in blockchains entail, why most blockchains today are still transparent and more. We also provide a deepdive into Aleo - one of the pioneers of programmable privacy!
October 5, 2023
2022 Year In Review
If you’re reading this, you already know that 2022 was a tumultuous year for the blockchain industry, and we see little value in rehashing it. But you probably also agree with us that despite many challenges, there’s been a tremendous amount of progress.
March 12, 2023
Connecting Rust and IPFS
A Rust implementation of the InterPlanetary FileSystem for high performance or resource constrained environments. Includes a blockstore, a libp2p integration which includes DHT contentdiscovery and pubsub support, and HTTP API bindings.
June 30, 2021
Rebranding Equilibrium
A look back at how we put together the Equilibrium 2.0 brand over four months in 2021 and found ourselves in brutalist digital zen gardens.
June 13, 2021
2021 Year In Review
It's been quite a year in the blockchain sphere. It's also been quite a year for Equilibrium and I thought I'd recap everything that has happened in the company with a "Year In Review" post.
January 20, 2021