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:
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?