  Byzantine fault-tolerant agreement (BFT) in a partially synchronous system
usually requires 3f + 1 nodes to tolerate f faulty replicas. Due to their high
throughput and finality property BFT algorithms build the core of recent
permissioned blockchains. As a complex and resource-demanding infrastructure,
multiple cloud providers have started offering Blockchain-as-a-Service. This
eases the deployment of permissioned blockchains but places the cloud provider
in a central controlling position, thereby questioning blockchains' fault
tolerance and decentralization properties and their underlying BFT algorithm.
This paper presents SplitBFT, a new way to utilize trusted execution technology
(TEEs), such as Intel SGX, to harden the safety and confidentiality guarantees
of BFT systems thereby strengthening the trust in could-based deployments of
permissioned blockchains. Deviating from standard assumptions, SplitBFT
acknowledges that code protected by trusted execution may fail. We address this
by splitting and isolating the core logic of BFT protocols into multiple
compartments resulting in a more resilient architecture. We apply SplitBFT to
the traditional practical byzantine fault tolerance algorithm (PBFT) and
evaluate it using SGX. Our results show that SplitBFT adds only a reasonable
overhead compared to the non-compartmentalized variant.
