Puneet Varma (Editor)

Proof of Existence

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

Proof of Existence is an online service that verifies the existence of computer files as of a specific time via timestamped transactions in the bitcoin blockchain.

Contents

It was launched in 2013 as an open source project. It was developed by Manuel Araoz and Esteban Ordano.

Reception

On May 24, 2013 reporter Jeremy Kirk from IDG News Service wrote that "It's essentially a notary public service on the Internet, an inexpensive way of using Bitcoin's distributed computing power to allow people to verify that a document existed at a certain point in time." On April 22, 2014 reporter Rob Wile from Business Insider wrote that it is "Perhaps the most straightforward example of a post-Bitcoin service using Satoshi's blockchain". On May 8, 2014 reporter Daniel Cawrey from CoinDesk wrote that the service "is an example of how the power of this new technology can have applications far beyond the world of finance, in this case, giving a glimpse of how bitcoin could one day have a substantial impact in the fields of intellectual property and law." In her 2015 book Blockchain: Blueprint for a New Economy from O'Reilly Media, author Melanie Swan wrote it was "One of the first services to offer blockchain attestation".

Service

The service enters a sha256 cryptographic hash of a document into the blockchain.

The service costs 5 mBTC per use. As of this writing (2016-12-24; This wasn't always the service's behavior.), each use of the service creates 2 transaction outputs. One of them holds the identifier 0x444f4350524f4f4 (which is 'DOCPROOF' when converted to UTF-8 / ASCII) with the sha256sum of the document whose existence at the time of admission of the transaction into the blockchain is proven appended. This transaction output is provably unspendable because it's marked as such via an OP_RETURN at the beginning of the output script and doesn't hold any value. The other transaction output holds 4.9 mBTC and pays the service's operators. 0.1 mBTC is paid as a fee to the miner admitting the transaction into the blockchain.

To verify the existence of a document at the contended time, one proceeds as follows:

  1. Calculate the sha256sum σ of the document.
  2. Search the blockchain for an output script containing 0x444f4350524f4f4 . σ where the period is the concatenation operator. When searching for many documents, the process is sped up by first restricting the search space to transactions containing an OP_RETURN output script and 0x444f4350524f4f4 in it.
  3. If the block time minus the block time variation is at most the time the document is claimed to have existed, the claim is valid.

Note that the block time of each block may be slightly inaccurate as it "is accepted as valid if it is greater than the median timestamp of previous 11 blocks, and less than the network-adjusted time + 2 hours". However, a more accurate time can be calculated from the surrounding blocks if increased precision is necessary.

References

Proof of Existence Wikipedia