The problem of Byzantine consensus has been key to designing secure distributed systems. However, it is particularly difficult, mainly due to the presence of Byzantine processes that act arbitrarily and the unknown message delays in general networks. Although it is well known that both safety and liveness are at risk as soon as $n/3$ Byzantine processes fail, very few works attempted to characterize precisely the faults that produce safety violations from the faults that produce termination violations. In this paper, we present a new lower bound on the solvability of the consensus problem by distinguishing deceitful faults violating safety and benign faults violating termination from the more general Byzantine faults, in what we call the Byzantine-deceitful-benign fault model. We show that one cannot solve consensus if $n\leq 3t+d+2q$ with $t$ Byzantine processes, $d$ deceitful processes, and $q$ benign processes. In addition, we show that this bound is tight by presenting the Basilic class of consensus protocols that solve consensus when $n > 3t+d+2q$. These protocols differ in the number of processes from which they wait to receive messages before progressing. Each of these protocols is thus better suited for some applications depending on the predominance of benign or deceitful faults. Finally, we study the fault tolerance of the Basilic class of consensus protocols in the context of blockchains that need to solve the weaker problem of eventual consensus. We demonstrate that Basilic solves this problem with only $n > 2t+d+q$, hence demonstrating how it can strengthen blockchain security.
翻译:拜占庭共识问题一直是设计安全分布系统的关键,然而,这尤其困难,主要是因为拜占庭流程任意行事,而且一般网络中的信息延迟不明,尽管众所周知,当拜占庭流程失败时,安全和生活都面临风险,但很少有工作试图准确描述导致违反终止协议违约的缺陷导致安全违约的缺陷。在本文件中,我们通过区分违反安全的欺骗性缺陷和违反更普遍的拜占庭缺陷的良性缺陷,以及破坏终止协议的良性缺陷,这特别困难。尽管我们称之为拜占庭-破坏隐私-恶意错误模式,但众所周知,当拜占庭流程失败时,安全和生活都面临风险。如果用拜占庭流程的美元、欺骗性流程和善意流程的美元来准确描述造成安全违约的缺陷,那么,我们只能通过展示当它们等待3+d+2级协议的错误时,解决共识协议的故障是如何解决的。 因此,我们无法解决这些协议在每类协议中的稳定性问题上,这些协议才能显示我们如何在等待3+正值-正统协议中表现出更好的共识。