What is a blockchain? It is a series of data chunks that have been “sewn” together with a hashing function and time-stamp server. Just like a sewing machine pulls forward a little bit of thread from the last stitch, a blockchain uses the hash of the previous data chunk (a derived fingerprint of the data) as a piece of the calculations to make the next block of data. The blockchain is a storage system designed to hold data, however, it has some unique attributes when compared to a standard database, like temporality, immutability, and consensus.
Temporality is the idea of being impacted by the progression of time — and each new data chunk is stacked on top of the last data chunk in a blockchain — constantly growing over time, similar to the rings of a tree, where the outermost ring is the newest. Immutability is the idea that the information written cannot be changed — and due to the distributed nature of the blockchain, wherein everyone is holding a complete copy of the blockchain, tampering with data is easy to find and reverse. Consensus is the concept that the participants who donate their computer time to the distributed computer which supports the blockchain need to agree which is the next data chunk that should be written.
Consensus is unique to distributed ledger technologies — you’ve never had to ask someone else if you can save a file to a thumbdrive, or to your computer, have you? No, however, the immutable nature of the blockchain mentioned earlier means that participants want to be sure that the right information is being added to the blockchain. In order to decide what the next data chunk written will be, blockchains use various methods of consensus.
The first blockchain consensus mechanism was Proof-of-Work (PoW) introduced with Bitcoin. Consensus for Proof-of-Work involves a series of “miners” whose computers are solving hard mathematical problems for the reward of Bitcoin and the responsibility to add the next data chunk to the blockchain. Proof-of-Work is neither efficient nor fast, and the inefficiency of having thousands of computers squandering electricity while racing to earn Bitcoin was recently estimated to surpass 7.7 gigawatts by the end of 2018 (or seven times the power needed by Doc Brown to send Marty McFly back to the future). As more computing is added to the Proof-of-Work network, the difficulty of the math problem is adjusted so that a new data chunk is added to the blockchain about every 10 minutes.
So when these two inefficiencies started to become apparent to the broader blockchain community, other consensus algorithms were proposed. Ethereum, for example, has three different consensus mechanisms that they have produced: Ethash is their Proof-of-Work, Casper is their Proof-of-Stake, and Clique is a Proof-of-Authority. Wait, what?
Where Proof of Work is a race to solve a math problem in exchange for Bitcoin, Proof of Stake chooses randomly from those participating based upon how many tokens of the total available they hold, and Proof of Authority chooses randomly from those who have been issued a special key (like SSL certificate) indicating they have and exercise authority in the system.
There are many other types of consensus (this is an illustrative, not exhaustive, list):
One of the key decisions in architecting the Everest technology stack was to decide what consensus mechanism we were going to use on our private, permissioned blockchain. We had to balance the need for high-speed transactions, with the need for a simple mechanism for the internal governance of the Identity Network Foundation, with the need for a well-vetted and scalable code base. When considering these factors, we chose to use the Clique Proof-of-Authority consensus algorithm in Everest. For more information about the Clique consensus algorithm and its use in Everest, please see our whitepaper at Everest.org.