Back to Blog


How zkSharding Addresses the Blockchain Trilemma

Can a blockchain be scalable while preserving decentralization and security? zkSharding could be an answer.

13 Feb 2024

Crypto adoption continues to grow across various industries. However, at the heart of blockchain development lies a fundamental challenge: scaling. 

As blockchain networks expand and their user bases grow, they encounter substantial barriers to maintaining efficiency, security, and decentralization. This challenge was encapsulated by the blockchain trilemma —a concept coined by Vitalik Buterin. This trilemma represents the trade-offs between three essential attributes that every blockchain aims to achieve: scalability, security, and decentralization. 

Scalability means a blockchain network can handle an increasing number of transactions per second (TPS) without compromising performance. Often, blockchains have to make trade offs with either security or decentralization to facilitate scalability. 

But what if we could build blockchains that can achieve all three—be decentralized, secure, and scalable? zkSharding emerges as one of the potential solutions to the blockchain trilemma. Let’s dive in deeper.

What Is zkSharding?

zkSharding is a method that combines sharding and zero-knowledge proofs to enhance blockchain scalability, security, and decentralization.

Execution sharding, proposed in 2016 as a future solution for Ethereum scalability, enhances blockchain scalability by dividing the network into smaller, independent partitions called shards. Each shard processes transactions independently and in parallel, allowing nodes to store and manage data relevant only to their specific shard. 

zkSharding incorporates zero-knowledge proofs (ZKPs) into the sharding process, adding a layer of security and efficiency. ZKPs allow one party to prove to another that a statement is true without revealing any specific information about the statement itself. In the context of zkSharding, these proofs ensure that transactions and state changes are valid without requiring nodes to process all the data directly. This reduces the amount of data each node needs to handle, further improving scalability and maintaining security. 

Understanding the zkSharding Architecture

The state of zkSharding is divided into a main shard and multiple execution shards. The main shard is responsible for synchronizing and consolidating data from the execution shards. It leverages Ethereum as both its data availability (DA) layer and a verifier for state transition proofs, similar to zkRollups operations.

Execution shards act as "workers," executing user transactions. These shards maintain unified liquidity and data through a cross-shard messaging protocol, preventing fragmentation among them. Each shard is overseen by a committee of validators, who are periodically rotated across the shards. Additionally, updates to a shard's state are validated by the main shard using virtual machine (VM) state transition proofs.

So, How Do We Solve the Blockchain Trilemma with zkSharding?

Most blockchain networks today are forced to prioritize between decentralization, security, and scalability. Bitcoin and Ethereum, for example, focus on decentralization and security but face significant scalability issues, processing only a limited number of transactions per second. 

To address scalability, solutions like Layer 2 protocols (e.g., Bitcoin's Lightning Network and Ethereum's Rollups) move transactions off-chain, increasing throughput but often sacrificing decentralization and raising concerns about central points of failure.  

The solution? A Layer 2 that doesn’t have to make trade offs on decentralization or security. Let’s see how zkSharding introduces horizontal scaling while preserving decentralization and security.


By allowing for the parallel execution of transactions across different shards, zkSharding increases the total throughput of the network. zkSharding horizontally scales systems by adding more nodes and not just increasing existing node capacity.

The network can then handle an increasing demand from high-load applications. Most importantly, zkSharding enables horizontal scaling, which means a network can introduce additional nodes to meet the increase in network usage.


zkSharding uses ZKPs to secure the system. These proofs ensure that validators can operate independently on their respective shards while still being able to verify the validity of other shards in a stateless manner. This approach strengthens the security of the network by providing cryptographic assurances for each shard's execution.

In sharded blockchains, a single compromised shard can jeopardize the entire network's security, known as the "weakest chain" vulnerability. zkSharding employs succinct zero-knowledge validity proofs for each shard's execution. These proofs cryptographically verify transaction validity without requiring direct data processing. By doing so, zkSharding fortifies each shard's security, significantly reducing the network's vulnerability to attacks on individual shards. This enhancement bolsters the resilience of sharded blockchains, making zkSharding a promising solution for improving decentralized system security.


zkSharding distributes the transaction load across multiple shards, ensuring no single entity controls the entire network, promoting fairness and resilience. 

zkSharding also employs an efficient consensus algorithm that facilitates cross-shard communication. This mechanism reduces transaction processing times and ensures that shards can interact without centralizing control. Validators across the network can collaborate and verify transactions, maintaining the decentralized nature of the blockchain.

zkSharding for Ethereum

zkSharding can be used to scale a blockchain horizontally without compromising on decentralization or security.

=nil; Foundation is currently developing =nil;, an Ethereum L2 that leverages zkSharding to introduce horizontal scaling and tackle Ethereum’s scalability challenges. 

Considering Ethereum's current rollup-centric scaling roadmap, L2s have emerged as the best bet for solving scalability. However, many L2s lack security and decentralization. By introducing execution sharding and ZKPs into its design, =nil; positions itself as one of the rare L2s that solves the blockchain trilemma by being strong in all three of its aspects.

Read more about zkSharding and join our Discord to learn more.