Jae Kwon, founder and CEO, Tendermint, has been studying the properties of consensus systems since he first became interested in Bitcoin. In a 1988 paper entitled, Consensus in the Presence of Partial Synchrony, Kwon saw the blueprint for the Tendermint proof of stake algorithm he would go on to build.
"I dropped everything and started working on it, and that was March of 2014," says Kwon. "The algorithm has evolved and gone through several iterations and now it turns out that what we have created is very similar to Practical Byzantine Fault Tolerance."
Practical Byzantine Fault Tolerance (PBFT) is practical because it works in asynchronous environments like the internet. Previous algorithms assumed a synchronous system or were too slow to be used in practice. For example, Bitcoin assumes a synchronous network model; if you wait long enough eventually a blockheader will be propagated across the globe. PBFT incorporates several optimisations to improve response time, and Tendermint is similar because these systems are dealing in theoretical optimums.
Tendermint nodes participate in the consensus protocol by broadcasting cryptographic signatures, or votes, to agree upon the next block. Validators' voting powers are determined at genesis, or are changed deterministically by the blockchain, depending on the application. For example, in a proof-of-stake application, the voting power may be determined by the amount of staking tokens bonded as collateral.
Voting for consensus on a block proceeds in rounds: each round has a round-leader, or proposer, who proposes a block. The validators then vote in stages on whether to accept the proposed block or move on to the next round. The proposer for a round is chosen deterministically from the ordered list of validators in proportion to their voting power.
Kwon calls Tendermint a consensus engine, or a blockchain engine. "It by itself doesn't know anything about what transactions mean or how to process them. It doesn't even know what transactions are valid unless you plug in application logic, or a state machine that can process those transactions.
"You connect Tendermint to that application via a network socket protocol and those two programmes together is a blockchain node. The idea is you get these two programmes and you replicate it across many computers and you have a blockchain."
"The nice thing about our system is that in an ideal scenario you need two rounds of vote communication to achieve consensus. And that's optimal, you can't do any better."
Tendermint core is used to power the latest innovation from the team – Cosmos, a network of many independent blockchains called "zones". The first zone on Cosmos is called the Cosmos Hub, "a multi-asset proof-of-stake cryptocurrency with a simple governance mechanism which enables the network to adapt and upgrade".
The hub and zones of the Cosmos network communicate with each other via an inter-blockchain communication (IBC) protocol, a kind of virtual UDP or TCP for blockchains. Tokens can be transferred from one zone to another securely and quickly without the need for exchange liquidity between zones. Instead, all inter-zone token transfers go through the Cosmos Hub, which keeps track of the total amount of tokens held by each zone. The hub isolates each zone from the failure of other zones.
Ethan Buchman, CTO, Tendermint, said: "Cosmos is the internet of blockchains. In cosmos all of these blockchains are literally talking to each other; they are directly sending packets of data between each other and it allows for interoperability of tokenised blockchains in a way that we don't see today.
"The cosmos hub is going to be the first blockchain that sits at the centre and many other blockchains can connect to it, and the hub tracks the total amount of tokens in each blockchain. It allows you to send any kind of token from one blockchain to another, through the hub, so the hub is acting as a central depository or a central record of which blockchains have however many tokens."
Kwon added: "There's a lot of advantage of this kind of system. It's fantastic for scalability obviously because you can just launch a new blockchain, attached to the hub, and off you go. Ethereum has a scaling problem and they are working on a scaling solution called Mauve, but Cosmos is a completely different way to solve the Ethereum scaling problem.
"Another benefit is upgradeability. Ethereum is a good example, but it could be with anything; you can have an Ethereum version one attached to the hub. Then if you design an upgrade to the virtual machine, you can have Ethereum version two attached to the hub as well, and version three. People can move their coins over to these new EVMs whenever they want."
"So you can get upgrades without having to do a hard fork, something that we can't currently do," added Buchman.