论文标题
Tendermint Light客户
A Tendermint Light Client
论文作者
论文摘要
在Tendermint区块链中,验证机制和基本共识算法需要一个动态故障模型,这意味着主动验证器(签名块的节点)可能会随着时间而变化,并且假定这些验证器的法定人数仅在有限的时间内是正确的(称为信任期)。验证器集的更改在区块链应用程序的控制之下,并在每个区块中投入使用。为了检查在某个高度H处的区块链应用程序的状态是什么,需要知道该高度的验证器集,以便可以验证相应的数字签名和哈希。确定高度验证器集h的幼稚方法需要一个:(i)通过检查数字签名和哈希验证块之前下载所有块,(ii)验证块,并且(iii)执行相应的交易,以便复制验证器集中的更改。这可能会非常缓慢,计算和数据密集型。 在本文中,我们对Tendermint施加的动态故障模型进行了形式,并描述了一个光线客户协议,该协议允许检查区块链应用的状态,在现实设置中,该协议可显着减少所需下载的数据量以及所需的计算昂贵的签名验证验证操作的数量。除了数学证明外,我们还在TLA+中正式使用了Light Client协议,并使用Apalache模型检查器检查了安全性和LIVISE。
In Tendermint blockchains, the proof-of-stake mechanism and the underlying consensus algorithm entail a dynamic fault model that implies that the active validators (nodes that sign blocks) may change over time, and a quorum of these validators is assumed to be correct only for a limited period of time (called trusting period). The changes of the validator set are under control of the blockchain application, and are committed in every block. In order to check what is the state of the blockchain application at some height h, one needs to know the validator set at that height so that one can verify the corresponding digital signatures and hashes. A naive way of determining the validator set for height h requires one to: (i) download all blocks before h, (ii) verify blocks by checking digital signatures and hashes and (iii) execute the corresponding transactions so the changes in the validator sets are reproduced. This can potentially be very slow and computationally and data intensive. In this paper we formalize the dynamic fault model imposed by Tendermint, and describe a light client protocol that allows to check the state of the blockchain application that, in realistic settings, reduces significantly the amount of data needed to be downloaded, and the number of required computationally expensive signature verification operations. In addition to mathematical proofs, we have formalized the light client protocol in TLA+, and checked safety and liveness with the APALACHE model checker.