“Are these the same bytes?”
A digest can identify an exact artifact and expose a one-byte change. It cannot explain where the artifact came from, why it changed, which input preceded it, or who attested to that history.
Data does not stay where it was created. It is copied, reshaped, retained, shared, and forgotten. Without portable lineage, every move separates the bytes from the evidence needed to trust, reproduce, govern, or safely delete them.
It lands in object storage, gets picked up into a warehouse, gets denormalized into three marts because three teams wanted different grain, gets a feature-store copy for the model, gets a nightly backup with a 90-day cycle, gets replicated to a second region for durability, gets pulled into a vendor's SaaS for enrichment, and gets exported once into a notebook by an analyst who left in March.
Call that eight to ten locations, and I am being conservative, because I have not counted the CI fixture somebody generated from prod or the Slack thread with the screenshot.
CI fixture from production and Slack screenshot: copies that may exist without a system of record, an active owner, or a deletion path.
Incident response
Without predecessor links, responders must reconstruct the blast radius from job logs, storage listings, and institutional memory.
Deletion
A source deletion does not remove warehouse rows, backups, vendor copies, model features, or forgotten analyst exports.
Reproducibility
A table name or notebook path cannot prove the precise input, transformations, schema rules, and code identity used at the time.
Custody
System identity, signer authorization, and organizational responsibility are separate questions. All three matter at a handoff.
Retention
A 90-day rule attached to the source is ineffective if downstream copies lose that context or silently adopt different controls.
Change
Normalization, filtering, enrichment, redaction, and even newline conversion can produce meaningfully different artifacts.
A digest can identify an exact artifact and expose a one-byte change. It cannot explain where the artifact came from, why it changed, which input preceded it, or who attested to that history.
Lineage connects exact artifacts to origin claims, a hash-linked transformation graph, participating systems, and accountable attesters. Digests make those connections tamper-evident.
Makoto begins at the source, then adds immutable signed statements as participating systems transform or hand off the data. The receiver evaluates the resulting evidence under its own trust policy.
Bind the origin claim to the exact bytes that were collected.
Each transformation points to exact predecessor statements and artifacts instead of editing history in place.
Signatures prove control of keys; the receiver separately decides whether those keys were authorized for each claim.
The receiver validates schemas, graph continuity, signer policy, signed completeness, and the final artifact digest.
The runnable walkthrough creates source data, signs its origin, applies two transformations, signs the handoff, and verifies the graph and final bytes as an independent receiver.