0

I have ran the quorum-example, deploying a private contract. https://github.com/jpmorganchase/quorum-examples/tree/master/examples/7nodes

I followed the commands written in README. However, I'm quite confused about why node4 can modified the status of this private contract.

When execute

private.get()

node1 got 42, node7 got 42, and node4 got 0.

But after node4 execute

private.set(7,{from:eth.coinbase,privateFor:["ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc="]});

node1 still got 42, node4 got 0, and only node7 got 7.

It is a private contract between node1 and node7, so I'm wondering why node4 can change states from 42 to 7

  • I will just comment and say, No. AFAIK, Quorum uses encryption inside the privacy layer it adds over the Ethereum geth, resulting into an authentification with each transaction sent. this also applies to the privateFor field which encrypts a transaction and the only keys that can decrypt it and run it are in the value of that field. - please correct me if I am wrong. – Kaki Master Of Time May 10 at 9:56
0

As of Quorum v2.2.3/Tessera 0.9 this is indeed possible condition and its one of the reasons why additional security/validation is needed at the smart contract level, for instance, validating that address accessing methods is in list of allowed addresses.

The next major release of Tessera will address this by enforcing access at the private transaction manager level if so chosen (meaning, its going to be a toggle / option)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.