Simplifying the Quorum Whitepaper
Here we’ll quickly breakdown what quorum is and the system’s consensus protocol, potential vulnerabilities, and projected future state — all straight from the whitepaper in a way we call can understand!
Here’s my annotated version of the white paper with notes for your reference!
What is Quorum?
Quorum is an Ethereum-forked variant Blockchain that lends itself exceptionally well toward transacting privately between nodes on a decentralized network (while maintaining consensus).
Quorum is a private/permissioned, blockchain based on the official Go implementation of the Ethereum protocol2. Quorum uses a voting based consensus algorithm, and achieves Data Privacy through the introduction of a new “private” transaction identifier.
The essence of Quorum is to use cryptography to prevent all except those party to the transaction from seeing sensitive data.
Quorum Consensus Protocol
Modifications to the go-ethereum codebase include modifications to the block proposal and validation processes. The block validation process is modified such that all nodes validate public transactions and any private transactions they are party to by executing the contract code associated with the transactions.
- There exists two blockchain states on Quorum, (1) the public state shared by all nodes of public transactions and (2) the private state local to each node for the private transactions they’ve been privy to
- States seem to be stored on persistent databases
- Quorum uses a majority voting protocol dubbed QuorumChain, where a subset of nodes within the network are given the ability to vote on blocks
- QuorumChain is implemented in a smart contract which tracks voter and block maker lists
- Data privacy in Quorum is achieved through cryptography and segmentation. Segmentation is applied to each node’s local state database which contains the contract storage and is only accessible to the node.
- The Quorum state database is split into two, a private state and a public state. These are represented in memory as two separate patricia-merkle trees. Quorum block validation only matches on the public state.
- Private blocks are validated because that type of transaction includes the hash of the global public state of the blockchain — which ensures that both nodes are referencing the same public state (hence the same EVM) as part of the private encryption and decryption process.
Node State Privacy Design
Quorum Transactions take a list of public keys that identify the parties to the transaction and therefore make the transaction private to those parties.
- It seems that nodes can still act maliciously and attempt to commit fraud in private transactions