Threshold guards are a basic primitive of many fault-tolerant algorithms that solve classical problems of distributed computing, such as reliable broadcast, two-phase commit, and consensus. Moreover, threshold guards can be found in recent blockchain algorithms such as Tendermint consensus. In this article, we give an overview of the techniques implemented in Byzantine Model Checker (ByMC). ByMC implements several techniques for automatic verification of threshold-guarded distributed algorithms. These algorithms have the following features: (1) up to $t$ of processes may crash or behave Byzantine; (2) the correct processes count messages and make progress when they receive sufficiently many messages, e.g., at least $t+1$; (3) the number $n$ of processes in the system is a parameter, as well as $t$; (4) and the parameters are restricted by a resilience condition, e.g., $n > 3t$. Traditionally, these algorithms were implemented in distributed systems with up to ten participating processes. Nowadays, they are implemented in distributed systems that involve hundreds or thousands of processes. To make sure that these algorithms are still correct for that scale, it is imperative to verify them for all possible values of the parameters.
翻译:阈值保镖是解决典型的分布式计算问题(如可靠的广播、两阶段承诺和共识)的许多容错性算法的基本原始。此外,临界值保镖可以在近期的链式算法(如Tendermint共识)中找到。在本篇文章中,我们概述了拜占庭模型检查员(ByMC)实施的技术。ByMC采用了若干技术自动核查临界值保值分布式算法。这些算法具有以下特点:(1) 最多达美元的程序可能会崩溃或表现拜占庭;(2) 正确的程序计数信息,当他们收到足够多的信息时取得进展,例如至少为$+1美元;(3) 系统中的流程数是参数,还有$1美元;(4) 参数受到弹性条件的限制,例如,$n > 3t$。这些算法在分布式系统中实施,有多达10个参与过程。现在,这些算法是在分布式系统中执行的,涉及数百或数千个过程。确保这些算法的参数仍然正确,以便能核实尺度的所有参数都是必要的。