Heterogeneous Consensus

Heterogeneous Consensus

In distributed systems, a group of learners achieve consensus when, by observing the output of some acceptors, they all arrive at the same value. Consensus is crucial for ordering transactions in failure-tolerant systems. Traditional consensus algorithms are homogeneous in three ways:

  • all learners are treated equally,
  • all acceptors are treated equally, and
  • all failures are treated equally.

These assumptions, however, are unsuitable for cross-domain applications, including blockchains, where not all acceptors are equally trustworthy, and not all learners have the same assumptions and priorities. We present the first consensus algorithm to be heterogeneous in all three respects. Learners set their own mixed failure tolerances over differently trusted sets of acceptors. We express these assumptions in a novel Learner Graph, and demonstrate sufficient conditions for consensus. We present Heterogeneous Paxos: an extension of Byzantine Paxos. Heterogeneous Paxos achieves consensus for any viable Learner Graph in best-case three message sends, which is optimal. We present a proof-of-concept implementation, and demonstrate how tailoring for heterogeneous scenarios can save resources and latency.

Publications

Heterogeneous trust in reliable broadcast via modal logic and history structures

We develop a novel modal logic and semantics for specifying and proving properties of distributed full-information-transfer protocols (protocols that broadcast state to all participants in a distributed system). We use this to design and prove correctness of novel generalisations of Bracha’s ‘reliable broadcast’ algorithm to a heterogeneous trust setting (where distinct participants may have distinct trust assumptions); and the maths has been mechanically formalised and checked.

Heterogeneous Paxos

The first consensus algorithm with heterogeneous failures, heterogeneous acceptors, and heterogeneous learners. We have a formally verified safety proof in TLAPS, and are working on a liveness proof.

Distributed Protocols and Heterogeneous Trust

We use the Decentralized Label Model to show how distributed algorithms, like Bosco and Nysiad, can be generalized from more complex trust environments.

The robustness of distributed systems is usually phrased in terms of the number of failures of certain types that they can withstand. However, these failure models are too crude to describe the different kinds of trust and expectations of participants in the modern world of complex, integrated systems extending across different owners, networks, and administrative domains. Modern systems often exist in an environment of heterogeneous trust, in which different participants may have different opinions about the trustworthiness of other nodes, and a single participant may consider other nodes to differ in their trustworthiness. We explore how to construct distributed protocols that meet the requirements of all participants, even in heterogeneous trust environments. The key to our approach is using lattice-based information flow to analyse and prove protocol properties. To demonstrate this approach, we show how two earlier distributed algorithms can be generalized to work in the presence of heterogeneous trust: first, Heterogeneous Fast Consensus, an adaptation of the earlier Bosco Fast Consensus protocol; and second, Nysiad, an algorithm for converting crash-tolerant protocols to be Byzantine-tolerant. Through simulations, we show that customizing a protocol to a heterogeneous trust configuration yields performance improvements over the conventional protocol designed for homogeneous trust.

Talks

Multi-Chain Transactions (with Demo)

With Charlotte, we can append one block onto multiple blockchains, solving the atomic commit problem.

With Charlotte, we can append one block onto multiple blockchains, solving the atomic commit problem. In this brief demo, we append a block to two chains, each running a 4-participant byzantine consensus algorithm. This demo uses our Heterogeneous Consensus algorithm.

Multi-Chain Transactions

Heterogeneous Consensus

A work-in-progress talk about our Heterogeneous Consensus algorithm.

The Heterogeneous Consensus project has invented and implemented a Consensus algorithm in which not all participants agree on who may fail, and how. It is the first consensus with:

  • Heterogeneous Failures: mixed Crash and Byzantine failures.
  • Heterogeneous Participants: not all participants are symmetric (notf out of n participants”).
  • Heterogeneous Observers: not everyone agrees on the acceptable failure conditions (although there are definitely limits).

We in some ways resemble the Stellar project, but our algorithm tolerates mixed Byzantine and Crash failures, one message-send lower latency, and a different model of Observers and Participants. This talk is for a blockchain audience, and discusses private, consortium-based blockchain applications for Heterogeneous Consensus.

Heterogeneous Consensus

Distributed Protocols and Heterogeneous Trust

We've been looking at modeling distributed system failures with information flow tools, and expressing heterogeneous trust.

This work-in-progress talk explores richer notions of failure expressible using the Decentralized Label Model for Availability and Integrity. We generalize failure tolerance to encompass mixed failures, survivor and failure-prone sets, and participants with different trust assumptions.

16 May 2014Cornell PL RetreatHighland Lodge, Trumansburg
Distributed Protocols and Heterogeneous Trust