The implementation of registers from (potentially) weaker registers is a classical problem in the theory of distributed computing. Since Lamport's pioneering work, this problem has been extensively studied in the context of asynchronous processes with crash failures. In this paper, we investigate this problem in the context of Byzantine process failures, with and without process signatures. In particular, we first show a strong impossibility result, namely, that there is no wait-free linearizable implementation of a 1-writer n-reader register from atomic 1-writer (n-1)-reader registers. In fact, this impossibility result holds even if all the processes except the writer are given atomic 1-writer n-reader registers, and even if we assume that the writer can only crash and at most one reader is subject to Byzantine failures. In light of this impossibility result, we give two register implementations. The first one implements a 1-writer n-reader register from atomic 1-writer 1-reader registers. This implementation is linearizable (under any combination of Byzantine process failures), but it is wait-free only under the assumption that the writer is correct or no reader is Byzantine -- thus matching the impossibility result. The second implementation assumes process signatures; it is wait-free and linearizable under any number and combination of Byzantine process failures.
翻译:从(潜在)较弱的登记册中实施登记是分布式计算理论的一个典型问题。自Lamport的开创性工作以来,这个问题已经在坠机失败的不同步进程中进行了广泛研究。在本文中,我们从拜占庭进程失败的角度,在使用和不使用程序签名的情况下,对该问题进行了调查。特别是,我们首先显示了一个非常不可能的结果,即没有从原子1号作家(n-1)阅读器登记册(n-1)进行一号作家读取器登记册的可等待的可线性化实施。事实上,即使除了作者之外的所有进程都获得了原1号作家读取器登记册,而且即使我们假设作家只能崩溃,而且大多数读者都受到拜占庭进程失败的影响,而我们假设这两个用户只能崩溃,而鉴于这种不可能的结果,我们给出两个注册执行结果。第一个用户是从原子1号作家1号阅读器登记册(n-1号阅读器登记册)进行1号读取读取的读取器登记册。这一执行是可线性可的(在Byzantine进程失败的任何组合中),但这种不可能的结果是等待的,但只有在假设作家的第二个假设之下,即其执行过程是准确的,或者没有版本。