The first piece in our series introduced the evolution of zero-knowledge proofs (ZKPs), charting their rise from basic concepts to the development of sophisticated forms such as zk-SNARKs and zk-STARKs, which have enabled new possibilities. These breakthroughs have expanded their applicability far beyond initial expectations.
This next article shifts focus to how ZKPs are being woven into the fabric of blockchain systems. We approach this from an evolutionary angle, examining the shift from solely privacy-centric applications to a broader array of complex implementations, and forecasting the future trends this technology may embrace.
2016: The Introduction of Zcash and zk-SNARKs
Zcash Launch
Zcash was initiated by the Electric Coin Company (ECC) aiming to ensure a higher level of privacy for its users. It is based on the Bitcoin codebase with the addition of privacy by leveraging zk-SNARKs.
The integration of zk-SNARKs with Zcash addresses a critical issue: the inherent transparency of blockchains like Bitcoin, where every transaction detail is public. This level of openness led to privacy concerns for those desiring confidentiality in their transactions.
Zcash offers shielded transactions, giving users the privacy similar to that of cash transactions in the digital realm. Users have the choice between transparent and shielded transactions, with the latter providing enhanced privacy compared to the usual, pseudonymous nature of cryptocurrencies.
Moreover, Zcash introduced the concept of selective disclosure through shielded addresses. This feature allows users to reveal transaction details to selected parties via a “viewing key,” striking a balance between privacy needs and the demands for compliance and auditability.
This approach of selective transparency allowed for financial privacy while still making necessary disclosures to trusted parties.
Wider Adoption of ZKPs for Privacy
Following Zcash’s successful implementation of zk-SNARKs to provide transaction privacy, the blockchain community began to recognize the potential of ZKPs as a powerful tool for enhancing privacy across various applications.
This led to a surge in projects exploring ZKPs to secure not only financial transactions but also other types of data exchanges that could benefit from privacy preservation. Projects like Quorum (was an enterprise-focused version of Ethereum) and other privacy-centric cryptocurrencies started integrating ZKP technology to offer similar privacy guarantees.
The interest in ZKPs was not limited to privacy alone. The underlying principles of ZKPs, which allow for the verification of information without revealing the information itself, hinted at broader applications, including addressing the scalability challenges that were becoming increasingly evident in blockchain networks.
2017-2018: Expansion and Scalability Challenges
Between 2017 and 2018, the blockchain industry entered a phase of accelerated expansion, which brought to light the scalability limitations inherent in existing blockchain infrastructures.
This time was characterized by an initiation of the focus on ZKPs and the development of initial methods to address the growing scalability problems in leading blockchain networks.
Scalability Challenges in Blockchain Networks
Throughout 2017, the blockchain community started to feel the effects of scalability issues more sharply, with Ethereum’s situation often highlighted as an example.
The growing occurrence of network congestion and the increase in transaction fees were mainly due to the rising popularity of Initial Coin Offerings (ICOs), which heavily burdened Ethereum’s ability to process transactions.
This situation highlighted the existing limitations of the network’s architecture, especially during times of high demand, where blockages became frequent.
The urgent need for blockchain solutions that could handle more transactions became a key concern for the community. This led to research and development of various methods to improve network performance.
Among these methods were sharding techniques, suggesting the division of the blockchain into smaller, easier to manage parts, and Layer 2 scaling solutions, which aimed to move transactions off the main blockchain onto secondary structures, thus enhancing the network’s capacity for handling transactions.
2019-2020: Advancements in ZKP Technology and Ethereum’s Scalability Efforts
Ethereum’s Rollup-Centric Roadmap
Due to Ethereum’s growing popularity, the network experienced scalability challenges and congestion. In response, the Ethereum community explored various Layer 2 scaling solutions. A rollup-centric roadmap was proposed, emphasising the use of rollups as a core component to enhance its performance and capabilities.
zk-Rollups are a type of Layer 2 scaling solution that leverages ZKPs to batch multiple transactions into a single transaction on the blockchain. The idea is to execute transactions off-chain and then generate a ZKP that attests to the validity of these transactions. This proof, along with the new state of the rollup, is then submitted to the main blockchain.
Since the proof is much smaller in size than the original transactions, zk-Rollups significantly reduce the amount of data that needs to be processed and stored on the blockchain, thereby increasing its capacity and reducing transaction fees.
Core Projects That Started Working on zk-Rollups During That Time Frame:
zkSync: Developed by Matter Labs, zkSync is a zk-Rollup solution designed to provide fast and economical transactions on Ethereum. Since its launch zkSync has processed millions of transactions already.
StarkWare: StarkWare develops zk-Rollup solutions to scale Ethereum, featuring their primary product, StarkEx. StarkEx utilizes a unique ZKP system called STARKs (Scalable Transparent Arguments of Knowledge) to handle transactions off-chain and submit proofs to the Ethereum network. It supports various high-profile platforms, including the decentralized derivatives exchange dYdX and gaming oriented platforms like Immutable X.
Aztec: Focused on privacy, Aztec is a ZK-Rollup protocol that enables confidential transactions and smart contracts on Ethereum. It uses a variant of zk-SNARKs known as Plonk, which provides faster proof generation and verification. Aztec’s mainnet beta, Aztec Connect, launched in September 2020, allowing users to create and trade confidential assets and interact with DeFi protocols through shielded transactions.
Hermez Network (now part of Polygon): Hermez Network launched its testnet in August 2020 as a ZK-Rollup solution aimed at enhancing Ethereum’s scalability.
Mina Protocol’s Recursive zk-SNARK Strategy
While the Ethereum community was addressing scalability issues with Layer 2 solutions, Mina Protocol (formerly known as Coda) pursued a foundational approach to scale a Layer 1 using ZKPs. By maintaining a lightweight blockchain and simplifying the verification process, Mina avoided the need for extra layers or intricate mechanisms to scale the network, instead using recursive zk-SNARKs. This technique offered a new solution that targeted both scalability and efficiency.
Recursive zk-SNARKs represent a sophisticated type of ZKPs that can combine multiple proofs into one. For Mina Protocol, this meant that each new block included a zk-SNARK that verified all previous transactions and states along with the transactions in the new block itself. Consequently, the blockchain only needed to store the most recent proof, which remained consistently small in size.
Impact of Ethereum’s Rollup-Centric Roadmap on ZKP Research
Ethereum’s rollup-centric roadmap has significantly influenced ZKP research. The roadmap has acted as a catalyst for the development of more efficient and practical ZKP systems. A key challenge identified by the roadmap is ensuring EVM (Ethereum Virtual Machine) compatibility in ZKP implementations. This necessity has spurred research into zkEVMs, designed to allow ZK rollups to integrate seamlessly with Ethereum’s existing smart contract ecosystem.
2021-2022: Early Stages of zkEVM & General Purpose zkVM Development
The EVM serves as the runtime environment for smart contracts on Ethereum. While it may not be perfect compared to some newer VMs, EVM compatibility was seen as crucial for the Ethereum ecosystem in preserving the network’s interoperability and its well-established developer ecosystem.
A key challenge with ZKP implementations, especially those in scaling solutions like ZK rollups, which had to process and verify transactions in a way that maintained full compatibility with the EVM to uphold the integrity and functionality of the existing smart contract ecosystem.
The Challenge of EVM Compatibility
Ethereum’s smart contracts are written in high-level programming languages like Solidity or Vyper, which are then compiled down to EVM bytecode. For ZKP implementations to be compatible with the EVM, they must understand and execute this bytecode accurately.
The EVM itself is a complex system, characterized by its unique opcodes and computational logic. ZKP systems are required to replicate this complexity to ensure that smart contracts perform identically, whether executed on-chain or within a ZK rollup.
Any discrepancies in how smart contracts are executed on the EVM compared to within ZK rollups could lead to security vulnerabilities or inconsistencies. This is critical to avoid in a system that manages substantial value and supports complex applications.
zkEVMs: Bridging the Gap
To address this challenge, the concept of zkEVMs has been introduced. A zkEVM is a type of ZKP implementation designed to be compatible with the EVM. The goal is to create a system where ZK rollups can process smart contracts just like the EVM does, but with the added benefits of scalability and privacy that ZKPs provide.
zkEVMs aim to enable seamless integration with Ethereum’s existing smart contract ecosystem. This means developers can write and deploy smart contracts on ZK rollups without any modifications, just as they normally would.
Notable Projects Working on zkEVM:
Starkware’s zkEVM: Starkware offers a unique architecture for its zkEVM implementation, which requires competitors to build everything from scratch. Starkware’s approach to zkEVM is distinct and has been recognized for its innovation in the space.
Polygon zkEVM: Launched on the mainnet in March 2023, Polygon zkEVM has processed a significant number of transactions and is rapidly gaining traction. It is currently classified as a Type 3 zkEVM, which means it is almost EVM-equivalent but may require some sacrifices in features that are difficult to implement in a zkEVM system.
Scroll: Scroll is another project that has launched its mainnet and focuses on direct compilation of Solidity, strong community ethos, and a commitment to open-source development. It is one of the newer entrants in the zkEVM space and has already attracted attention with its approach.
General Purpose zkVMs
While EVM compatibility remains important for interoperability with the existing Ethereum ecosystem, zkVMs offer a promising alternative that could unlock new possibilities for developers and users alike.
One of the key advantages of zkVMs is their ability to support a wider range of programming languages. This is particularly important for attracting developers from diverse backgrounds who may not be familiar with Solidity or other EVM-specific languages.
By allowing developers to write smart contracts in languages like Rust, C++, or WASM, zkVMs can lower the barrier to entry and encourage more developers to build ZK-based applications.
Another important aspect of zkVMs is their potential for improved performance and scalability. By designing the VM architecture specifically for ZK proof generation, zkVMs can optimize various aspects of the computation process, such as memory access patterns, instruction set design, and parallelization. This can lead to faster proof generation times, lower costs, and higher transaction throughput compared to EVM-based solutions.
Privacy is another area where zkVMs can offer unique advantages. While ZK-rollups and other EVM-compatible solutions can provide some level of privacy by hiding transaction details, zkVMs can potentially enable more advanced privacy features. For example, zkVMs could allow for the execution of private smart contracts, where both the input data and the contract logic itself are hidden from public view. This could open up new use cases for ZK technology, such as privacy-preserving decentralized finance (DeFi) or confidential data sharing.
Notable Projects Working on General Purpose zkVMs:
RISC Zero: RISC Zero has developed a zkVM that allows developers to write ZK programs using familiar programming languages like Rust, C, and C++, without needing deep knowledge of cryptography. They offer a general-purpose framework for building zkVMs that are easier to debug. RISC Zero’s approach aims to achieve similar or better performance compared to existing SNARK VMs while providing a more streamlined and accessible developer experience.
zkWASM: zkWASM is focusing on generalized zkVMs, specifically enabling zero-knowledge proofs for WebAssembly (WASM)-based applications.
SP1: Succinct Labs has developed SP1, a high-performance, fully open-source zkVM that allows developers to use Rust for writing ZK programs. SP1 supports any language that uses the LLVM toolchain/compiler and translates the LLVM intermediate representation (IR) directly into a circuit. Succinct Labs aims to make ZK proofs more accessible and user-friendly for developers with products like SP1 and the Succinct Prover Network.
Polygon’s Miden: Miden is a STARK-based zkVM developed by Polygon that utilizes a custom low-level language called Miden Assembly. It is designed to be developer-friendly, allowing smart contracts to run on top of the Miden VM without requiring developers to learn about cryptography or ZK proofs.
Starkware’s Cairo: Cairo is a Turing-complete smart contract language designed by Starkware to efficiently generate STARK proofs. Launched in 2021, the Cairo VM features optimized validity proofs, a modern language similar to Rust for writing provable programs, and efficient Cairo code execution.
Jolt (by a16z): Jolt is a research project by Andreessen Horowitz (a16z) that is exploring a new type of zkVM using their Lasso ZK lookup argument. Although currently just a research paper, a16z plans to release an open-source version of Jolt in the future. Jolt aims to provide a general-purpose framework for building zkVMs that are easier to debug and offer a more accessible developer experience than existing SNARK VMs.
2023-2024: Aggregation Layer and Interoperability
The concept of an aggregation layer, as pioneered by Polygon, represented a major leap in blockchain interoperability and scalability.
By leveraging ZKPs, an aggregation layer enables seamless interaction and communication across different blockchain networks, effectively breaking down the barriers between previously siloed ecosystems.
How an Aggregation Layer Works
At its core, an aggregation layer acts as a middleware that sits between different blockchain networks, facilitating the processing of transactions and the exchange of information. By utilizing ZKPs, the aggregation layer can verify the validity of transactions originating from various blockchains without revealing the underlying data.
This allows for secure and private cross-chain operations, enabling users to interact with multiple blockchains as if they were part of a single, unified network.
The aggregation layer achieves this by employing a combination of techniques:
The aggregation layer leverages ZKPs to confirm the accuracy of transactions from various blockchains, ensuring that only legitimate transactions are processed on the destination blockchain while keeping sensitive information private.
This layer also facilitates the exchange of messages and data across different blockchains, paving the way for cross-chain applications that utilize the distinct features and assets of each.
By pooling liquidity from multiple blockchains, it enhances trading efficiency and asset exchange, addressing the issue of liquidity fragmentation that affects many blockchain ecosystems.
Next Step: Programmability + Privacy
In traditional blockchain systems like Bitcoin and Ethereum, transactions are pseudonymous but not entirely private. The details of transactions, including the addresses of the sender and recipient and the transaction value, are visible to anyone who accesses the blockchain. This level of transparency, while beneficial for security and trust, poses significant privacy concerns for users and organizations that require confidentiality for competitive or personal reasons.
So, the widespread use of blockchain technology largely depends on how well it can balance privacy with programmability.
Privacy is crucial for building user trust and complying with legal standards, particularly in managing financial transactions and personal data. When combined with programmability, privacy-enhancing methods such as ZKPs allow for the creation of sophisticated, decentralized applications. These applications protect user information from unauthorized access and manipulation.
It’s vital for blockchain platforms to be able to adjust to various regulatory standards without compromising on privacy. For example, on-chain compliance features that can adapt to different legal requirements help ensure that blockchain networks function within the law while maintaining user privacy.
Programmability also helps enforce advanced security measures like screening deposits and withdrawals and blocklisting to reduce the risk of financial crimes. ZKPs are particularly effective as they confirm transactions without revealing any sensitive data, balancing the need for privacy with regulatory demands.
The ability to customize privacy settings opens the door for blockchain to be used in new applications that demand both complex functionality and strict data protection. This is particularly promising for fields like finance, healthcare, and supply chain management, where privacy issues have previously restricted blockchain’s use.
These projects are at the forefront of addressing the dual needs for both privacy and the flexibility of smart contracts:
zkApps of Mina Protocol: Mina Protocol features zkApps, which are smart contracts powered by zk-SNARKs. These allow for private computation and state that can be either private or public. zkApps can perform complex computations off-chain while incurring only a flat fee to send the resulting ZKP to the chain for verification. This architecture enables privacy and efficiency in transactions and smart contract execution.
Aztec Protocol: Aztec utilizes ZKPs to enable private transactions and DeFi interactions. Aztec has developed its own zkRollup solution on Ethereum and is actively working on tools aiming to provide affordable, private crypto payments and DeFi interactions.
Polygon Miden: Miden is a zk-rollup running on the Miden VM, a virtual machine that prioritizes ZK-friendliness over EVM compatibility. It aims to offer features such as parallel transaction execution, client-side proving, and privacy-preserving smart contracts. Polygon Miden is designed for developers looking to create high-throughput and private dApps, making it a notable project for combining programmability with privacy.
Midnight: Developed by Input Output Global (IOG), Midnight is a data protection-based blockchain designed to safeguard sensitive personal and commercial data. It would use zk-SNARKs and a combination of private and public computation to create a trustless ecosystem. Midnight would operate as a partnerchain / sidechain of Cardano and would allows developers to write smart contracts in various popular languages, starting with TypeScript.
Aleo: Aleo utilizes zero-knowledge proofs for privacy and programmability. It is designed to be private-by-default and supports the development of applications that require both complex functionalities and stringent data protection measures. Aleo brings privacy by default combined with programmability, aiming to address the challenges of user identity, transaction linkability, and data privacy in blockchain applications.
Encoins: Encoins introduces a novel approach to privacy on the Cardano by allowing users to conduct transactions privately without sacrificing the inherent security benefits of blockchain technology. This is achieved by wrapping the transaction amount in a ‘digital cloak’ in the form of an NFT. This process effectively hides the amount of money being sent, while still recording the transaction on the blockchain. The project is undergoing an upgrade to ENCOINS v2, which aims to streamline and make the privacy solution more user-friendly.
Penumbra: Utilizes a combination of ZKPs with flow encryption, a new threshold crypto primitive, to allow private interaction with public shared state. Penumbra is building a private DEX using this technique, highlighting the potential of combining ZKPs with other cryptographic methods to achieve privacy in blockchain applications.
Renegade Finance: This project utilizes both MPC and ZKPs in its Dark Pool CLOB (Central Limit Order Book), showcasing the potential of blending these technologies to create privacy-focused applications. The combination allows for secure.
Catalyzing the Next Phase of Distributed Ledger Tech
The potential of ZKPs within the blockchain ecosystem is vast and filled with opportunity. The ongoing development and integration of ZKPs are expected to catalyze significant innovations in blockchain systems, transforming how transactions, data exchanges, and smart contracts are managed and executed across diverse platforms.
The immediate future likely holds significant advancements in ZKP technology to streamline and scale blockchain networks. The evolution zkVMs and Agrregation layers will play a crucial role, making it easier for developers to build applications that are both privacy-preserving and scalable. This development is expected to lower barriers for entry, allowing more innovators to bring their visions to life on blockchain platforms.
In the longer term, the ability to execute complex, programmable logic in a privacy-preserving manner could unlock a host of new applications and use cases, ranging from confidential financial transactions to secure voting systems. This would not only expand the use cases for blockchain technology but also address some of the key privacy concerns that have hindered its adoption in certain sectors.
In essence, the journey of ZKPs in the blockchain space is just beginning. As we look to the future, the continuous innovation and integration of ZKPs are set to offer more scalable, efficient, and privacy-centric blockchain systems. This will not only enhance the current capabilities of blockchain technology but also pave the way for new applications that could transform how we interact with digital and financial systems on a global scale.