The Power of Bitcoin: Proof of a Document Existence with the Blockchain


Ever wondered how can you notarize a document without all the government centralization and trusted "authorities"?

Bitcoin is not only a great payment system but also a permanent storage of data.

Because of it's decentralized and distributed nature it's very difficult to shut it down or tamper the data passing through the network.

This allows us to certify any kind of document or text in a cryptographically proven way.

Let's create a scenario, where a logo designer designs a logo for his client. He wants to make sure he's the indisputable author of the creation should authorship issues arise later.

I will use the real scenario with our client.

I and my friend Matus have recently created a logo for my friend's company Bambooska.

To prove that we are indeed creators of the logo we will write a proof to the Bitcoin's blockchain before the logo is handed over to the client.

The proof consists of a timestamp and a cryptographic digest of the logo's source file - in our case a PDF.

For writing the proof to the blockchain we will use a reasonably priced service called Proof of Existence (PoE). The cost of the service is 0.005 BTC per file, which is ~$3.5 as of the date of writing.

Note: If you don't like paying for the service, you may write proofs in the blockchain yourself. You can either do it manually creating a raw transaction with Bitcoin Core wallet and pushing it to the chain or use CryptoGraffiti that will do all the hard work for you.

Create the Proof of Existence

Simply drag and drop your document to the box on the main page.

The page will locally create a sha256 hash of the file and save it to their database. Don't worry, your document isn't uploaded anywhere!

If you're paranoid you may check whether the hash is correct by using "shasum" (available for Unix-like systems only):

shasum -a 256 Bambooska_Final.pdf

In our case it outputs the following:

ac41bc826d4aa013f2a11aa52d48da6630303346276f3a7032e0ec3893d0928a

Great, it matches!

As I said earlier the service is not free so we need to pay the amount of 0.005 BTC plus a small transaction fee.

Either scan the QR code with your mobile wallet or copy and paste the wallet address and send the desired amount.

The payment is recognized immediately. After it's confirmed by the network (usually within 10 minutes) the proof is written to the blockchain permanently!

Now we can send our logo to the client because our file has already been certified.

Note: Make sure to save both the hash and the transaction URL/ID to use it later if needed.

Verify the Proof

In case a dispute arises and somebody wants to claim the authorship to our logo, all we have to do is go to PoE again and "reupload" the same file.

It will show us the same hash as the first time (which anyone holding the logo source file can reproduce), the date and time when the hash was written in the blockchain and the bitcoin transaction details that prove it indeed was written there.

Since we sent our logo after the proof was already created, nobody can provide a genuine proof with an earlier timestamp.

Transaction Verification

To prove that we really made the bitcoin transaction we need to verify a "random" message. This message is cryptographically signed with the wallet address used to send the transaction from.

Note: I'll be using a different wallet address in this example. I paid the transaction with breadwallet which doesn't have the signing feature, nor lets me export the private key. Let's suppose I used Electrum wallet and an address 1DBKaSLXpzGEXSWk1wJLRSAU7qAHhCYXvk

Let the message be:

Whoever unlocks the message has written the Bambooska logo hash in the blockchain

A cryptographic signature of the above message signed with wallet address 1DBKaSLXpzGEXSWk1wJLRSAU7qAHhCYXvk is:

H+M2UEI6GuZ5YbZXq1NYcnOIrZe4fUf0svjoKDiE96axGRuf0fa1VUqd+unbz4QI0adkNx35ui91DhdNyq0V1LA=

Only a person holding the private key of the above wallet address is able to verify the message. Trying to verify it with another key will ultimately fail!

To verify the message:

  1. Open Electrum wallet
  2. In the app menu choose: Tools -> Sign/verify message.
  3. Fill in all the fields and click Verify

Signature is verified, it gives us the necessary proof and the dispute may be closed in our favor.

Do you use the blockchain as a proof of existence system? What are your common uses? Let me know in the comments below.

If you like my post, don't forget to share it with your followers.

You can also support me by donating some bitcoins. Thank you!

Subscribe to our newsletter for weekly thoughts and tutorials. You'll receive a FREE e-book as a bonus!

What do you think?
WE THOUGHT YOU'D LOVE THESE POSTS TOO

Are you tired of political parasites getting in your way of life?

If yes, let us help you out with our EXCLUSIVE newsletter.

SIGN UP NOW... IT'S FREE

Hide your financial assets with Bitcoin and other cryptocurrencies.

Make your communication private using open-source cryptographic tools.

Mitigate the risk of single point of failure in anything you do with decentralized technologies.

Are you intersted? Then become our subscriber, receive exclusive content straight to your inbox + claim your FREE e-book!

* required

JOIN THE #1 SOURCE ON BITCOIN AND DECENTRALIZATION.

Freedom Node is the edge every crypto enthusiast needs to get ahead in this industry. Click that sleek button to learn more about exactly​ what it is we offer.

Learn More

STAY INFORMED WITH OUR NEWSLETTER + GET FREE BONUS!

Your email address is safe with us. We promise!

* required