This paper presents the Byzantine fault-tolerant agreement protocols Flutter and Blink. Both algorithms are deterministic, leaderless and signature-free; both assume partial synchrony and at least $(5f + 1)$ servers, where $f$ bounds the number of faults. The main contribution, Flutter, is a Total-Order Broadcast implementation that achieves faster broadcast-to-delivery latency by removing the extra message delay associated with serializing messages through a leader. In the "good case" where all processes are correct, the network is synchronous, and local clocks are well-synchronized, Flutter delivers client requests in $(2\Delta + \epsilon)$ time units, $\Delta$ being the message delay and $\epsilon$ an arbitrarily small constant. Under the same conditions, state-of-the-art protocols require $3\Delta$ time units. Flutter's good-case latency is quasi-optimal, meaning it cannot be improved upon by any finite amount. Under the hood, Flutter builds upon Blink, a (Representative) Binary Consensus implementation whose fast path enables decisions in $\Delta$ time units when all correct servers propose the same value. Blink generalizes the existing Binary Consensus solution Bosco from the $(7f + 1)$ to the $(5f + 1)$ setting.
翻译:本文提出了两种拜占庭容错共识协议:Flutter 和 Blink。这两种算法都是确定性的、无领导且无需签名的;它们均假设部分同步网络环境,并需要至少 $(5f + 1)$ 个服务器,其中 $f$ 为故障数上限。主要贡献 Flutter 是一个全序广播实现,它通过消除经由领导者序列化消息所带来的额外消息延迟,实现了更快的广播到交付延迟。在“良好情况”下——即所有进程均正确、网络同步且本地时钟良好同步时——Flutter 在 $(2\Delta + \epsilon)$ 个时间单位内交付客户端请求,其中 $\Delta$ 为消息延迟,$\epsilon$ 为任意小的常数。在相同条件下,现有最先进的协议需要 $3\Delta$ 个时间单位。Flutter 的良好情况延迟是准最优的,这意味着任何有限的改进都无法超越它。在底层,Flutter 建立在 Blink 之上,后者是一个(代表性)二元共识实现,其快速路径能在所有正确服务器提议相同值时,在 $\Delta$ 个时间单位内做出决策。Blink 将现有的二元共识解决方案 Bosco 从 $(7f + 1)$ 服务器设置推广到了 $(5f + 1)$ 设置。