Your imagination required: How to encrypt a file so that spending an amount of bitcoins is required for the decryption

StackOverflow https://stackoverflow.com/questions/8918845

Question

Bitcoins are an anonymous encrypted digital currency. I got the idea a few months ago to encrypt a file where a spending proof of bitcoins would be required to decrypt the file. When a bitcoin is sent to a given address, it shows back in the block file distributed in the peer-to-peer network. The integrity of the block chain is secured by requiring a large number of computers to perform complex calculation. The proof of this calculation serves as the signature.

Do you think there is a way to encrypt a file in such a way that, the only way to decrypt it would be to supply:

  1. A valid bitcoin block code
  2. This block code has a non-zero amount of bitcoin that was spent to an bitcoin address.
  3. This bitcoin address is unique to the file we wish to decrypt.

The result would be that anyone trying to brute force the file would go financially broke very quickly. Whereas the genuine user would only have to spend a penny to decrypt it.

Was it helpful?

Solution

I do not think this is possible. The nature of the bitcoin network is such that the transactions are public but the parties involved are pseudonymous. This means that by the time the payee learns about the transaction, all other generating nodes know about it as well. The only non-public element in a transaction is the payer's private key, and if you were to use that for the encryption the payee would have to know that key, thus compromising the security of the payer's wallet.

OTHER TIPS

What you want is that there's something unknown (the key) which is shown only if you send some bitcoin to a given address.

Because spending bitcoins doesn't reveal any secret, it is impossible. More: even if it was possible, it would be easily workaround-able by providing to the decryption software a fake bitcoin block-chain. Because the key and the encrypted files will be on the same computer, everything would be possible without paying.

The only valid solution is to use a 3rd party. The problem is then very simple: send the secret key to the 3rd party, which gives you a bitcoin address in exchange and allow the key to be released only when a given amount is sent to the bitcoin address.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top