Separating agreement from execution for Byzantine fault tolerant services

We describe a new architecture for Byzantine fault tolerant state machine replication that separates agreement - ordering requests - from execution - processing requests. This separation yields two fundamental and practically significant advantages over previous architectures. First, it reduces replication costs because the new architecture can tolerate faults in up to half of the state machine replicas that execute requests. Previous systems can tolerate faults in at most a third of the combined agreement/state machine replicas. Second, separating agreement from execution allows a general privacy firewall architecture to protect confidentiality through replication. In contrast, replication in previous systems hurts confidentiality because exploiting the weakest replica can be sufficient to compromise the system. We have constructed a prototype and evaluated it running both microbenchmarks and an NFS server. Overall, we find that the architecture adds modest latencies to unreplicated systems and that its performance is competitive with existing Byzantine fault tolerant systems.

In  Proceedings of the nineteenth ACM symposium on Operating systems principles

Publisher  ACM Press


> Publications > Separating agreement from execution for Byzantine fault tolerant services