Mustafa Al-Bassam

Department of Computer Science

University College London [email protected]

Abstract

我们提出了 LazyLedger,这是一种分布式账本设计,是一种优化过的区块链:仅用于排序和保证交易数据的可用性。执行和验证交易的责任转移给了那些对与他们使用的区块链应用程序相关的特定交易感兴趣的客户。

由于分布式账本共识系统的核心功能是对交易进行排序并确保其可用性,因此共识参与者不一定需要关心这些交易的内容。这将块验证的问题减少到数据可用性验证,这可以通过亚线性复杂度的概率实现,而无需下载整个块。因为交易有效性规则可以与共识规则解耦,因此,达成共识所需的资源量可以最小化。我们还实施和评估了几个示例 LazyLedger 应用程序,并验证了当使用相同链的其他应用程序的工作量增加时,特定应用程序的客户端的工作量不会显着增加。

1. 介绍

到目前为止,基于区块链的分布式账本平台如比特币[1]和以太坊[2]都采用了类似的共识设计范式,其中区块生产者提议的区块的有效性取决于:

(i)是否轮到区块生产者 提议一个区块

(ii)根据一些状态机判断区块中的交易是否有效。

传统的共识协议,例如 Practical Byzantine Fault Tolerance [3] 也采用了类似的方法,其中共识节点(副本)根据状态机处理事务。

困扰去中心化区块链 [4] 的可扩展性问题可归因于这样一个现状:即为了运行验证节点,节点必须下载、处理和验证链中包含的每笔交易。 结果,出现了各种可扩展性的尝试,包括通过分片进行链上扩展 [5, 6],其目的是将区块链的状态拆分为多个分片,以便不同的共识组可以并行处理事务,以及关闭通过状态通道进行链扩展 [7, 8],它采用将交易移至链下并使用区块链作为结算层。

但是,探索可能适用于不同类型应用程序的替代区块链设计范例也是值得的,其中需要验证区块链以确定正确的共识前进的节点不需要验证块的内容。相反,在区块链上存储信息的应用程序的最终用户可以关注此类内容(区块内容)的验证。这将消除节点需要验证其他所有人的交易的瓶颈,并将验证区块链的问题减少为简单地验证块的内容是否可用(数据可用性问题 [9]),以便最终用户可以有意义地访问在其应用程序上应用状态转换所需的信息。在这样的范例中,区块链仅用于调用和提供可用消息,而不是执行和验证交易的状态机转换。由于应用程序的消息是由最终用户在链下执行的,这些应用程序的逻辑不需要在链上定义,因此应用程序逻辑可以用任何编程语言或环境编写,不需要更改逻辑进行链的硬分叉。

将区块链验证缩小到数据可用性问题的结果是:使用概率数据可用性验证技术 [9],因为共识参与者不需要处理消息,无需下载整个消息集即可完全达成新消息的共识。

从哲学上讲,LazyLedger 可以被认为是一个存在于同一条链上的“虚拟”侧链 [10] 系统,因为与每个应用程序相关的交易只需要由这些应用程序的用户处理,类似于以下事实:只有特定侧链的用户需要处理该侧链的交易。 由于 LazyLedger 中的所有应用程序共享同一条链,因此它们所有交易的数据可用性由同一个共识组平等且统一地保证,这与传统侧链不同,其中每个侧链可能有不同的(较小的)共识组。

在本文中,我们做出以下贡献: