Also called: audit path, Merkle proof
In plain words
An inclusion proof, also called an audit path, lets you confirm that one item is in a large Merkle tree without downloading the tree. You start from the item's hash and combine it with each sibling hash in the proof, one level at a time. If you arrive at the published root, the item is in the tree at that position. The proof is tiny: about log₂(n) hashes.
How QED Proof uses it
A receipt's proof member carries everything needed:
"proof": {
"log_id": "…", "leaf_index": 88213, "tree_size": 88240,
"root_hash": "…", "inclusion": ["…", "…"],
"anchor": { "chain": "eip155:…", "scheme": "eas", "uid": "0x…", "tx_hash": "0x…", "tree_size": 88240 }
}
The checker recomputes the receipt's leaf_hash, runs RFC 6962 audit-path verification with leaf_index, tree_size and inclusion, and must get exactly root_hash. It then checks that root against the on-chain anchor.
This is what stops an issuer from showing you a receipt that was never in the log, or quietly issuing a second, conflicting one.
Example
The open-source checker prints inclusion ✓ leaf 8 of 9 when the audit path reconstructs the anchored root, and fails loudly on a bad path, which is one of the spec's test vectors.