MINIMIZING TRUST IN DECENTRALIZED SYSTEMS
Modern distributed systems typically optimize for ease of deployment and performance. However, this comes at the cost of trusting a single entity to control all aspects of the system. While this has allowed for the proliferation of computational power in modern life, the shortcomings of such a compromise are becoming increasingly apparent. Having a single administrative point of failure leaves these systems vulnerable to data breaches or undesired actions being taken by the administrator. In the last decade, Bitcoin demonstrated the viability of a system where no single entity has unilateral control. While the lastdecade has proven the promise of decentralized systems, there are still many axes where such systems remain woefully centralized. Much of the work done to combat centralizing forces is specific to a particular system or implementation. This thesis finds general purpose solutions to remove points of centralization from large classes of decentralized systems irrespective of their underlying architecture. First, it introduces a novel method to measure some of the underlying causes of centralization in proof of work cryptocurrencies. Next, it removes the ability for any replica to unilaterally divulge sensitive information through a mechanism that efficiently handles secret shared state in a permissioned blockchain. Then, this thesis presents a new transaction fee mechanism that inhibits the ability for a replica to have undue influence over the transaction order. Finally, this thesis illustrates how to apply some of these principles in a more traditionally centralized setting by reducing the amount of trust placed in IoT hubs in IoT deployments.