codexproof

glossary / Provenance node (the unit)

the atomic unit of the whole system - one small record per evidence event, wrapping the payload with its typed lineage links, data name, and times; the thing canonical bytes serialize, BLAKE3 hashes, and Ed25519 signs.

cidsealingdag
Provenance node - the record that gets named

The record on its way to its name - the node's canonical bytes, hashed whole, so content and lineage share one 32-byte commitment.

Hand-authored SVG for this glossary, 2026. Pipeline stages verified against node.rs (canonical_bytes, line 133) and cid.rs.

Two definitions, precisely, because the word carries both. The STANDARD technical sense: a node is a vertex of a graph - an abstract position defined only by the edges meeting there, with no claim about content, size, or bytes (the same sense as nodes of a tree or a linked list; in networking the word can even mean a whole machine). The OPERATIONAL sense in this system: THE node is a concrete serialized object - the provenance record whose exact bytes canonical_bytes lays out, BLAKE3 names, and Ed25519 signs; hundreds of bytes, countable, priceable. The bridge between the senses: the operational record is the OCCUPANT of the graph-theoretic position - the vertex is the role, the record is the thing filling it. Every number in the paper (about 27 microseconds per node, 638 to 781 bytes per node, per million sealed nodes) counts operational records, never abstract vertices.

Etymology and backstory

"node" is graph vocabulary (Latin nodus, a knot), but the working analogy is git's commit object: a blob is content, a commit is the record holding the content reference, the parent pointers, the author, and the time - and the hash everyone quotes is the commit's. Provenance nodes are commits, not blobs. The idea of hashing the record rather than the bare content is what makes commitments recursive: each parent's cid was computed over its own links, so one cid pins the entire ancestor subtree.

Ecosystem

git commits, Merkle DAG nodes in IPLD, transparency-log entries - everywhere a system wants one hash to vouch for content AND history at once.

In codexproof

the abstract's own taxonomy of what becomes a node - each evidence unit (a chunk as served), tool result, and answer, plus connecting activities like an interrogation. The payload rides inside the canonical bytes (the eval's BLAKE3 cost grows with canonical length across 128 B to 4 KB payloads), so the cid commits to content and declared lineage inseparably. Attribution travels in the SignedNode wrapper (signer field plus cert chain), not as a graph node. "Per million sealed nodes" means per million of these records.

"A node is a git commit for evidence - hash the record, not the bare bytes, and one 32-byte name pins the content and every ancestor behind it."
References: the paper's evidence-object section; Merkle (1979) for recursive commitment; git's object model as the ancestral design.

All terms · Questions & answers · The verifier