At PODC 2014, A. Most\'efaoui, H. Moumen, and M. Raynal presented a new and simple randomized signature-free binary consensus algorithm (denoted here MMR) that copes with the net effect of asynchrony Byzantine behaviors. Assuming message scheduling is fair and independent from random numbers MMR is optimal in several respects: it deals with up to t Byzantine processes where t < n/3 and n is the number of processes, O(n\^2) messages and O(1) expected time. The present article presents a non-trivial extension of MMR to an even more fault-prone context, namely, in addition to Byzantine processes, it considers also that the system can experience transient failures. To this end it considers self-stabilization techniques to cope with communication failures and arbitrary transient faults (such faults represent any violation of the assumptions according to which the system was designed to operate). The proposed algorithm is the first loosely-self-stabilizing Byzantine fault-tolerant binary consensus algorithm suited to asynchronous message-passing systems. This is achieved via an instructive transformation of MMR to a self-stabilizing solution that can violate safety requirements with probability Pr= O(1/(2\^M)), where M is a predefined constant that can be set to any positive integer at the cost of 3 M n + log M bits of local memory. In addition to making MMR resilient to transient faults, the obtained self-stabilizing algorithm preserves its properties of optimal resilience and termination, (i.e., t < n/3, and O(1) expected time). Furthermore, it only requires a bounded amount of memory.
翻译:在 POCDC 2014 、 A. Most\'efaoui、 H. Momene 和 M. Raynal 展示了一个新的和简单随机的无签名的双元共识算法(此处注意MMMR),它可以应对无同步Byzantine行为的净效应。 假设信息列表是公平的,独立于随机数字,MMMR在几个方面是最佳的: 它处理的是t < n/3和n是进程数目的t Byzantine 进程, O( n ⁇ 2) 消息和 O(1) 预期时间。 本文章展示了MMMM( MM) 的不连带式自动扩展到更易出错的环境, 也就是说,除了Byzantine( Byzantine) 进程外, 系统还可以经历转折现性失败。 为此, 它认为自我稳定技术可以应对通信故障和任意的转折现错误( 例如, ) MM( ) 将 Byzental 的内存错误添加到 3 的内存的内向内存的内存) 的内存( ) 的内存) 的内存) 的内存的内存) 的内存的内存) 的内存, 的内存的内存的内存的内存的内存流的内存需要一个内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存到一个内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存需要。