2

Quorum is a fork of Ethereum, what are the main difference of them about private key/public key/address generation and representation format? In the link Quorum wiki, there is a public key like below:

{"payload": "foo", "from": "mypublickey", to: "ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc="}

the public key above is different format from ethereum HEX public key.What's it and its encoding format?

Meanwhile, I also noticed in the link Quorum example, the block info printed is all the same with ethereum:

{
  blockHash: "0x4d6eb0d0f971b5e0394a49e36ba660c69e62a588323a873bb38610f7b9690b34",
  blockNumber: 1,
  from: "0xed9d02e382b34818e88b88a309c7fe71e65f419d",
  gas: 4700000,
  gasPrice: 0,
  hash: "0xe28912c5694a1b8c4944b2252d5af21724e9f9095daab47bac37b1db0340e0bf",
  input: "0x58c0c680ee0b55673e3127eb26e5e537c973cd97c70ec224ccca586cc4d31ae042d2c55704b881d26ca013f15ade30df2dd196da44368b4a7abfec4a2022ec6f",
  nonce: 0,
  r: "0x4952fd6cd1350c283e9abea95a2377ce24a4540abbbf46b2d7a542be6ed7cce5",
  s: "0x4596f7afe2bd23135fa373399790f2d981a9bb8b06144c91f339be1c31ec5aeb",
  to: null,
  transactionIndex: 0,
  v: "0x25",
  value: 0
}

How to understand the above info? Thanks

1 Answer 1

5

Quorum adds a number of features into plain Ethereum, tho from perspective of using it or developing a dapp with it its practically the same. These features are what make Quorum enterprise ready and they are: privacy (as in peer to peer privacy through private smart contracts), permissioning (as in ability to set up the entire chain's nodes), pluggable consensus algo (theres a choice between Istanbul BFT or Raft and either provides 100s of txns/sec) and finaly, txn and bloxk finality.

A regular txn in Quorum is exactly the same as in plain Ethereum and it creates a public txn. If you execute the same txn but add privateFor then the txn is intended to the recipients defined in the privateFor array and its payload will only be sent to the intended recipients. Quorum node is responsible for replacing the payload with a hash of the encrypted txn via talking to its Private Transaction Manager (which transfers the actual payload to the private recipients) and writes out a public txn with a new v value and payload of the transfered secret hash.

The keys Private Transaction Manager uses are explained in detail here: http://docs.goquorum.com/en/latest/Privacy/Tessera/Configuration/Keys/ but essentially, they are a pre-generated public/private set controlled by the node operator and secured with argon2 and nacl libraries.

2
  • At first,With 'privateFor' function, if a transaction is sent to three recipients, does it mean that there will be three seperate transactions processed by Ethereum and Quorum is just to add easy-using call interface? Seconedly, when signing a transaction, does quorum node use its private key to sign txn instead of using ethereum private key? why is there a new v value?
    – user53451
    Commented Aug 6, 2019 at 1:58
  • For the first part of the question: only a single txn is recorded on the blockchain, but the private transaction manager sends payload to all the recipients separately. For signing a txn: this depends where your Ethereum accounts key is. If its node managed, then you sign / send with the node, if its externally managed, then you may use our quorum.js library to sign externally: github.com/jpmorganchase/quorum.js This page provides detailed explanation of what happens: docs.goquorum.com/en/latest/Privacy/Tessera/….
    – fixanoid
    Commented Aug 6, 2019 at 19:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.