Quorum® is a blockchain platform for businesses. Because Quorum Blockchain is an open-source project, anybody may audit the network’s code, promoting trust in the platform. Open-sourcing improves usage and invites developers from many sectors to contribute to the platform’s growth.
1/ Blockchain and business requirements
Due to its cryptographically secure, auditable, and immutable qualities, the nature of blockchain or distributed ledger provides a safe, shared platform for decentralized apps (DAPPs) and data. However, in order for a blockchain to be viable for businesses, it must meet key enterprise-driven requirements:
- In the banking business, for example, it is required that transaction details be kept private and shared only with the allowed persons engaged in the transaction. In the health-care business, patient records contain similarly sensitive information that must only be viewed by authorized individuals.
- Ensures that the network’s performance and scalability are sufficient to support business use cases.
- Ensures that only authorized entities have access to the blockchain network.
2/ Quorum Blockchain architecture
Quorum offers various enterprise capabilities that are outlined below when compared to public ethereum:
- Transactions are kept private.
- There are a variety of pluggable consensus techniques that are ideal for corporate use cases.
- Permissions management (access control) for network nodes and participants at an enterprise level.
- Performance that is fit for a business.
Essentially, Quorum is an ethereum client for the general public that has been improved with enterprise functionality. In a permissioned network, it enables privacy features, business permissioning, and increased speed. Private transactions manager is a component that acts as an off-chain privacy mechanism. Quorum Blockchain uses HTTPS to interact with the private transaction manager and preserves a reference to private transactions on the blockchain with applicable state trees.
3/ Quorum Blockchain node
The Quorum node is a branch of geth that is designed to be lightweight. Because it is a fork of geth, it continues to benefit from ongoing research and development within the ever-growing ethereum community, as well as the incredible work of the geth development team. As a result, Quorum is updated in sync with geth releases on a regular basis to stay up with the latest enhancements.
In comparison to the public Geth client, the Quorum node has the following changes:
- Instead than employing Proof-of-Work, the consensus is reached using the RAFT, PoA, or Istanbul BFT consensus algorithms. The availability of all of these alternative protocols enables for the selection of any of these algorithms based on business requirements.
- Only connections to/from permissioned nodes are allowed through the Peer to Peer (P2P) layer.
- The block generation logic has been changed to include a new ‘global public state root’ check in place of the previous ‘global state root’ check.
- A public state trie and a private state trie have been established in the State Patricia trie.
- The block validation mechanism has been changed to use the ‘global public state root’ instead of the ‘global state root’ in the block header.
- ‘Private Transactions’ have been added to the block validation logic.
- The Gas price has been deleted, but the Gas itself has not.
4/ Transaction manager
It is a stateless and restful service that is largely responsible for the operations listed below.
- The network’s other transaction management nodes are automatically discovered.
- Transmits encrypted payloads to the transaction managers of other nodes.
- Encrypted transaction data is stored and accessed.
There are two types of transaction managers now available: ConstellationSM and TesseraSM. The transaction manager is a general-purpose system for sharing information securely. It’s similar to a network of MTAs (Message Transfer Agents) in which PGP encrypts communications. It may be used in any application that requires the exchange of individually sealed and secure messages among a network of participants.
Tessera is a transaction manager for businesses. It is a Java-based stateless program that allows Quorum to encrypt, decode, and distribute private transactions. The following are the functions of a Tessera node:
- Multiple public/private key pairs are generated and stored.
- By connecting to just one other node, it automatically detects all nodes on the network (and their public keys).
- TLS certificates are used to provide two-way SSL (mutually authenticated TLS)
- Trust schemes such as Trust On First Use (TOFU), IP whitelist, and certificate authority are all supported.
- Any SQL database that supports the JDBC client can be connected to.
- Other nodes on the network are synchronized with a directory of public keys mapped to recipient hosts.
- This class exposes a public API for communication between Tessera peer nodes.
- Provides a confidential API for communicating with the Quorum node, as well as:
- Allows a decrypted payload to be received depending on an identification. This method can be used to decrypt and retrieve payloads transmitted or received by your node.
- Supports a variety of storage backends, including LevelDB, BerkeleyDB, SQLite, and Directory/Maildir style file storage, which may be used with any Userspace Filesystem – FUSE adaptor, for example, for AWS S3.
Tessera is a hybrid of a distributed key server, PGP encryption (which employs cutting-edge cryptography), and Mail Transfer Agents (MTAs).
5/ Quorum Blockchain Private transactions
As previously stated, Quorum supports private transactions via an off-chain mechanism known as the Privacy Transaction Manager. With this example, you’ll see how Quorum’s many components work together to provide privacy features.
Before we go into the example, it’s important to realize that Quorum not only enables private transactions, but also normal public transactions. The ethereum EIP-155 based transaction signing method is used for public transactions, whereas the ethereum Homestead based transaction signing mechanism is used for private transactions.
The process step by step
With the help of the picture above, we can describe the process step by step as follows:
- Party A submits a Transaction to their Quorum Node, indicating the Transaction payload and setting private to be Party B’s public keys. It can also be set for party A if desired.
- The Quorum Node of Party A transmits the Transaction to its associated transaction Manager, requesting that the transaction payload be stored.
- The Transaction Manager of Party A contacts the Enclave linked with it to validate the sender and encrypt the payload.
- The Enclave of Party A validates Party A’s private key and, if it is legitimate, conducts the transaction.
- The Transaction Manager of Party A calculates the encrypted payload’s SHA3-512 hash, then saves the encrypted payload and encrypted random master keys (RMKs) in the database against the hash.
The Transaction will not be propagated to the network if Party A does not get a response/receives a Nack from Party B. The storage of the sent payload is a requirement for the recipients.
- When data transmission to Party B’s Transaction Manager is complete, Party A’s Transaction Manager provides the hash to the Quorum Node, which replaces the Transaction’s original payload with the hash. The transaction’s V value is likewise changed to 37 or 38.
- The standard ethereum P2P Protocol is then used to broadcast the transaction to the rest of the network.
- A block containing Transaction ‘AB’ is produced and delivered to all network parties.
Quorum Blockchain Summary
Finally, Quorum is an enterprise-grade blockchain technology that offers high performance, enterprise-oriented access management, and privacy. Quorum is a good solution for usage in any corporate use case because of all of these capabilities.