andyguzman.eth

Posted on Jan 23, 2023Read on Mirror.xyz

The State of Zero-Knowledge Applications in Ethereum Part 1: Introduction

As I embarked on my journey with the PSE team, learning about zero-knowledge was like drinking from a fire hose. There was a lot of foundational knowledge to learn quickly. There were many projects in the space and new ones cropped up every week. All the while, zero-knowledge continues to experience deep theoretical innovation.

With this series of articles, I intend to share my learnings and help with the task of discovery and categorizing zero-knowledge (ZK) projects and applications through a problem space lens. That means the focus is on what problem the project aims to solve. I do not focus much on how it is implemented. In other words, besides the common umbrella term of “zero-knowledge Applications”, their underlying proving systems, domain specific languages (DSLs), recursion proofs, and circuits might differ greatly.

These articles aim to highlight the strengths and opportunities ahead for the ecosystem, as well as identify underinvested areas. I also hope this promotes product-focused collaboration in the ecosystem, particularly between projects in the same problem-space.

This series will include at least the following topics: an Introduction, Privacy and Identity (zkID), Private Finance (zkDeFi), Private Computing (zkComp), Scaling and Interoperability.

What are zero-knowledge apps?

Zero-knowledge apps are applications that allow users to share information with each other without revealing their identities or the contents of the information being shared. These apps use various cryptographic techniques, in particular zero-knowledge proofs, to ensure that the information remains confidential, even from the people who are running the app. The goal of zero-knowledge apps is to provide users with a way to communicate and share sensitive information securely, privately and succinctly.

Why are people building them on Ethereum?

As societies grow in size, complexity and ambitious goals, so does the need for fair and efficient coordination systems and technologies. Ethereum is the World Computer, a single, globally shared computing platform that exists in the space between a network of 1,000s of computers nodes. It is the settlement layer of the world and a neutral source of truth.

Although Ethereum offers transparency, immutability, and decentralization, it may not always provide the level of privacy required for certain use cases. By combining blockchain with zero-knowledge proofs (ZKP), it is possible to create a system that offers both the immutability of blockchain and the privacy of ZKP's. This combination can provide users with a powerful way to protect their data while still using the benefits of Ethereum.

How does innovation flow to end users?

On a high level, the innovation in this space flows to users in the following way: pure cryptography innovation enables applied cryptography which enables zkdapp development which ultimately serves the end users.

Cryptographic flow to value

Note: this is one lens to analyze the ZK flow; however, in reality, there are other actors like infrastructure providers, hardware acceleration, data providers, etc., who also contribute greatly to this value flow.

Actors and vehicles to deliver value to the ecosystem

Understanding this spectrum and relationship helps to identify organizations and possible partnerships as well as identify main actors in each space.

Similar frameworks like the one above have been proposed. One example of this is PARC Squad with their understand <> innovate <> build <> ship layers. Nevertheless, it is important to highlight the need a for a “productionization” layer that covers the last mile to deliver this innovation to end users.

How to categorize the different kinds of applications?

A way to categorize the zero-knowledge landscape is to initially break it down into Privacy, Scalability, and Interoperability. There are other ways to segment zero-knowledge, however, these categories are derived from the three intrinsic properties of a zero-knowledge proof:

A zero-knowledge proof must satisfy three properties

Taking these three properties as guides, we can observe parallels to the categories:

  • Completeness enables Interoperability: if data exists or a transaction happened on another blockchain, and the proof is verified, there is a higher trust to take this information from one “realm” to another. For example interoperability in Ethereum Layer 2s (L2<>L2 and L1<>L2)

  • Soundness enables succinctness enables Scalability: as the probability of a false statement approaches zero (soundness) we can confidently aggregate multiple proofs into a single one, one way to do it is through recursive proofs. This way, a single proof can be submitted to Ethereum and succinctly verify 1000s of transactions or claims.

  • Zero-knowledge enables Privacy: we’re maintaining privacy if the proof doesn’t reveal any additional personal information besides what the proof claims.

The projects mentioned in the upcoming articles will incorporate one or several of these characteristics. Parts of the industry have been more precise and refer to “succinct proofs” instead of “zero-knowledge proofs” when the zero-knowledge property is not present, however for the purpose of this series, we’ll treat both under the same umbrella term.

What is next?

In the next article we will explore the Privacy and Identity (zkID) space. An explanation of what privacy means in our context, which flows of information are relevant to control and explore example applications in sub-categories like: credential bridges, zkCompliance, zkGovernance, zkSocial Networks, Identity Aggregators… And more!

23/01/23 note: The parallels mentioned above are not “formal” derivations but rather a way to conceptually relate them. In reality, both completeness and soundness need to hold for interoperability and scalability. Scalability comes from recursiveness, specially because of the asymmetric nature of compute time for proof generations vs verification.