There's a ton of super technical articles out there published about this, but I cannot understand them because I don't have a PHD in cryptography. So then, put simply, can I or can I not have smart contracts process and run queries on encrypted data? if the answer is no, then, does there exist some milestone of development in the near future at which point we will able to query encrypted data on ethereum? perhaps via IPFS integration?

2 Answers 2


If I understand your question correctly, what you are referring to is called secure multi-party computation which is not a current capability of smart contracts. In fact, it's a challenging problem that is probably best done off the blockchain as it can be computationally intensive. I'd recommend looking at MIT's enigma and openPDS projects for starters.

I've not seen any planned milestones for this capability in Ethereum.


The short answer is no. There's a term for computing on encrypted data: homomorphic encryption. This is currently not usable for regular applications. If it were possible it would have huge positive implications for security.

The idea of homomorphic encryption is the ability to carry out computation on ciphertext, so that the result when decrypted would be the same if the computation were carried out on plaintext. Most security vulnerabilities in encrypted systems is when you want to actually do something with it- like write to a document or query a database.

At the moment homomorphic encryption is technically possible but extremely inefficient- with present version a Google search (encrypted search term of encrypted web index) would take over a trillion times longer than normal. In terms of Ethereum I'd say homomorphic encryption is as much an opportunity as quantum computing is a threat. It might be in a few years, but not now. Best look at other schemes.

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.