Brief Announcement: Classifying Trusted Hardware via Unidirectional Communication

It is well known that Byzantine fault tolerant (BFT) consensus cannot be solved in the classic asynchronous message passing model when one-third or more of the processes may be faulty. Since many modern applications require higher fault tolerance, this bound has been circumvented by introducing non-equivocation mechanisms that prevent Byzantine processes from sending conflicting messages to other processes. The use of trusted hardware is a way to implement non-equivocation. Several different trusted hardware modules have been considered in the literature. In this paper, we study whether all trusted hardware modules are equivalent in the power that they provide. We show that while they do all prevent equivocation, we can partition trusted hardware modules into two different power classes; those that employ shared memory primitives, and those that do not. We separate these classes using a new notion we call unidirectionality, which describes a useful guarantee on the ability of processes to prevent network partitions. We show that shared-memory based hardware primitives provide unidirectionality, while others do not.

[1]  Jacob R. Lorch,et al.  TrInc: Small Trusted Hardware for Large Distributed Systems , 2009, NSDI.

[2]  Ashish Choudhury,et al.  Brief Announcement: Asynchronous Secure Distributed Computing with Transferrable Non-equivocation Revisited , 2018, PODC.

[3]  Marcos K. Aguilera,et al.  Microsecond Consensus for Microsecond Applications , 2020, OSDI.

[4]  Marcos K. Aguilera,et al.  The Impact of RDMA on Agreement , 2019, PODC.

[5]  Rachid Guerraoui,et al.  Introduction to reliable distributed programming , 2006 .

[6]  KubiatowiczJohn,et al.  Attested append-only memory , 2007 .

[7]  Srinivas Devadas,et al.  Intel SGX Explained , 2016, IACR Cryptol. ePrint Arch..

[8]  Kartik Nayak,et al.  Classifying Trusted Hardware via Unidirectional Communication , 2021, ArXiv.

[9]  Nancy A. Lynch,et al.  Consensus in the presence of partial synchrony , 1988, JACM.

[10]  Miguel Correia,et al.  Sharing Memory between Byzantine Processes Using Policy-Enforced Tuple Spaces , 2009, IEEE Transactions on Parallel and Distributed Systems.

[11]  Marcos K. Aguilera,et al.  Passing Messages while Sharing Memory , 2018, PODC.

[12]  Miguel Correia,et al.  Asynchronous Byzantine consensus with 2f+1 processes , 2010, SAC '10.

[13]  Siddhartha Sen,et al.  On the price of equivocation in byzantine agreement , 2012, PODC '12.

[14]  Michael K. Reiter,et al.  Objects shared by Byzantine processes , 2000, Distributed Computing.

[15]  Scott Shenker,et al.  Attested append-only memory: making adversaries stick to their word , 2007, SOSP.

[16]  Danny Dolev,et al.  Authenticated Algorithms for Byzantine Agreement , 1983, SIAM J. Comput..

[17]  Michel Raynal,et al.  A necessary condition for Byzantine k-set agreement , 2016, Inf. Process. Lett..

[18]  Søren Debois,et al.  On the Subject of Non-Equivocation: Defining Non-Equivocation in Synchronous Agreement Systems , 2020, PODC.

[19]  Aniket Kate,et al.  On the (limited) power of non-equivocation , 2012, PODC '12.