作者:
(1) 罗中堂,普渡大学([email protected]);
(2) Rohan Murukutla,Supra ([email protected]);
(3) Aniket Kate,普渡大学/上文 ([email protected])。
摘要— 虽然许多研究都关注保护区块链的不同方法,但链上的信息需要由最终用户访问才能发挥作用。本立场文件调查了最终用户访问区块链的不同方式。我们观察到,在运行完整节点和充分利用受信任的第三方服务这两个极端之间,出现了许多有关轻节点的解决方案。我们根据网络通信的三个基本属性分析这些解决方案:完整性、可用性和隐私性。我们得出结论,目前,在保持这三个属性的同时访问区块链的最佳方式仍然是运行完整节点。我们认为,在考虑这三个期望的同时构建未来的区块链可访问性服务至关重要。
区块链是一组节点,它们试图维护一个可公开验证的交易账本,以防止篡改。自 2009 年首次提出比特币 [41] 以来,区块链作为金融工具已广受欢迎。比特币和以太坊 [20] 等最著名的区块链的成功很大程度上可以归因于它们的去中心化特性以及它们使用高级加密原语处理复杂交易的能力。区块链目前市场规模庞大,有潜力成为 21 世纪金融和电子商务领域的领先创新。
现有的许多区块链基础设施研究和创新都侧重于让参与节点以安全、高效的方式维护公共账本(称为第 1 层协议)。然而,我们注意到,从维护良好的账本中获取信息也是一个不小的问题。如果区块链要在日常生活中发挥更大的作用,那么确保每个用户都可以访问区块链至关重要——从定义上讲,公共账本只有在人们可以与之交互时才有用。
鉴于最近公众对区块链的兴趣日益增长,每月与区块链互动的用户越来越多,以太坊等热门区块链每天的交易量高达 875,000 笔 [20]。即使是不参与盈利行为(如挖矿)的普通区块链用户,试图从大量交易中提取有用信息也需要强大的硬件,而且大多数区块链中的激励机制似乎无法解决这个问题。
在大多数区块链协议中,例如比特币和以太坊,参与节点(工作量证明系统中的矿工和权益证明系统中的验证者)通过在向账本提交新区块时赚取少量费用来激励他们维护账本。虽然这些区块链协议中的参与节点有动力收集交易并广播原始区块以确保他们的利润,但他们没有动力发布有关他们维护的账本的精炼信息。考虑以下两个示例:(1)用户想知道他们的比特币钱包中有多少枚硬币。(2)用户想知道他们想要执行的智能合约的当前状态。
与这些例子类似,用户想要知道的大多数信息与矿工和验证者发布的原始区块没有直接关系。用户可以将资产完全委托给第三方交易所,并从交易所获取信息,但这种方法风险很大,最近的 FTX 崩盘就是明证 [31]。因此,区块链用户需要设计一种方法来从区块中提取此类信息,要么通过他们拥有的一些计算能力,要么依靠第三方服务提供商。
在本文中,我们比较了用户当前在实践中采用的两种从区块链获取精炼信息的方法。一种方法是在本地运行一个完整节点。这种方法通常能够在不依赖外部的情况下从区块链中提取大量信息。但在某些情况下,会保留额外的索引以确保更快的查询,例如以太坊存档节点和 Solana RPC 节点。另一种方法是依赖第三方服务提供商。我们注意到,随着运行完整节点的成本不断增长,尤其是在以太坊中,许多用户正在转向第三方服务,但这本身也存在安全风险。我们观察到,运行完整节点并充分利用受信任的第三方服务代表了区块链可访问性的两个极端:一个是依赖程度最低、硬件要求最高,另一个是依赖程度最高、硬件要求最低。
我们还注意到,当区块链上所需的数据是特定且有限的,例如当用户只关心他们拥有的一个地址时,特定的钱包软件可供用户使用。虽然一些钱包软件直接查询外部节点以获取数据,但其他钱包软件可能会下载部分区块链并直接分析用户关心的信息。我们将这些软件归类为特定的轻节点。同时,我们概述了实现通用轻节点的最新趋势,该节点可以为用户提供任何信息
用户,而不仅仅是一个地址 [12],例如以太坊 [24] 提出的地址。当前的研究还包括所谓的超轻节点,例如 Flyclient [10],与仅依赖完整节点的传统轻节点相比,它们更接近于依赖提供额外验证上下文的第三方服务(在此上下文中也称为证明者)。图 1 显示了访问区块链的不同方法的列表。
我们认为,在访问区块链的众多方式中,检查任何 Web 服务的基本原则仍然很重要:完整性、可用性和隐私。区块链本身是一种去中心化技术,但过度依赖少数第三方违背了这一前提。如果没有验证数据正确性的方法,如果上述第三方提供的数据不正确,完整性可能会受到损害。如果过度依赖选定的第三方提供可访问性,如果他们无法或不愿意提供服务,可用性可能会受到影响。在询问任何第三方时,隐私也是一个需要解决的问题。
我们研究了市场上现有的协议,发现其中许多协议可能至少在其中一个方面存在缺陷。目前,在保持完整性、可用性和隐私性的同时访问区块链的最佳方式仍然是在本地运行完整节点。我们认为,在设计任何与区块链交互的协议时,注意这三个方面很重要,以确保功能性。