Timestamp Service
Overview
A timestamp service is one where a user submits some data (or a hash of some data) and gets back a document that proves the data existed at that time.
Traditionally this was done by Trusted Timestamp services. These would sign the data with their keys and return a signed and dated document.
This depended on the trusthwothiness, security and impartiality of the service provider in addition to regular public key infrastructure PKI.
In the blockchain world, we like to ask "Do we really need to trust someone for this? Can we make it trustless?"
The answer is of course, yes, we can. We can take some data and embed it into a transaction that gets folded into the next block in a chain. This is not new, we've been doing this since nearly the start of Bitcoin. Example from myself: Bitcoin Timestamp
However, this means making transactions on the public ledger, which are not cheap. Merkle Trees to the rescue. We can take a bunch of data we want to timestamp, combine it all using a merkle tree and embed that single result in the blockchain. That is the purpose of this project, to be able to make cheap blockchain based timestamps.
API
The API is simple. One call that provides the data to include and the result is some transaction ID for the timestamp. Then some time later, the user can call again with the transaction ID and get the entire proof.
Design
Version Plan
- v1 - Basic operation backed by Snowblossom (done as of 2024.03.04)
- v2 - Recursive operation (a timestamp service can use another timestamp service as its backing)
- v3 - Other chains (Bitcoin, Bitcoin Cash, Ethereum)