Byzantine Clients Rendered Harmless
Byzantine quorum systems have been proposed that work properly even when up to f replicas fail arbitrarily.However, these systems are not so successful when confronted with Byzantine faulty clients. This paper presents novelprotocols that provide atomic semantics despite Byzantine clients. Our protocols are the first to handle all problemscaused by Byzantine clients. They prevent Byzantine clients from interfering with good clients: bad clients cannotprevent good clients from completing reads and writes, and they cannot cause good clients to see inconsistencies. Inaddition we also prevent bad clients that have been removed from operation from leaving behind more than a boundednumber of writes that could be done on their behalf by a colluder.Our protocols are designed to work in an asynchronous system like the Internet and they are highly efficient. Werequire 3f +1 replicas, and either two or three phases to do writes; reads normally complete in one phase and requireno more than two phases, no matter what the bad clients are doing.We also present strong correctness conditions for systems with Byzantine clients that limit what can be done onbehalf of bad clients once they leave the system. Furthermore we prove that our protocols are both safe (they meetthose conditions) and live.