Vaibhav Saini

@vaibhavsaini_67863

Quorum 101: Getting started with Quorum

a bait to quorum lovers

This post marks the first in a new Quorum series I am starting in an effort to provide some easy to read instructions covering topics I found online, particularly vast and hard to get started.

In this post, we are going to cover a basic overview of Quorum. But if you want to get your hands dirty, then you can go here. Also, I am working on stress-testing EOS and HyperLedger Fabric. I have already stress-tested Quorum and the results are out.

Stay tuned and follow me to get the updates in next few posts.

But for now, let’s get started.

What the heck is Quorum?

In simple terms, Quorum is just a blockchain platform based on ethereum. So, why don’t we use ethereum instead? Well, here is where Quorum does its work. It provides a layer on top of ethereum which enables it to perform private transactions and makes it more robust by using different consensus algorithms. Here are some of the key advantages of using Quorum over ethereum:

  • Privacy — Quorum supports private transactions and private contracts through public/private state separation and utilizing Constellation(see “Component Overview” below for explanation), a peer-to-peer encrypted message exchange for directed transfer of private data to network participants.
  • Alternative Consensus Mechanisms — with no need for POW/POS in a permissioned network, Quorum instead offers multiple consensus mechanisms that are more appropriate for consortium chains:

Raft-based Consensus — a consensus model for faster blocktimes, transaction finality, and on-demand block creation.

Istanbul BFT — a PBFT-inspired consensus algorithm with transaction finality, by AMIS.

  • Peer Permissioning — node/peer permissioning using smart contracts, ensuring only known parties can join the network.
  • Higher Performance — Quorum offers significantly higher performance than public geth(ethereum).

Now, if you just came out of nowhere into the blockchain, then you must be going crazy right now.

what is this!

So, let’s break things down a bit…

Component Overview

basic quorum architecture

On the highest level Quorum consists of 3 main components namely:

  • Quorum Node (modified Geth Client)
  • Constellation — Transaction Manager
  • Constellation — Enclave

Lets explore them one-by-one.

Quorum Node

The Quorum Node is intentionally designed to be a lightweight fork of geth in order that it can continue to take advantage of the R&D that is taking place within the ever growing Ethereum community. To that end, Quorum will be updated in-line with future geth releases.

The Quorum Node includes the following modifications to geth:

  1. ‘Proof of work’ consensus algorithm has been replaced with ‘QuorumChain’ consensus, a vote-based consensus mechanism.
  2. The P2P layer has been modified to only allow connections to/from permissioned nodes.
  3. The block generation logic has been modified to replace the ‘global state root’ check with a new ‘global public state root’.
  4. The block validation logic has been modified to replace the ‘global state root’ in the block header with the ‘global public state root’.
  5. The State Patricia trie has been split into two: a public state trie and a private state trie. This is done in order to keep the ledgers for the public and private transaction separate.
  6. Block validation logic has been modified to handle ‘Private Transactions’
  7. Transaction creation has been modified to allow for Transaction data to be replaced by encrypted hashes in order to preserve private data where required.
  8. The pricing of Gas has been removed, although Gas itself remains.

Note: The QuorumChain consensus algorithm is not yet supported by this release.

Constellation

Constellation is a general-purpose system for submitting information in a secure way. It is comparable to a network of MTA (Message Transfer Agents) where messages are encrypted with PGP. It is not blockchain-specific, and is potentially applicable in many other types of applications where you want individually-sealed message exchange within a network of counterparties. The Constellation module consists of two sub-modules: The Constellation Node (which is used for Quorum’s default implementation of a PrivateTransactionManager) and Enclave.

Constellation: Transaction Manager

Quorum’s Transaction Manager is responsible for Transaction privacy. It stores and allows access to encrypted transaction data, exchanges encrypted payloads with other participant’s Transaction Managers but does not have access to any sensitive private keys. It utilizes the Enclave for cryptographic functionality (although the Enclave can optionally be hosted by the Transaction Manager itself.)

The Transaction Manager is restful/stateless and can be load balanced easily.

For further details on how the Transaction Manager interacts with the Enclave, please see the Transaction Processing & Privacy page.

Constellation: Enclave

Distributed Ledger protocols typically leverage cryptographic techniques for transaction authenticity, participant authentication, and historical data preservation (i.e. through a chain of cryptographically hashed data.) In order to achieve a separation of concerns, as well as to provide performance improvements through parallelization of certain crypto-operations, much of the cryptographic work including symmetric key generation and data encryption/decryption is delegated to the Enclave.

The Enclave works hand in hand with the Transaction Manager to strengthen privacy by managing the encryption/decryption in an isolated way. It holds private keys and is essentially a “virtual HSM” isolated from other components.

Again, for further details on the Enclave, please see the Transaction Processing & Privacy page.

Below is a great article on how actually the private transactions occur in Quorum.

And now, if you are still curious, then below is a list of useful links to get you more deep into the Quorum.

do your research…

Quorum Consensus algorithm:

Security & Network Permissioning:

Using Quorum

Product Roadmap

More by Vaibhav Saini

Topics of interest

More Related Stories