9

It's one of the key use cases discussed for blockchain technology, yet I haven't found a tutorial or example of this for Ethereum. Granted I'm a newbie, but could anyone explain the big picture of how to achieve this.

In PKC, what I'd do is I'd sign some piece of data which I want to prove as "mine" with my private key, envelope the signed content using e.g. pkcs7, send that along with the original data to the person/authority whom I want to sign it and let them sign the envelope with their private key. Using the mine and the signer's public key I can prove at any time that the original content was signed by me and the signer.

How would I achieve this using Ethereum?

2

1 Answer 1

6

Edit: Tjaden Hess' answer in the comments below presents a more idomatic variation on the Bitcoin method. Just send a transaction with no ether to the 0x0... address with the hash of your document as the data part of the transaction.

Original Answer:

The easiest way to do this would be to use the Bitcoin method: hash the data you want to prove ownership of and then send a small amount of currency to the resulting address. You could also set up a smart contract if you wanted to make sure all that information gets kept in one place on the blockchain, or if you wanted that ownership information to be intelligible to other smart contracts. Such a contract might look something like this:

contract Notary {
   mapping(bytes32 => address) public owner;
   function notarize(bytes32 hashdata) {
       owner[hashdata] = msg.sender;
   }
}

Such a contract would only need to be deployed once and could then be used by many people besides yourself.

2
  • 3
    You don't actually need to send any currency, you can just send a transaction with the hash as extra data to 0x00000 Apr 21, 2016 at 22:16
  • I didn't know this was possible, although using a hash would limit tge data, surely there is some limit to the amount of unhashed data that could be added?
    – T9b
    Oct 17, 2016 at 11:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.