Po.et uses the
OP_RETURN Bitcoin opcode to store a reference to batched claims. Any
OP_RETURN data that begins with
POET is assumed to be a
POET protocol header, we specify a version using the next 2 bytes. The next byte is a protocol enum (0 = IPFS), followed by the data hash:
Poet protocol version prototol data hash POET 00 0 QmX2ZjoWkcK13XYyuXQmXhKxs6btTtg8D4nPdM8ubJE8mR
Up to 40 bytes of arbitrary data can be added to a Bitcoin transaction output using the op code OP_RETURN.
Anchoring data to the Bitcoin blockchain works by adding the hash of said data to the OP_RETURN output.
We are using IPFS to store files submitted by users. IPFS addresses files by their hash. We consolidate multiple files in IPFS into a single IPFS directory.
We store the IPFS directory hash in the Bitcoin transaction output, which serves as cryptographic proof of the existence of the data at a given point in time, and as a link to the full files that can be downloaded from IPFS.