[Paper Review] LazyLedger: A Distributed Data Availability Ledger With Client-Side Smart Contracts
LazyLedger proposes a blockchain design that decouples consensus from transaction validation by using the blockchain solely for ordering and ensuring data availability. It enables client-side execution of application logic through probabilistic data availability verification, reducing node resource usage and allowing multiple applications to coexist on the same chain with minimal cross-application overhead.
We propose LazyLedger, a design for distributed ledgers where the blockchain is optimised for solely ordering and guaranteeing the availability of transaction data. Responsibility for executing and validating transactions is shifted to only the clients that have an interest in specific transactions relating to blockchain applications that they use. As the core function of the consensus system of a distributed ledger is to order transactions and ensure their availability, consensus participants do not necessarily need to be concerned with the contents of those transactions. This reduces the problem of block verification to data availability verification, which can be achieved probabilistically with sub-linear complexity, without downloading the whole block. The amount of resources required to reach consensus can thus be minimised, as transaction validity rules can be decoupled from consensus rules. We also implement and evaluate several example LazyLedger applications, and validate that the workload of clients of specific applications does not significantly increase when the workload of other applications that use the same chain increase.
Motivation & Objective
- To address blockchain scalability by decoupling consensus from transaction validation, reducing the burden on full nodes.
- To enable end-users to validate and execute application-specific logic independently, without requiring consensus nodes to process all transactions.
- To design a blockchain where block verification reduces to data availability verification, allowing sub-linear complexity via probabilistic sampling.
- To support multiple, independent applications on a single chain with minimal performance impact between applications.
- To explore a new blockchain paradigm where application logic is not enforced on-chain, avoiding hard forks for logic changes.
Proposed method
- Design a blockchain where consensus nodes only verify data availability using two block validity rules: a full download rule and a probabilistic sampling rule.
- Use a namespaced Merkle tree to organize transactions by application, enabling clients to efficiently query and validate only relevant data.
- Implement client-side execution of application logic, where only interested clients process and validate transactions for their specific applications.
- Apply probabilistic data availability verification to allow consensus nodes to verify block availability without downloading the entire block.
- Build a prototype with example applications (currency, name registrar, petitions) to evaluate performance and scalability.
- Measure client-side workload and data download overhead across different application workloads to validate isolation properties.
Experimental results
Research questions
- RQ1Can consensus be decoupled from transaction validation while maintaining security and availability guarantees?
- RQ2To what extent can data availability verification be achieved with sub-linear complexity using probabilistic sampling?
- RQ3How does the workload of clients for one application scale when other applications on the same chain experience high load?
- RQ4Can application logic be fully executed off-chain by clients without requiring on-chain consensus or hard forks?
- RQ5What is the performance overhead of client-side validation compared to traditional full-node validation in a shared blockchain environment?
Key findings
- LazyLedger reduces block verification to data availability verification, enabling sub-linear complexity through probabilistic sampling without downloading entire blocks.
- Clients of one application experience negligible performance degradation even when other applications on the same chain experience high transaction volumes.
- The size of application proofs and state storage remains small and independent of unrelated application activity, demonstrating workload isolation.
- Probabilistic data availability verification with 15 samples achieves strong availability guarantees while significantly reducing client download requirements.
- Application logic can be upgraded independently by clients without requiring consensus-level changes or hard forks, enabling application state sovereignty.
- The prototype demonstrates that client-side execution and selective data access are feasible and efficient in practice, with minimal overhead for individual applications.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.