I am currently writing a master thesis about Ethereum. In the thesis, I develop a system to send data and do calculations with data on the ethereum blockchain with a smart contract. The system I am making consists of three actors. A data generator, an actor that receives ethereum based on the data and a third party purchasing the data made by the data generator. The data generator sends data to a smart contract deployed by the actor that receives ethereum based on the data. I want to protect this data so that the third party cannot get hold of the data that is sent to the smart contract. Encrypting the data before sending it to the smart contract is not possible, because the contract would have to decrypt the data to send ether based on the data. At the same time, I want to hide the data from the third party.

This a model of the system:

enter image description here

It is important that the third party cannot look up transactions and find the data sent to the smart contract easily.

Can a third party, use the smart contract once, acquire the byte code of the contract, and do a lookup on the blockchain to find contract address, to then lookup all transactions made to and from the contract?

And after that acquire all the data sent to the smart contract? Is there another way to acquire the data sent to the smart contract?

2 Answers 2


If the third-party is using the contract, then they already know its address, and yes, they can trivially look up all the transactions involving that address and read all the data in them.


And to answer the question in the title, yes, you can find smart contracts by their byte code. (So if you know the byte code, you can find all the deployed contracts that have the same byte code.)

  • Thank you for your answer. Regarding the edited part, is this a trivial process? Is there a way to mitigate this? Commented May 23, 2018 at 18:12
  • Everything in Ethereum is fully public. Anyone running a node has all the contracts and all the transactions on their hard drive. There's no way to prevent them from looking at that data. (And online tools make such searching/mining easier.)
    – user19510
    Commented May 23, 2018 at 18:15
  1. A simple ZKP scheme that I've used was inspired by this.
  2. If they are using the smart contract, they know it's address.
  3. Given the concerned part knows the compiler version and address used to compile, yes
  • Thank you for your answer. I saw your ZKP scheme, is parts of your system centralized? Commented May 23, 2018 at 18:18
  • @Herligetider Not at all. Commented May 23, 2018 at 18:22

Your Answer

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

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