Traditional techniques for handling Byzantine failures are expensive: digital signatures are too costly, while using $3f{+}1$ replicas is uneconomical ($f$ denotes the maximum number of Byzantine processes). We seek algorithms that reduce the number of replicas to $2f{+}1$ and minimize the number of signatures. While the first goal can be achieved in the message-and-memory model, accomplishing the second goal simultaneously is challenging. We first address this challenge for the problem of broadcasting messages reliably. We consider two variants of this problem, Consistent Broadcast and Reliable Broadcast, typically considered very close. Perhaps surprisingly, we establish a separation between them in terms of signatures required. In particular, we show that Consistent Broadcast requires at least 1 signature in some execution, while Reliable Broadcast requires $O(n)$ signatures in some execution. We present matching upper bounds for both primitives within constant factors. We then turn to the problem of consensus and argue that this separation matters for solving consensus with Byzantine failures: we present a practical consensus algorithm that uses Consistent Broadcast as its main communication primitive. This algorithm works for $n=2f{+}1$ and avoids signatures in the common-case -- properties that have not been simultaneously achieved previously. Overall, our work approaches Byzantine computing in a frugal manner and motivates the use of Consistent Broadcast -- rather than Reliable Broadcast -- as a key primitive for reaching agreement.
翻译:处理Byzantine失败的传统技术成本高昂:数字签名费用太高,而使用3f ⁇ 1美元复制品的费用太高,而使用3f ⁇ 1美元复制品的费用则不经济(美元表示Byzantine进程的最大数目)。我们寻求将复制数量减少到2f ⁇ 1美元并尽量减少签名数目的算法。虽然第一个目标可以在信息和模拟模式中实现,但同时实现第二个目标具有挑战性。我们首先应对广播信息可靠问题的挑战。我们认为这个问题的两个变种,即一致广播和可靠广播,通常被认为是非常接近的。也许令人惊讶的是,我们在它们之间建立起了必要的签名上的分离。我们显示,一致广播至少需要1个签名,而可靠广播则需要1个签名。我们在一些执行中为两种原始的原始产品设定了匹配的上限。我们然后转向共识问题,并争论说,这种分离对于解决Byzantine失败的问题:我们提出了一个实际的协商一致算法,使用一致广播作为其主要通信的原始特征。这个运算法工作是“$=2+1”的同步方法,而不是“我们通过一个共同的加密方法,而避免了一个共同的加密的加密方法。