Classic BFT consensus protocols guarantee safety and liveness for all clients if fewer than one-third of replicas are faulty. However, in applications such as high-value payments, some clients may want to prioritize safety over liveness. Flexible consensus allows each client to opt for a higher safety resilience, albeit at the expense of reduced liveness resilience. We present the first construction that allows optimal safety--liveness tradeoff for every client simultaneously. This construction is modular and is realized as an add-on applied on top of an existing consensus protocol. The add-on consists of an additional round of voting and permanent locking done by the replicas, to sidestep a sub-optimal quorum-intersection-based constraint present in previous solutions. We adapt our construction to the existing Ethereum protocol to derive optimal flexible confirmation rules that clients can adopt unilaterally without requiring system-wide changes. This is possible because existing Ethereum protocol features can double as the extra voting and locking. We demonstrate an implementation using Ethereum's consensus API.
翻译:经典拜占庭容错共识协议保证,当少于三分之一的副本发生故障时,对所有客户端的安全性和活性。然而,在高价值支付等应用中,部分客户端可能希望优先考虑安全性而非活性。灵活共识允许每个客户端选择更高的安全弹性,但需以降低活性弹性为代价。我们提出了首个允许每个客户端同时实现最优安全性-活性权衡的构造。该构造具有模块化特性,可作为附加层应用于现有共识协议之上。该附加层通过副本执行的额外一轮投票和永久锁定,规避了先前方案中基于次优法定数交集的约束。我们将该构造适配至现有以太坊协议,推导出客户端可单方面采用且无需系统范围变更的最优灵活确认规则。由于现有以太坊协议的自身功能可同时充当额外投票与锁定机制,这一实现成为可能。我们通过以太坊的共识API展示了具体实现方案。