The process of timestamping documents at OriginStamp is quite simple. The model relies on traditional decentralized blockchain technology and therefore uses concepts such as hashing, Mercle Trees, private keys, etc. In this section, we will explain the process of generating timestamps by using the Bitcoin blockchain.
The file whose existence and modification time we need to timestamp must be first made available in the proper digital format. For example, this can be anything starting from a PDF scan, a text file, a digital photo, a video, etc.
To submit the timestamp for this digital format to a blockchain network like Bitcoin, we must first create a cryptographic hash of that file. The OriginStamp platform can create such a hash locally on its client. To ensure the confidentiality of a file, the client will only send the SHA-256-based hash as it is impossible to determine the input of such a file. Additionally, we save on the file size as SHA-256 hashing is limited to 32 bytes. Therefore, we make sure that even larger files produce a relatively small fingerprint.
After producing both the fingerprint and timestamp of the digital document, we have to submit it to the blockchain network. However, we would clog up the Bitcoin network if we were to send the data immediately after creating it. To prevent that, OriginStamp creates a single transaction for all of the hashes submitted in a 24-hour period. This is made possible with the help a Merkle Tree, which allows hashes to be efficiently combined. More than network congestion, this process also helps with increasing the economic efficiency of submitting timestamps.
Submitting individual hashes on your own would be highly costly, especially if you were to do so at a high frequency. A single Bitcoin transaction fee costs anywhere between $1 to $3 at the time of writing. In periods of high network congestion, these fees can reach astronomical levels. For example, a single transaction cost $55 at one point in December 2017. Therefore, it would be highly inefficient to send hashes on your own and especially to submit them individually. OriginStamp can simply process a high number of requests and send them in one go every 24 hours to lower the costs not only of the user but of the overall blockchain network as well.
To finally create the timestamps, OriginStamp uses the root hash of the Merkle Tree as a private key to create an uncompressed Bitcoin address to which the data will be sent in the form of a dust payment. Considering that it is highly unlikely that the final address was already used for a previous payment, we can acknowledge the time of the addresses’ first payment as the time of the newly created timestamp. This way, we can use this as proof of existence for the private key at the time. Finally, after the new transaction is confirmed by miners after six blocks, the process will be finally completed.