Consensus
Consensus
Consensus
1
Delegated Proof-of-Stake (DPoS) — Elect your Validators
Popular Implementations: Steemit, EOS, BitShares
Pros: Cheap transactions; scalable; energy efficient
Cons: Partially centralized
DPoS is the brain-child of Daniel Larimer, and is actually very different from PoS. In DPoS, token
hodlers don’t vote on the validity of the blocks themselves, but vote to elect delegates to do the
validation on their behalf. There are generally between 21–100 elected delegates in a DPoS system.
The delegates are shuffled periodically and given an order to deliver their blocks in. Having few
delegates allows them to organize themselves efficiently and create designated time slots for each
delegate to publish their block. If delegates continually miss their blocks or publish invalid
transactions, the stakers vote them out and replace them with a better delegate.
In DPoS, miners can collaborate to make blocks instead of competing like in PoW and PoS. By
partially centralizing the creation of blocks, DPoS is able to run orders of magnitude faster than
most other consensus algorithms. EOS is set to be the first blockchain with block times < 1 second!
A little quicker than bitcoin’s 10 minute block times.
2
Byzantine Fault Tolerance (BFT) — Siege the blockchain!
Popular Implementations: Hyperledger, Stellar, Dispatch, and Ripple
Pros: High throughput; low cost; scalable
Cons: Semi-trusted
There’s this classic problem is distributed computing that’s usually explained with Byzantine
generals. The problem is that several Byzantine generals and their respective portions of the
Byzantine army and have surrounded a city. They must decide in unison whether or not to attack. If
some generals attack without the others, their siege will end in tragedy. The generals are usually
separated by distance and have to pass messages to communicate. Several cryptocurrency protocols
use some version of BFT to come to consensus, each with their own pros and cons:
Practical Byzantine Fault Tolerance (PBFT): One of the first solutions to this problem was
coined Practical Byzantine Fault Tolerance. Currently in use by Hyperledger Fabric, with few (<
20, after that things get a little ) pre-selected generals PBFT runs incredibly efficiently. Pros: High
transaction throughput Cons: Centralized/permissioned
Federated Byzantine Agreement (FBA): FBA is another class of solutions to the Byzantine
generals problem used by currencies like Stellar and Ripple. The general idea (heh), is that every
Byzantine general, responsible for their own chain, sorts messages as they come in to establish
truth. In Ripple the generals (validators) are pre-selected by the Ripple foundation. In Stellar,
anyone can be a validator so you choose which validators to trust.
For its incredible throughput, low transaction cost, and network scalability, I believe the FBA class
of consensus algorithms are the best we’ve discovered for distributed consensus.
3
Block-lattice: Nano (formerly Raiblocks) runs with a twist on the blockchain called a Block-lattice.
The Block-lattice is a structure where every user (address) gets their own chain that only they can
write to, and everyone holds a copy of all of the chains. Every transaction is broken down into both
a send block on the sender’s chain and a receive block on the receiving party’s chain. The Block-
lattice seems almost too simple to work, but it’s already out there running in the wild. The unique
structure does leave the Block-lattice open to some unique attack vectors like the Penny-spend
attack, where attackers inflate the number of chains node must keep track of by sending negligible
amounts to a wide array of empty wallets.
SPECTRE: Serialization of Proof-of-work Events: Confirming Transactions via
Recursive Elections, better known as SPECTRE, is a proposed Bitcoin scaling solution that utilizes
a combination of PoW and DAGs to reach scalable consensus. In SPECTRE, the blocks are mined
pointing to multiple parents, not just one, so the network could potentially handle multiple blocks
per second. Mining a block pointing to some parent blocks supports those blocks validity.
Compared to PoW’s “longest chain wins”, SPECTRE uses something like “blocks with the most
childen win.” SPECTRE hasn’t been battle-tested in the wild yet, and new attack vectors are likely
to emerge, but it feels like a very clever potential way to fix Bitcoin.