Vitalik Buterin’s Latest Consensus Algorithm Paper, Explained

By August 14, 2018Ethereum
Click here to view original web page at

A recent yellow paper by Vitalik Buterin simplifies and applies a 99 percent Byzantine fault tolerant algorithm for blockchains. ETHNews explains it in language you can understand (minus the math).

Last week, Vitalik Buterin published "A Guide to 99% Fault Tolerant Consensus," wherein he lays out a simplified version of Leslie Lamport's 1982 algorithm to address the Byzantine General's Problem.

The algorithm he discusses is not necessarily a replacement for proof of work or proof of stake (though, with some modification it could be, if you're not set on decentralization). Rather, it is primarily meant as a method for observers to monitor block creation in real time for 51 percent attacks, and to organize soft forks to overwrite any such attacks. Under this model, if a 51 percent attack were to occur, the attack will be detected so long as one percent of nodes are honest.

While it is unlikely for a 51 percent attack to take place on Ethereum (or other truly decentralized networks), the algorithm could prove useful under many situations. Even with Ethereum, there's always the possibility of increased centralization of mining pools, and this could both safeguard against that threat and increase participant confidence, potentially bringing more developers, companies, and consumers to the blockchain. Moreover, Ethereum's eventual switch to proof of stake will decrease fault tolerance to 30 to 33 percent, which means those consensus mechanisms can only function if two-thirds of participating nodes are honest. In other words, it will become increasingly beneficial to have additional defenses against attacks.

Further, the algorithm is not specific to Ethereum and could be used by any project, including more centralized blockchains that may come under consumer scrutiny.

Redditor drcode (aka Conrad Barski, CEO of Forward Blockchain LLC) explains his understanding of the proposed consensus mechanism:

"Usually, all blockchain consensus algos care about is what the validators (i.e. miners) of a chain do. Vitalik is proposing that if an independent observer of the network traffic (i.e. just the blockchain client a user is running, not a miner/validator) watches what's happening in real time and pays attention to when messages appear, they can detect "foul play" by miners performing a 51% attack and this can provide additional safety guarantees that can protect against such an attack."

Though drcode states that the subject matter is beyond his "technical comfort zone," Buterin validates the comment with a response, and further illuminates the algorithm's usefulness.


So, let's dig into how this works on a practical level. Of course, it all comes down to a complex math equation, but we won't get into the specifics of that.

At its most basic, nodes implement an algorithm that uses chained hash signatures and timeouts to prove block validity, which non-mining observer nodes can monitor in real time to detect foul play. The mechanism guarantees that if one honest mining node sees a valid value, all other honest nodes will also see that value, including mining and non-mining observing nodes. The 99 percent fault tolerant mechanism is latency-dependent, meaning that fault tolerance is only guaranteed if the algorithm is in sync with block validation.

Of course, Casper, practical Byzantine fault tolerance (PBFT), and similar consensus algorithms do not finalize blocks continually, but only after a set number of blocks has been created. This means that the algorithm cannot be performed after every block, as is necessary for 99 percent fault tolerance. Buterin specifies how to retrofit the 99 percent Byzantine fault tolerant algorithm for these consensus algorithms but notes that threshold dependency does reduce fault tolerance slightly, to around 95 percent.

To retrofit the algorithm for these threshold-dependent algorithms requires that some observer nodes always be online, watching block finalization. Meanwhile, 512 randomly selected finalizing nodes run the specified algorithm every 4,096 seconds and broadcast the finalized chain to all other nodes, including the network of observer nodes.

To end the paper, Buterin establishes the limits of the proposed algorithm, while articulating that limits are unavoidable in any Byzantine fault tolerant mechanism.

If all of that was still a bit dense, really all you need to know is this: If implemented, so long as even one percent of block producers are honest, and so long as there is a network of nodes watching, you can trust that all transactions written to a blockchain are valid.

Alison is an editor and occasional writer for ETHNews. She has a Master’s in English from the University of Wyoming. She lives in Reno with her spouse and growing animal family. Her favorite things to do include binge listening to podcasts, getting her chuckles via dog memes, and spending as much time outside as possible.

Like what you read? Follow us on Twitter @ETHNews_ to receive the latest consensus algorithm, Byzantine fault tolerance or other Ethereum technology news.

Leave a Reply