The purpose of the translation and introduction of this article is to provide readers with a more open mind to understand the application of distributed ledger itself in the financial field, as well as its relationship and difference with the blockchain, whether it is from the technical level or the application level, so that readers can understand distributed Ledger technology and its subset blockchain technology can have a deeper understanding.
Quorum is an open source blockchain platform built by JP Morgan based on the Ethereum protocol since 2016. Quorum is designed to handle authorized transactions on the network, solving privacy and performance issues. Currently, JP Morgan Chase internally and external financial companies and suppliers are using it.
Part 1: Quorum-Enterprise-level Ethereum customers
What is Quorum?
Quorum is a distributed ledger agreement platform based on Ethereum. It was developed to provide transaction support and contract privacy for industries such as finance, supply chain, retail, and real estate. Quorum includes a minimalist branch of the Go Ethereum client (aka geth) and takes advantage of the work already developed by the Ethereum development community. Therefore, Quorum surpasses the main features of public Ethereum:
-Transaction and contract privacy
-Multiple consensus mechanism based on voting
-Permission management of network/peer nodes
-Better performance
Background introduction:
For more information about Quorum’s design principles and background, you can read the Quorum white paper, view the Hyperledger deck or watch the presentation at the Hyperledger Project Technical Steering Committee meeting.
Part 2: The composition of Quorum
Logical architecture diagram
· Quorum node
The Quorum node is specifically designed as a lightweight branch of geth so that it can continue to use the ongoing research and development results in the ever-increasing Ethereum community. Therefore, Quorum will be updated with future versions of geth. The Quorum node includes the following modifications to geth:
-Consensus is to reach Raft or Istanbul BFT consensus algorithm, not to use proof of work.
-The P2P layer has been modified to only allow connections with licensed nodes.
-The block generation logic has been modified to replace the “Global State Root” check with the new “Global Public State Root” check.
-The block verification logic has been modified to replace the “global state root” in the block header with the “global public state root”.
-The state of Patricia Terry’s structure is divided into two: a public terry structure and a private terry structure.
-The block verification logic has been modified to handle “private transactions”.
-Transaction creation has been modified to allow replacement of transaction data with crypto hashes in order to retain private data when needed.
-The gas price has been cancelled, but the gas itself still exists.
· Privacy Manager
Constellation and Tessera implementations use Haskell and Java, which are common systems, to submit information in a secure way. They can be compared with MTA (Message Transfer Agent) networks that use PGP to encrypt messages. It is not specific to the blockchain, and may also be applicable to many other types of applications that want to exchange separate sealed messages in the network of the other party. The Constellation module and the Tessera module consist of two sub-modules: Node (used for the default execution of Quorum Private Transaction Manager) and Enclave (enclave).
Transaction manager
Quorum’s transaction manager is responsible for transaction privacy. It stores and allows access to crypto transaction data, exchanges crypto payloads with the transaction managers of other participants, but cannot access any sensitive private keys. It uses Enclave to implement encryption (although Enclave can choose to be carried by the transaction manager itself). The transaction manager is calm/stateless and can easily achieve load balancing.
The Enclave
Distributed ledger protocols usually use encryption technology to achieve transaction authenticity, participant authentication and historical data preservation (for example, through crypto hash data chains). In order to achieve decentralization of concerns and provide performance improvements through the parallelization of certain encryption operations, many encryption tasks, including symmetric key generation and data encryption/decryption, are entrusted to Enclave.
Enclave works with the transaction manager to enhance privacy and manage encryption/decryption in an isolated manner. It holds the private key and is essentially a “virtual HSM” isolated from other components.
Part 3: Design
· Public/Private Status
Quorum supports dual status:
-Public status: accessible by all nodes in the network;
-Private status: Only nodes with correct permissions can access.
The difference is achieved through the use of crypto (private) and non-crypto payloads (public). The node can determine whether the transaction is private by looking at the v value of the signature. The v value for public transactions is 27 or 28, and the v value for private transactions is 37 or 38.
If the transaction is private, the node can only execute the transaction when it is allowed to access and decrypt the load, and the node that does not involve the transaction has no private load at all. Therefore, all nodes share a public state created by public transactions and have a locally unique private state.
This model imposes restrictions on the ability to modify state in private transactions. Since reading data from public contracts is a common use case for (private) contracts, virtual machines can enter read-only mode. For each call from a private contract to a public contract, the virtual machine will change to read-only mode. If the virtual machine is in read-only mode and the code attempts to change the state, the virtual machine will stop executing and an exception occurs.
The following transactions are allowed:
1. S -> A -> B
2. S -> (A) -> (B)
3. S -> (A) -> [B -> C]
The following transactions are not supported:
1. (S) -> A
2. (S) -> (A)
Note: S = sender (X) = private X = public -> = direction [] = read only mode
· Status verification
In order to determine whether the node is in a synchronized state, the root hash is included in the block. Since private transactions can only be processed by related nodes, it is impossible to reach a global consensus on private status.
To overcome this problem, you can use the RPC method “eth_storageRoot (address [, block number]) -> hash”. It can return the storage root of the given address for the (optional) block number. If no optional block number is given, the latest block number is used. The storage root hash is determined by the related parties after comparison, which can be an on or off chain.
Conclusion
When people talk about distributed ledgers, they always think that distributed ledgers and blockchain are the same thing. In fact, this is a misunderstanding. Distributed ledger technology, or DLT for short, refers to a data recording method that does not need to be stored or confirmed by any centralized entity. The most prominent feature of distributed ledger is that it is not maintained by any single organization or individual, but is constructed and recorded by each node in the network separately. At the technical level, distributed ledgers are characterized by decentralization and rely on consensus principles. However, when a centralized subject has control over a decentralized network, ideologically speaking, it does not conform to the characteristics of a decentralized organization. The blockchain is the underlying technology of Bitcoin, Ethereum and other cryptocurrencies. It is a form of distributed ledger technology, a non-tamperable ledger based on a formula algorithm in a decentralized network. By encrypting Crypto signatures (Cryptographic Signing) and connecting records together with a “ledger”, a chain is formed. This is the difference between blockchain and distributed ledger technology.
Every blockchain is a distributed ledger, but not every distributed ledger is a blockchain. Although both involve decentralization and consensus between nodes. Blockchain is not only decentralized at the technical and structural level, but its management organization and development are also decentralized. In distributed ledgers, only technology is decentralized, not the operating entity. Therefore, distributed ledger technology is more used in the fields of finance and government affairs.
Source: Quorum official website