LazyLedger: A Distributed Data Availability Ledger With Client-Side Smart Contracts
This addresses scalability issues for users of distributed ledgers by decoupling transaction validity from consensus, though it is an incremental improvement on existing designs.
The authors tackled the problem of high resource requirements in distributed ledgers by proposing LazyLedger, which optimizes the blockchain for ordering and data availability while shifting transaction execution to clients, resulting in sub-linear complexity for block verification and minimal consensus resource usage.
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.