Tendermint is a low-level blockchain protocol made up of two pieces: a blockchain consensus engine and a general application interface. The core of the network facilitates a peer-to-peer network and offers a proof-of-stake consensus.
Tendermint is designed to be a tool for developers to use to skip the technical cryptography and dive into the higher level blockchain and application development. By creating a set of tools for distributed governance, Tendermint is helping decentralized teams organize into larger communities run through crowd-driven game theory rather than having a single CEO of a company or a few executives who make top-down decisions.
The Byzantine Fault Tolerance (BFT) is baked into the protocol’s consensus algorithm. This is the basic game theory describing how a distributed governance model can protect itself from a malicious attack by a group wishing to do harm by colluding to have a deterministic voting block in the consensus process for a particular decision. That is, when a group of individuals try to subvert the organization for their own personal benefit rather than serving the benefit of the larger organization. Being Byzantine Fault Tolerant is critical for any distributed organization that plans on navigating inherent conflicts between what is best for the organization versus what might be better for one or more individuals in the organization. In an industrial company, we trust the executives to have the best interest of the community at heart. In a distributed organization we don’t have to trust anyone – other than the consensus mechanism itself. That’s where Tendermint finds its use case.
The BFT works to solve the Byzantine Generals Problem. The equation posits that a bunch of generals need to attack a city at the same time to win the battle. However, the generals are placed at different sides of the city with no way to communicate when to attack. When more people are factored in, the task becomes even more challenging. The BFT Proof-of-Stake lets 100 validators quickly secure their ledgers against each other. This means that all validators know when they need to attack the city.
The protocol is able to solve the problem by using a partially synchronous network model. This means validators don’t have to act at a preset time. Instead, validators are assigned randomly to propose a block. Once blocks are proposed, the selected validators vote in a multi-round deterministic process.
Along with the Tendermint core is the Application Blockchain Interface, or ABCI. ABCI allows for blockchain applications written in any language to be replicated on a prefab BFT blockchain engine. The ABCI serves as a translator, socket and wrapper between the Tendermint blockchain engine and blockchain applications. The use of ABCI helps to reduce the barriers of access surrounding blockchain development. The majority of blockchain systems have a monolithic architecture which restricts what languages can be written on top of them.
The people behind the creation of Tendermint have a larger project in the works, Cosmos. Cosmos operates as an internet of Blockchains and networks together applications based on Tendermint. To work in the Cosmos ecosystem, an application doesn’t even need to be built initially on top of Tendermint. Instead, the application replicator of Tendermint makes it possible for Cosmos to hard-spoon already existing blockchains onto the Tendermint core.
Already, some prominent projects are looking to hard-spoon themselves over to Cosmos. This list includes 0x, FOAM and OmiseGo. The token of these projects will exist on top of Tendermint and link to Cosmos blockchain network.