0

In a private blockchain (e.g, quorum), assume that I have a peer X and peer Y. X has a private smart contract (A) and Y has a public smart contract B.

Assume that A provides an API for Y in order to invoke a view function Fa from his private smart contract (Fa takes an address as a parameter and return true if the address exists is a table internal to the private smart contract (A)).

Assume that Y invokes a function Fb from his public smart contract that calls the provided API to get the returned value (true or false) for a given address.

I want to know if such a scenario is possible and if possible the details of how such a transaction is made (transaction lifecycle and how and when the function Fa is invoked)

  • Comments are not for extended discussion; this conversation has been moved to chat. – eth Jan 31 at 7:16
2

No.

Quorum has a shared/public state and each node maintains a private state. The private state is only updated by private transactions tagged with privateFor. This includes contract deployment transactions that create contracts with bytecode known only to the included parties.

To my knowledge, there is no way to directly connect a public transaction with a private contract or otherwise cross that boundary. How would other nodes verify the public transactions without knowledge of private bytecode that played a role?

In terms of a practical approach, you might consider "trusted" nodes that listen to event logs (public and private contracts they are privy to) and inject transactions on the other side in a predictable and auditable fashion. You would have to work out the inputs/outputs and assurances provided by your bridge.

Hope it helps.

  • 1
    That is correct. In terms of Quorum, a private smart contract may read a function of a public smart contract, but not other way around. Private contract may not update a state of public smart contract either. A dapp / API may be built to service such function, but this is not the same as accessing data via smart contracts. – fixanoid Jan 29 at 19:31

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.