Makoto
Menu
The provenance casebook

Data provenance fails in familiar, expensive ways.

These are cases in which data left its source and someone later needed to prove what happened. Each case names the evidence Makoto needs to carry and the decision a receiver can make with it.

Featured case · independent handoff

Can the receiver verify the story without trusting the producer’s system?

A producer creates source data, signs its origin, normalizes it, produces a public-safe derivative, and signs the handoff. The receiver starts with its own schemas and signer policy, reconstructs the graph, and hashes the bytes it actually received.

Run the full producer-to-receiver proof →

  1. 01
    SourceBind collection claims to exact source bytes.
  2. 02
    TransformPoint each step to its exact predecessor.
  3. 03
    HandoffSign roots, profiles, and the final artifact.
  4. 04
    VerifyApply receiver-owned policy and re-hash the data.

Six ways the history gets lost

  1. 01

    Poisoned pipeline

    A corrupted sensor file carries impossible readings, duplicate rows, and a malicious payload into downstream tables. Predecessor links expose the blast radius and the signed claims that admitted it.

    Open case →
  2. 02

    Scientific reproducibility

    A paper cites experiment.csv, but the outlier removal, normalization, and original source have disappeared with the people who ran them. The lineage graph preserves a path back to the result.

    Open case →
  3. 03

    Dataset release

    A release includes the data but not the evidence. Attach signed origin, transformation, and digest records so consumers can inspect exactly what shipped.

    Open case →
  4. 04

    Configuration postmortem

    Throughput falls after a weekend change made by a service account. A transformation claim records the configuration, code identity, executor, and affected artifact at the time of the run.

    Open case →
  5. 05

    AI dataset gate

    A plausible label has been poisoned. The model builder refuses data unless its source, processing steps, authorized attesters, required profiles, and final bytes verify.

    Open case →
  6. 06

    Invisible Unicode

    Signatures and hashes prove the hidden characters were not altered; they do not make the characters safe. A profile requires an explicit analysis and a normalization or rejection decision.

    Open case →

The evidence patterns inside those cases

PatternWhat it recordsWhy it matters
Origin statementSource identity, collection method, acquisition time, governing claims, and the source artifact digest.Every lineage graph has a defensible beginning.
Transformation statementInput statement and artifact digests, output digest, transformation identity, code reference, parameters, and executor claims.Each step can be checked without editing the step before it.
Stream windowA bounded time or offset range, partition identity, record count, and a digest or Merkle root for that window.Streaming systems can attest to stable windows instead of pretending the stream is one static file.
Bundle and handoffThe statement graph, required profiles, roots, final artifact, and completeness claims selected for transfer.The receiver knows what evidence was intentionally delivered and what it must resolve.
Signed envelopeThe exact statement payload plus one or more DSSE signatures.Content tampering becomes detectable, while authorization remains a receiver policy decision.
Dataset study · SQuAD

Unknown is better than invented.

The retained SQuAD record is useful because it shows what a provenance tool must not do. The public dataset has a familiar source and a final artifact, but intermediate hashes were not published and no third party attested to bias, quality, or regulatory claims.

Those absences belong in the record. Makoto can distinguish signed evidence from reconstructed narrative; it cannot retroactively create proof that the source pipeline never emitted.

Inspect the SQuAD record · Use the dataset analysis prompt

Add the case your team actually has

A useful example names the producer, recipient, bytes, transformation graph, trust policy, and failure that must close the gate.

Bring the handoff your data team struggles with. A good contribution can be a narrative, a schema profile, a failing fixture, a receiver policy, or a tested implementation.