I do my first steps in blockchain development and I have a questions about storing some sensitive data on a chain.

Assuming two companies developed the protocol of document exchange through Blockchain. They don't want to give access to their information to anybody except themselves.

Ok, I think they can choose between two possibilities:
1) Content of docs is encoded cryptographically. The result is recorded on Blockchain directly.
Pro: companies must not maintain their own DB's for storing docs.
Contra: maybe it is expensive to store big data on blockchain; (the main) if verification key of a counterparty is stolen then malefactor get access to all documents since nobody can remove data from blockchain.
2) Counterparties can record on a chain hash result of docs' content only.
Pro: It is more safely.
Contra: In this scenario it is impossible to create completely decentralized db since every must maintain the needed data by oneself to get whole content of docs.

Do best practices exist for storing sensitive information on Blockchain?


1 Answer 1


Usually hashes are what's stored in the blockchain, not the data itself. It's safe to store hashes because it's extremely difficult to reconstruct a message given its hash (the so-called pre-image attack).

  • 3
    Salt it first! If you post a hash of your SSN to the blockchain, it takes me less than an hour to bruteforce that on a modern GPU. Make my job harder by prepending 32 random bytes to your data.
    – Nick ODell
    Nov 2, 2016 at 4:12

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