I have a smart contract where user submit data based on a task set by the owner, post doing so the owner in another contract offers this data to the highest bidder.

Is it possible to ensure the privacy of those in the bid, in terms of not knowing whom they are or linking their bid to them? As well as the owner selects the top bid and sends data to without others knowing, the winners identity.

Would it be possible to ensure the anonymity of the data submitter in the first contract as well, thus keeping those users always hidden/anonymous.

  • Too abstract IMO. You might want to show your actual code in order to depict a more detailed image of your system and your question. May 19, 2019 at 10:40
  • I set a crowd sensing task for temperature collection, post having data sufficient from that contract. I offer this data in a bid for the highest offer. Hope this elaborates the system a little bit more.
    – user51821
    May 19, 2019 at 10:58

2 Answers 2


You can use asymmetric encryption by encrypting the bids (and bidder's real address) with the public key of the owner of the second contract, so only he is able to decrypt them. The bidder could send a bid from different address to hide it, but provide the real one with the encrypted message


var SecretBid = "<Bid value>:<Real bidder address>";

then you encrypt the bid with the owner's address and post the encrypted data to a webpage, which sends the message (server side) to the bids contract. That way all transactions to the bid's contract are from your webpage's address and only the owner of the second contract can retrieve the real bid data

  • Could you kindly further elaborate, I got a little lost after encrypting the bidders bid and address then decrypting it. Could you kindly provide an example?
    – user51821
    May 19, 2019 at 10:56
  • Another related question if I may Is there a way I could not link the data submitted from user in the first contract to them, thus keeping users anonymous? Been thinking on this for a month unfortunately unlucky.
    – user51821
    May 19, 2019 at 11:01
  • check this answer - ethereum.stackexchange.com/questions/61181/… (in the second answer there is library to do this) As for the second question - the address of the sender is always public, but you may hide behind a webpage that sends the bids from it's own address
    – KNK
    May 19, 2019 at 11:19
  • Many thanks for your help okay perfect checking this link out right away. So by hiding behind a webpage that way my address will always be anonymity correct, but if I may ask if many users use the same webpage for submitting different data wont that mean always correlating to the same address of the page?
    – user51821
    May 19, 2019 at 11:29
  • If not too much to ask, is there any references or link to help with this as well. And many many thanks again
    – user51821
    May 19, 2019 at 11:30

I found this resource very helpful:

Anonymity and Bitcoin from the Princeton Bitcoin & Cryptocurrency Course

Some of the concepts port well to Ethereum. If privacy is your main goal, you might look towards a blockchain technology that was designed for that purpose.

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.