Replicated services are inherently vulnerable to failures and security breaches. In a long-running system, it is, therefore, indispensable to maintain a reconfiguration mechanism that would replace faulty replicas with correct ones. An important challenge is to enable reconfiguration without affecting the availability and consistency of the replicated data: the clients should be able to get correct service even when the set of service replicas is being updated. In this paper, we address the problem of reconfiguration in the presence of Byzantine failures: faulty replicas or clients may arbitrarily deviate from their expected behavior. We describe a generic technique for building asynchronous and Byzantine fault-tolerant reconfigurable objects: clients can manipulate the object data and issue reconfiguration calls without reaching consensus on the current configuration. With the help of forward-secure digital signatures, our solution makes sure that superseded and possibly compromised configurations are harmless, that slow clients cannot be fooled into reading stale data, and that Byzantine clients cannot cause a denial of service by flooding the system with reconfiguration requests. Our approach is modular and based on dynamic Byzantine lattice agreement abstraction, and we discuss how to extend it to enable Byzantine fault-tolerant implementations of a large class of reconfigurable replicated services.
翻译:因此,在一个长期的系统中,必须维持一个重组机制,以正确的方式取代错误的复制品。一个重要的挑战是,在不影响复制数据的提供和一致性的情况下,能够进行重组:即使成套服务复制件正在更新,客户也应当能够获得正确的服务:在本文件中,我们处理在拜占庭失败的情况下重组的问题:错误的复制品或客户可能任意偏离其预期行为。我们描述了一种用于建设不同步和拜占庭不耐错的可重新配置对象的通用技术:客户可以操纵天体数据并在不就当前配置达成共识的情况下发布重新配置呼吁。在远方安全的数字签名的帮助下,我们的解决方案可以确保替换的和可能受损的配置无害,不能将缓慢的客户骗到阅读标准数据,而By占庭客户不能通过重组请求而导致拒绝服务。我们的方法是模块化的,以动态的Byzantine lattice协议为根据,并基于动态的易碎裂变的可变的模型抽象图,我们讨论如何扩展一个可变化的系统,从而能够复制的版本。