Quorum is an open source blockchain solution built by enhancing the existing Ethereum blockchain. Secondly, Quorum is based on the official Go implementation of the Ethereum protocol2 which provides almost a mirror of Ethereum features and benefits.
Quorum provides an additional layer on top of Ethereum that enables it to perform private transactions but also makes it more flexible by using different consensus algorithms.
Quorum overall was designed as a permissioned implementation of Ethereum that supports the enterprise requirements of transaction privacy and contract privacy.
The main use case for Quorum is that it can achieves data privacy through the introduction of a new “private” transaction identifier with modifications to the Ethereum codebase. These modifications are provided in the “go-ethereum” codebase which include modifications to the block proposal and validation processes. Data privacy in Quorum is achieved through cryptography and intentional segmentation of the nodes.
Quorum is a fork of the Ethereum blockchain
The main reason an enterprise would choose Quorum over Ethereum is privacy and a secondary reason is that Quorum is based on Ethereum which has a robust development base.
Quorum supports private transactions and private contracts through what is known as a public and private state separation. It also supports privacy by using Constellation, which is a peer-to-peer encrypted message exchange for the targeted transfer of private data to network participants. Quorum has some flexibility in consensus by supporting alternative consensus mechanisms without POW/POS in a permissioned network.
Quorum also offers options for consensus mechanisms that are considered desirable for a consortium use case. For example, Istanbul Byzantine Fault Tolerance and Raft Based Consensus are consensus methods that support enterprise features such as fault tolerance and availability.
Quorum Chain is a new consensus based on a majority voting and time-based mechanisms which supports Ethereum-based transactions that can be propagated through the network, for example.
Figure 1 shows the high-level components of the Quorum blockchain. You can see that we have a Quorum node with go-ethereum. The node has go-ethereum that extends the capabilities to Ethereum network.
Figure 1: Quorum blockchain components
Constellation is a feature introduced which is a general-purpose mechanism for submitting information and allows encrypted communication between peers.
Permissions at the node level are governed by smart contract code. The main benefit is that it provides a higher level of performance compared to public Ethereum blockchain.
The primary features of Quorum over public Ethereum are
- Transaction and contract privacy
- Multiple voting-based consensus mechanisms
- Network/peer permissions management
- Better performance and scalability due to its simple consensus
- In Figure 2has an example transaction workflow in Quorum
Figure 2 Quorum Blockchain Overview
From the diagram above shows a high-level Quorum blockchain which has both private and public states on the blockchain. In Quorum a transaction has to be either public or private If the transaction is private all the data within that transaction is private for that set of entities in the blockchain. In a nutshell, Quorum is open-source and more approachable for some organizations than a private blockchain. Quorum aims to be a platform that allows integration and experimentation with not only the financial industry, but also other companies interested in blockchain technology.
Quorum is a private/permissioned blockchain based on the official Go implementation of the Ethereum protocol. Quorum uses a voting-based consensus algorithm and achieves data privacy through the introduction of a new “private” transaction identifier.
One of the main design goals of Quorum is to reuse as much existing technology as possible from Ethereum to minimize the changes required to go-Ethereum. Planning this, for example, reduced the effort required to keep in sync with future versions of the public Ethereum code base.
Much of the logic responsible for the additional privacy functionality resides in a layer that sits atop the standard Ethereum protocol layer.
Based on its official description, Quorum is essentially an extension of Ethereum. Quorum blockchain has many similarities to Ethereum but it has clear mission to provide both the best features of a permission-less blockchain with the added privacy, security, and performance of a permissioned blockchain for a targeted audience.
Developed by J.P. Morgan Chase and its consortium members, Quorum is one of the first major steps towards common adoption of blockchain among financial industries. Quorum is an enterprise-focused, permissioned blockchain infrastructure specifically designed for financial use cases.
By building on Ethereum, Quorum inherits the maturity of the production-hardened go-Ethereum code base as well as helps unite the public and enterprise development communities on a common protocol.
Essentially, Quorum functions very similarly to Ethereum but has four very significant differences or areas to appreciate when comparing to native Ethereum:
- Network and peer permissions management
- Increased transaction and contract privacy
- Voting-based consensus mechanisms
- Higher performance
I cover these topics in greater detail in Chapter 10, “Blockchain Development Hands On.”
This system has two distinct types of possible transactions: public and private. Public transactions are transactions where the payload is visible to all participants. These publicly viewable transactions are standard Ethereum transactions.
Private transactions are transactions where the payload is only visible to participants whose public keys are specified in the “privateFor” parameter of the transaction. This transaction foundation is an extension of the Ethereum protocol.
Consensus in Quorum is very flexible from a choice perspective compared to other blockchains. For example, Quorum offers options for consensus mechanisms that are considered desirable for a consortium use case
Istanbul Byzantine Fault Tolerance and Raft Based Consensus are consensus methods that support enterprise features such as fault tolerance and availability.
Quorum Chain is a new consensus is based on a majority voting and time-based mechanisms which supports Ethereum based transactions that can be propagated through the network for example
There exists two blockchain states in Quorum. First, is the public state shared by all nodes of public transactions and secondly the private state local to each node for the private transactions the nodes are authorized for.
From the diagram above we see two distinct “voting periods which also have voting periods that have a maker which is the node responsible for making blocks, the voter which is responsible for voting or validating the blocks and the Non-Voter which acts as a witness to the transactions. Note that the most recent block with the most votes is considered the head of the chain and maintains control.
As previously mentioned, Quorum is based on Ethereum and is fork of Ethereum blockchain. With that being stated, implementing and using Ethereum smart contracts would be quite familiar to Ethereum developers.
Quorum uses standard Solidity for writing smart contracts, which generally can be designed as you would for Ethereum. Smart contracts can either be public (visible and executable by all participants on a given Quorum network) or private to one or more network participants.