Blockchains are among the most powerful technologies to realize decentralized information systems. In order to safely enjoy all guarantees provided by a blockchain, one should maintain a full node, therefore maintaining an updated local copy of the ledger. This allows one to locally verify transactions, states of smart contracts, and to compute any information over them. Unfortunately, for obvious practical reasons, a very large part of blockchain-based information systems consists of users relying on clients that access data stored in blockchains only through servers, without verifying what is received. In notable use cases, the user has application-specific queries that can be answered only by very few servers, sometimes all belonging to the same organization. This clearly re-introduces a single point of failure. In this work we present an architecture allowing superlight clients (i.e., clients that do not want to download the involved transactions) to outsource the computation of a query to a (possibly untrusted) server, receiving a trustworthy answer. Our architecture relies on the power of SNARKs and makes them lighter to compute by using data obtained from full nodes and blockchain explorers, possibly leveraging the existence of smart contracts. The viability of our architecture is confirmed by an experimental evaluation on concrete scenarios. Our work paves the road towards blockchain-based information systems that remain decentralized and reliable even when users rely on common superlight clients (e.g., smartphones).
翻译:区块链是实现去中心化信息系统的最强大技术之一。为安全享有区块链提供的全部保障,用户需运行全节点以维护账本的本地更新副本,从而能够本地验证交易、智能合约状态并计算相关信息。然而,由于实际限制,当前绝大多数基于区块链的信息系统用户依赖客户端仅通过服务器访问链上数据,且不验证接收内容的真实性。在典型应用场景中,用户的应用特定查询可能仅由极少数服务器响应,有时这些服务器甚至属于同一组织,这无疑重新引入了单点故障风险。本文提出一种架构,允许超轻客户端(即不愿下载相关交易的客户端)将查询计算外包给(可能不可信的)服务器,同时获得可信答案。该架构依托SNARK技术,并通过利用从全节点和区块链浏览器获取的数据(可结合智能合约功能)显著降低其计算开销。在具体场景下的实验评估证实了该架构的可行性。本研究为构建去中心化且可靠的区块链信息系统开辟了新路径,即使当用户依赖常见超轻客户端(如智能手机)时仍能保持系统可靠性。