Content addressing & PieceCID
Why a piece’s identity is derived from its bytes, and what that guarantees.
Each stored piece is identified by a PieceCID, an identifier derived from the piece's own bytes. Change a single bit and the PieceCID changes. This is what turns a possession proof into an integrity proof.
A Merkle commitment, not a label
A PieceCID is not an arbitrary name assigned to a file. It is a Merkle
commitment computed over the piece using the same algorithm the Filecoin tools
and the on-chain verifier use
(fr32-sha2-256-trunc254-padded-binary-tree). Because the identifier is a
cryptographic commitment to the content, it is infeasible to produce different
bytes that share the same PieceCID.
Why this matters
Possession proof = integrity proof
Because a piece is addressed by a commitment to its bytes, a valid proof that a provider still holds the piece at that PieceCID is also proof that the bytes are bit-identical to what you stored. There is no need for a separate file-comparison or checksum step; the content address already carries that guarantee.
The PieceCID is computed over the stored (encrypted) piece. So a valid proof attests that the encrypted bytes are intact; combined with the key held for your master, the master you restore is therefore bit-identical to the one you uploaded.
This is also the anchor for independent verification: the PieceCID shown in your dashboard and certificate is exactly what the on-chain proofs are taken against, so anyone can re-check them. See Verify it yourself.