alt text

We realized early on that to deliver our vision for Interbit we’d have to build from the ground up. Every blockchain must include a consensus implementation, and given how central consensus is, we began research in the early stages of building Interbit in late 2016.

Consensus, for those unfamiliar with the general concept, is how a blockchain keeps its entire network of nodes in sync: the state of the blockchain updates when (and only when) consensus is reached.

There is a particular consensus characteristic, known as Byzantine Fault Tolerance (BFT), that is usually required for most practical applications. In short, if your consensus algorithm is BFT, your overall distributed system—your blockchain—is protected from both benign faults (e.g. network problems) and malicious activity on individual nodes. For those curious about the history, the paper “The Byzantine Generals Problem” by Leslie Lamport (a luminary in this field) popularized the problem first identified by NASA research at SRI.

As we investigated our options for consensus, we immediately dismissed inventing our own consensus algorithm, for several reasons, but most importantly: creating your own algorithm is like creating your own language or cryptographic algorithms — difficult. In addition, you need substantiated mathematical proofs, and you inherently accept more risk in anything that is built upon a new technology, as opposed to something established and proven.

Interbit does not have a native token or cryptocurrency, so the most common types of consensus algorithms (e.g. Proof-of-Work) are not applicable. The blockchain within Interbit is permissioned, so the most appropriate class of algorithms are PBFT (Practical Byzantine Fault Tolerance) variants.

“Creating your own consensus algorithm is like creating your own language”

Amongst a small number PBFT variants, one caught our eye - Tendermint. Unfortunately the Tendermint implementation was not appropriate for Interbit for two big reasons:

  1. It was written in the Go programming language, while Interbit is pure JavaScript;
  2. The implementation does not only provide consensus - it is intertwined with other concerns of distributed computing, such as network and gossiping.

Despite the Tendermint implementation not being suitable, we found inspiration in the original consensus algorithm (credited to Jae Kwon), documented independently of the other features of Tendermint, in Ethan Buchman’s Master’s thesis. It is this algorithm that has guided our consensus implementation. It satisfies the criteria we were after:

  1. BFT
  2. Mathematically proven
  3. Proven implementation available online
  4. Designed for blockchain

Our own JavaScript implementation of that original algorithm will be included shortly after our first public milestone.

There will undoubtedly be confusion about our inspiration from Tendermint. It is important to be clear that our implementation of the algorithm implies no relationship, dependency, or coordination between our companies, products, or software.

We owe our thanks to, and have great respect for, Mr. Kwon and Mr. Buchman, as well as their contributions to the community at large.

The first public milestone of Interbit is approaching fast on April 23rd, when you can download the SDK and test out the platform for yourselves. Sign up on to be notified. In advance of that event you can expect to see more postings explaining the next generation of blockchain - Interbit.

alt text

Author: Brent Benton, @brentbenton

Brent is the Platform Team Lead for Interbit, our next-generation blockchain platform. Following over a decade at IBM, Brent is enjoying being nimble and responsive once more.

alt text

Author: Mark Barber, @M_Barber

Mark Barber, PhD is the Head of Product Enablement for Interbit. Mark has been with BTL through the development of Interbit and is passionate about learning, community building and helping Interbit help those it will benefit most: developers.