Threshold guards are a basic primitive of many fault-tolerant algorithms that solve classical problems in distributed computing, such as reliable broadcast, two-phase commit, and consensus. Moreover, threshold guards can be found in recent blockchain algorithms such as, e.g., Tendermint consensus. In this article, we give an overview of techniques for automated verification of threshold-guarded fault-tolerant distributed algorithms, implemented in the Byzantine Model Checker (ByMC). These threshold-guarded 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 the number $t$ of faults; and (4) 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共识。在本条中,我们概述了在Byzantine 模式检查器(ByMC)中实施的、用于自动核查受负错性差分算法的技术。这些门槛保镖算法具有以下特征:(1) 最多达美元的程序可能崩溃或表现拜占庭;(2) 当他们收到足够多的信息时,正确的程序计数信息并取得进展,例如至少$t+1美元;(3) 系统中的流程数目是一个参数,以及差数美元;(4) 参数受复原力条件的限制,例如$n > 3t美元。 传统上,这些算法是在分布式系统中实施的,有多达10个参与程序。现在,它们仍然在分布式系统中实施,涉及数百或数千个参数; (3) 系统中的流程数目是一个参数是一个参数,以确保这些参数能够被纠正。