Consider the following scenario

User A stores an image on a DHT and receives a SHA-256 hash in return.

User A wants to prove ownership of the data has, so he registers a username on the namecoin blockchain and receives a public-private key pair in return.

User B want proof that user A owns the DHT hash.

2 Questions

  1. How does User A 'sign' the DHT hash with his namecoin private key?
  2. How does User B get proof that User A signed the DHT hash with their namecoin private key?
  • How do you prevent people from claiming ownership of hashes of data that they don't own? – Nick ODell Feb 27 '15 at 8:24
  • by signing it with your namecoin private key – guestdude Feb 27 '15 at 8:46
  • But anyone who has the hash can sign it. For example, following the exchange you describe, User B has a copy of the hash (he had to, in order to verify the signature), and now he can sign it himself and try to convince some User C that the data actually "belongs" to him. – Nate Eldredge Feb 27 '15 at 14:48
  • The only way you can do something like this is if you keep the data AND sha256 secret. You could maybe make the sha256 into the private key for the secp256k1 curve and only publish the public key (output point on the curve). Then you can prove that you own the data that hashes to the private key by signing with it. Of course, once you actually reveal the data, everything is now known to the world, so I'm not sure what you'd accomplish. In any case, the objections above hold. Unless you keep the hash secret, your scheme won't work. – Jimmy Song Feb 27 '15 at 16:52