node icon indicating copy to clipboard operation
node copied to clipboard

Timestamp Receipts — Add Timestamp to Anchor

Open lautarodragan opened this issue 6 years ago • 8 comments

We need to support Timestamp Receipts.

RDD: https://github.com/poetapp/documentation/blob/master/rdd/timestamp-receipts.md

Implementation TBD. Could be implemented in poet-node, as well as a separate project. Could run as a script, functions or an API.

lautarodragan avatar Jun 24 '18 07:06 lautarodragan

@lautarodragan I agree with your recommendation. I am putting this in the Mainnet-beta milestone; let me know if you think it should be pushed back into a later release.

geoffturk avatar Jun 25 '18 09:06 geoffturk

@lautarodragan @kennylavender Has this task been covered with the recent claim batch work you completed? I read the links in the description at the top and it seems that it has been achieved, but want to double-check this with you before we consider this task closed.

geoffturk avatar Aug 08 '18 16:08 geoffturk

@geoffturk I don’t think so. We still need to address this.

lautarodragan avatar Aug 08 '18 19:08 lautarodragan

Timestamp Receipts are used to verify that a given set of data existed at a point in time by checking the hash of the set of data against a blockchain block.

If we store a hash of the work in a work claim, and that claim is part of a batch, and that batch is hashed on the Bitcoin blockchain (IPFS directory hash is a merkle root of the directory content hashes) -- is that not all the proof we need?

A chainpoint receipt as a JSON-LD document that contains everything you need to prove that a given hash is part of the merkle tree that was hashed to the blockchain, but do we need to provide chainpoint-style receipts?

IMO, they're maybe useful for offline validation of certificates, but wouldn't you still need to confirm that the hash in question is indeed part of a blockchain block? So is there really such thing as true offline validation?

All we really need is to include a deterministically reproducible hash of the contents we want to anchor in a claim. To verify that anchor is valid for a given document:

  1. Hash the file using the deterministic hashing algorithm.
  2. Locate the file on Po.et explorer by the hash. (If you find it, you know the hash matches the file you're searching for).
  3. Pick up the block id from the Po.et explorer.
  4. Make sure that block hash actually exists on the Bitcoin blockchain.

By following those steps, anybody can independently verify with cryptographic proof that the file and corresponding claim existed at the time the Bitcoin block was mined.

ericelliott avatar Aug 08 '18 22:08 ericelliott

@ericelliott that's what I call Solution 1, but it has some complications as stated above.

lautarodragan avatar Aug 09 '18 03:08 lautarodragan

Fine to leave in here for now, but not actively going to do anything here until Q1.

wdavidturner avatar Nov 12 '18 16:11 wdavidturner

OK. Potential candidate for PML2 milestone when we start it.

geoffturk avatar Nov 21 '18 09:11 geoffturk

Moving to planned, priority tbd with @wdavidturner

lautarodragan avatar Jan 08 '19 15:01 lautarodragan