Fossilizer
A fossilizer takes arbitrary data and provides an externally-verifiable proof of existence for that data. It also provides a relative ordering of the events that produced fossilized data.
For example, a naive Bitcoin fossilizer could hash the given data and include it in a Bitcoin transaction. Since the Bitcoin blockchain is immutable, it provides a record that the data existed at block N.
See the Go documentation here.
Available fossilizer implementations
We offer several implementations using different kinds of proofs. You can directly use them as a library or use one of our docker images.
Bitcoin Fossilizer
This implementation uses the Bitcoin blockchain to store merkle roots.
It collects data in a merkle tree during a configurable interval
, after which
it computes a merkle root and sends that value to the Bitcoin blockchain.
It produces a proof containing the transaction ID and a merkle path.
Note: you need to provide a WIF with enough satoshis to send transactions to the blockchain.
Dummy Fossilizer
This implementation simply creates a timestamp of the request. It doesn't offer any kind of cryptographic proof and should only be used when prototyping.
Dummy Batch Fossilizer
This implementation batches incoming requests in a merkle tree and asynchronously creates a timestamp for the tree root. It doesn't offer any kind of cryptographic proof and should only be used when prototyping with batch systems.