A quick classification of cryptocurrency consensus types Don’t Panic. Behind every great cryptocurrency, there’s a great consensus algorithm. No consensus algorithm is perfect, but they each have their strengths. In the world of crypto, consensus algorithms exist to prevent . Here’s a quick rundown on some of the most popular consensus algorithms to date, from Blockchains to DAGs and everything in-between. double spending Proof-of-Work (PoW) -The OG Consensus Pull a Rihanna and work work work work work , , , , (Most of them) Popular implementations: Bitcoin Ethereum Litecoin Dogecoin We know it works Pros: Slow throughput; killing the planet Cons: Proof of Work was the first blockchain consensus algorithm. , we have PoW to thank for the and power consumption we see around the world. We know it works (which is a lot more that we can say for many other consensus algorithms), but at this stage in the game it’s starting to be considered a legacy technology. Even for more energy and economically efficient PoS. With so many new alternatives, it’s hard to see why a new blockchain would use PoW. Devised by Satoshi Nakamoto for use in the Bitcoin blockchain massive mining operations Ethereum is migrating away from PoW In PoW, solve hard, useless problems to create blocks. PoW runs on a system of “the longest chain wins.” So assuming miners are working on the same chain, that one will grow fastest will be the longest and most trustworthy. Hence Bitcoin is safe as long as more than 50% of the work being put in by miners is honest. miners most Proof-of-Stake (PoS) — New kid on the block(chain) Stakey’s going to fork you up , , Popular implementations: Decred Ethereum (soon) Peercoin : Attacks more expensive; More decentralized; Energy efficient Pros Nothing at Stake Cons: In PoS, the blocks aren’t created by miners doing work, but by their tokens to “bet” on which blocks are valid. In the case of a fork, minters spend their tokens voting on which fork to support. Assuming most people vote on the correct fork, validators who voted on the wrong fork would “lose their stake” in the correct one. minters staking The common argument against proof-of-stake is the problem. The concern is that since it costs validators almost no computational power to support a fork unlike PoW, validators could vote for both sides of every fork that happens. Forks in PoS could then be much more common than in PoW, which some people worry could harm the credibility of the currency. Nothing at Stake Delegated Proof-of-Stake (DPoS) — Elect your Validators Just avoid the lobbyists and we’ll be fine , , Popular Implementations: Steemit EOS BitShares Cheap transactions; scalable; energy efficient Pros: Partially centralized Cons: DPoS is the brain-child of , 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. Daniel Larimer 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. A little quicker than bitcoin’s 10 minute block times. EOS is set to be the first blockchain with block times < 1 second! Proof-of-Authority (PoA) — Trust the know it all You will respect my authority! , Popular Implementations: POA.Network Ethereum Kovan testnet High throughput; scalable Pros: Centralized system Cons: Proof-of-Authority is a consensus algorithm where transactions are validated by approved accounts, kind of like the “admins” of the system. These accounts are the authority that other nodes receive their truth from. PoA has high throughput, and is optimized for private networks. You’re unlikely to see PoA running on a public chain due to its centralized nature. Proof-of-Weight (PoWeight) — Bigger is better Proof-of-Anything , , Popular Implementations: Algorand Filecoin Chia Customizable; scalable Pros: Incentivization can be a challenge Cons: Proof-of-Weight is a broad classification of consensus algorithms based around the consensus model. The general idea is that where in PoS, your percentage of tokens owned in the network represents your probability of “discovering” the next block, in a PoWeight system, some other relatively weighted value is used. Concrete example: Filecoin’s is weighted on how much data you’re storing. Other systems could include weights for things like Proof-of-Reputation. Algorand Proof-of-Spacetime IPFS Byzantine Fault Tolerance (BFT) — Siege the blockchain! Those generals really love sieging cities , , , and Popular Implementations: Hyperledger Stellar Dispatch Ripple High throughput; low cost; scalable Pros: Semi-trusted Cons: There’s this classic problem is distributed computing that’s usually explained with . 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: Byzantine generals : One of the first solutions to this problem was coined . 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 Practical Byzantine Fault Tolerance (PBFT) Practical Byzantine Fault Tolerance FBA is another class of solutions to the Byzantine generals problem used by currencies like Stellar and Ripple. The 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. Federated Byzantine Agreement (FBA): general 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. Directed Acyclic Graphs (DAGs) — aka the Blockchain Killers! Spaghetti Consensus , , Popular Implementations: Iota Hashgraph Raiblocks/Nano Network Scalability; low cost Pros: Depends on implementation Cons: DAGs are hotter than . DAGs are a form of consensus that doesn’t use the blockchain data structure and handles transactions mostly asynchronously. The big pro is theoretically infinite transactions per second, but DAGs have strengths and weaknesses like any other consensus. Vitalik’s Tinder profile right now is the DAG consensus algorithm used by Iota. In order to send an Iota transaction, you need to validate two previous transactions you’re received. The two-for-one, pay-it-forward consensus strengthens the validity of transactions the more transactions are added to the Tangle. Because the consensus is established by the transactions, theoretically, if someone can generate 1/3 of the transactions they could convince the rest of the network their invalid transactions are valid. Until there’s enough transaction volume that creating 1/3rd of the volume becomes unfeasible, Iota is sort-of “double-checking” all of the network’s transactions on a centralized node called “ ”. Iota says The Coordinator works like training wheels for the system, and will be removed once the Tangle is big enough. Tangle: Tangle The Coordinator : Hashgraph is a gossip-protocol consensus developed by Leemon Baird. Nodes share their known transactions with other nodes at random so eventually all the transactions are gossiped around to all of the nodes. Hashgraph is really fast (250,000+ transactions per second) but isn’t resistant to Sybil attacks. So Hashgraph is a great option for private networks, but you’re not going to see it implemented in a public network like Ethereum or Dispatch any time soon. Hashgraph Nano (formerly Raiblocks) runs with a twist on the blockchain called a 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 attack, where attackers inflate the number of chains node must keep track of by sending negligible amounts to a wide array of empty wallets. Block-lattice: Block-lattice. Penny-spend 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. SPECTRE: Serialization of Proof-of-work Events: Confirming Transactions viaRecursive Elections, Based in San Francisco? Interested in discovering the intersection of Decentralization, Art & Music? Come check out ’s event: on Aug 3rd at Public Works SF. That DAM Consortium ZANEAPALOOZA 2