How does J.P. Morgan's Quorum differ from Ethereum
J.P. Morgan Chase is one of the largest investment banks in the world, with $25 trillion in assets under management. Of course, as part of their operation they transfer money and/or ownership stakes every day, often internationally and with other banks as counterparties in their deals. It's not surprising that they are looking into what blockchain technology has to offer, how it can cut unnecessary maintenance costs and bring the power of smart contracts into their day to day business.
In order to accomplish this goal the wealthiest bank of the United States establishes partnerships with the best. For the blockchain part of the infrastructure, they joined Ethereum Enterprise Alliance. For the zkSNARK-based privacy tech on this blockchain they hired Zooko Wilcox, the creator of ZCash. And for the consensus part of the Quorum blockchain they've adopted battle-tested technology from Core OS called etcd. The use of the latter allows Quorum to achieve some desirable properties that are useful in a private blockchain installation.
In order to better understand how etcd is used inside Quorum, J.P. Morgan's fork of Ethereum, we'll need to study the history of Ethereum testnets and various consensus algorithms that can power a blockchain.
The mainnet of Ethereum achieves consensus via Proof-of-Work (POW). The upside of using POW is decentralization of block creators - the first lucky person to come up with a valid block gets to mine it. As more and more people join the mining network it eventually stabilizes, and it's even possible to design POW complexity that makes the network produce blocks and consistent time intervals. Bitcoin's POW targets one block every 15 minutes, Ethereum's - every 15 seconds. Unfortunately, due to statistical nature of this time window generation algorithm, it is impossible to make new block generation faster without sacrificing network's availability and security for all network participants.
Another important downside of POW blockchains is the notorious 51% attack - if you manage to get 51% mining power in your hands you are able to manipulate the blockchain in malicious ways. In practice, however, the mining reward incentive is strong enough that it prevents centralization of power on production blockchains such as Bitcoin and Ethereum.
Ropsten is Ethereum's primary testnet that runs exactly the same code. Since this is a testnet and mining it does not produce a monetary reward the networks hashrate is significantly lower. This opens up the door for malicious actors to suddenly turn on their production mining rigs on the testnet blockchain and assume 51% control of the network. This happened in February 2017, when unknown users decided to abuse the low POW and gradually inflate the block gas limits to 9 billion (from the normal 4.7 million), at which point sending in gigantic transactions crippling the entire network. Even before that, attackers attempted multiple extremely long reorgs, causing network splits between different clients, and even different versions. The hackers didn't get any monetary value out of it, but they essentially killed testnet for all intents and purposes and rendered it unusable for smart-contract developers and researchers. The root cause of these attacks is that a POW network is only as secure as the computing capacity placed behind it. Restarting a new testnet from zero wouldn't solve anything, since the attacker can mount the same attack over and over again.
And so, Kovan and Rinkeby were born. Proof-of-Authority is a newer concept in the blockchain world where you have a number of pre-approved authority nodes (called sealers, think of these as mining nodes). Any new node that you want to add has to be voted on by the currently approved set of authority nodes, this gives you full control over which nodes can seal blocks (mine) on your network. To make sure a malicious signer cannot do too much harm to the network any signer can sign at most one of a number of consecutive blocks. The same consensus is applied when an authority node is removed from the network.
The Ethereum Proof-of-Authority protocol is called Clique and is well described in the Clique Github issue. Ethereum currently uses this algorithm for the Rinkeby test network. Essentially, using Proof-of-Authority allows Parity and Ethereum Foundation to maintain stable testnets (kovan and rinkeby, respectively) in a somewhat centralized manner. There is no monetary incentive to do so, however having stable testnets is great for dApps developers and is an important piece of development infrastructure for decentralized web.
Proof-of-Authority is a good fit for private networks but not at all suited for public networks where the trust should be as distributed as possible.
Raft and etcd
However, for a private blockchain, it's possible to take a somewhat different and untraditional approach and just take established consensus algorithms, produced by years of hardcore Computer Science research.
Paxos and Raft are exactly the kind of algorithms that we're talking about. They were primarily designed to power high-availability databases and distributed systems, such as the core infrastructure used by Google, Microsoft, Facebook, etc. One of the most used in the industry implementations of Raft is Core OS's etcd. This is the heart of J.P. Morgan's Quorum.
Using Raft instead of POA, POS or POW allows Quorum to produce a new block as fast as every 50 milliseconds. That's a tremendously good amount for a blockchain that is capable of being both a store of value and a smart contract execution platform. Note that these numbers will be forever impossible for a byzantine fault-tolerant decentralized Earth-scale blockchain due to fundamental laws of physics. But for a privately owned blockchain with a trusted operator this makes perfect sense and seems to be quite effective.
You can read more about Quorum and participate in its open source development here.