A new node joining a blockchain network first synchronizes with the network to verify ledger state by downloading the entire ledger history. We present Aurora, a probabilistic algorithm that \textit{identifies honest nodes} for transient or persistent communication in the presence of malicious nodes in a blockchain network, or ceases operation if it is unable to do so. The algorithm allows a node joining the network to make an informed decision about its next synchronization step or to verify that a transaction is contained in a valid ledger block without downloading the entire ledger or even the header chain. The algorithm constructs a Directed Acyclic Graph on the network topology to select a subset of nodes including a predefined number of honest nodes with a given probability. It is evaluated on a Bitcoin-like network topology using an open-source blockchain simulator. We investigate algorithm performance and analyze its communication complexity. Our results show that the algorithm facilitates trustless interactions of resource-constrained nodes with a blockchain network containing malicious nodes to enable a leaner initial blockchain download or an efficient and trustless transaction inclusion verification. Moreover, the algorithm can be implemented without any changes to the existing consensus protocol.
翻译:加入一个链链网络的新节点首先与网络同步, 以下载整个分类账历史来验证分类账状态。 我们向 Aurora 展示一个概率算法, 用于在块链网络中出现恶意节点时进行短暂或持久的通信, 或者在无法这样做时停止运行。 该算法允许加入网络的节点对其下一个同步步骤做出知情决定, 或者核查交易是否包含在有效的分类账块中, 而不下载整个分类账甚至头链 。 算法在网络表层中构造一个直接的循环图, 以选择一组节点, 包括一个预定义的诚实节点数量, 且有一定的概率。 它在类似 Bitcoin 的网络表层中被评估, 使用一个开源链路段模拟器。 我们调查算法的性能并分析其通信复杂性。 我们的结果表明, 算法可以促进资源受限制的节点与含有恶意节点的块网络的不可信互动。 算法可以在网络中构建一个更窄的初始的断点下载或无法信任的交易包容协议。 此外, 算可以执行任何现有的共识协议。