Fault-Tolerant Distributed-Ledger Implementation of Digital Social Contracts
A companion paper defined the notion of digital social contracts, presented a design for a social-contracts programming language, and demonstrated its potential utility via example social contracts. The envisioned setup consists of people with genuine identifiers, which are unique and singular cryptographic key pairs, that operate software agents thus identified on their mobile device. The abstract model of digital social contracts consists of a transition system specifying concurrent, non-deterministic asynchronous agents that operate on a shared ledger by performing digital speech acts, which are cryptographically-signed sequentially-indexed digital actions. Here, we address the distributed-ledger implementation of digital social contracts in the presence of faulty agents: we present a design of a fault-tolerant distributed-ledger transition system and show that it implements the abstract shared-ledger model of digital social contracts, and discuss its resilience to faulty agents. The result is a novel ledger architecture that is distributed with a blockchain-per-person (as opposed to centralized with one blockchain for all), partially-ordered (as opposed to totally-ordered), locally-replicated (as opposed to globally-replicated), asynchronous (as opposed to globally-synchronized), peer-to-peer with each agent being both an actor and a validator (as opposed to having dedicated miners, validators, and clients), environmentally-friendly (as opposed to the environmentally-harmful Proof-of-Work), self-sufficient (as opposed to the energy-hogging Proof-of-Work or capital-hogging Proof-of-Stake) and egalitarian (as opposed to the plutocratic Proof-of-Work and Proof-of-Stake).
READ FULL TEXT