Byzantine reliable broadcast is a primitive that allows a set of processes to agree on a message broadcast by a dedicated source process, even when some of them are malicious (Byzantine). It guarantees that no two correct processes deliver different messages, and if a message is delivered by a correct process, every correct process eventually delivers one. The primitive is known not to scale, as it requires $\Omega(n^2)$ message exchanges, where $n$ is the number of system members. The quadratic cost can be explained by the inherent need for every process to relay a message to every other process. In this paper, we explore ways to overcome this limitation, by casting the problem to the probabilistic setting. We propose a solution in which every broadcast message is validated by a small set of witnesses, which allows us to maintain low latency and small communication complexity. In order to tolerate a slow adaptive adversary, we dynamically select witnesses through a novel use of locality-preserving hash functions. Our simulations demonstrate significant scalability gains of our solution with respect to existing protocols.
翻译:拜占庭可靠广播是一种原语,允许一组进程就专用源进程广播的消息达成一致,即使其中部分进程是恶意的(拜占庭式)。它保证没有两个正确进程会传递不同的消息,并且如果一条消息被某个正确进程传递,那么每个正确进程最终都会传递该消息。该原语已知不具备可扩展性,因为它需要$\Omega(n^2)$次消息交换,其中$n$是系统成员数量。这种平方级成本可归因于每个进程固有地需要向其他所有进程转发消息。在本文中,我们通过将问题置于概率设置下,探索克服这一局限的方法。我们提出一种解决方案,其中每条广播消息由一小群见证者验证,从而能够保持低延迟和小通信复杂度。为了容忍缓慢的自适应攻击者,我们通过创新性地使用局部保持哈希函数来动态选择见证者。我们的仿真表明,与现有协议相比,我们的解决方案具有显著的可扩展性优势。