DEV Community

Jonna Fassbender
Jonna Fassbender

Posted on • Edited on • Originally published at umarise.com

Git history is editable. Here's how to make it externally verifiable.

Your git log says the fix shipped before the incident.
Your CI says the pipeline passed at 14:32.
Your release tag says v2.1.3.

Now prove that to someone who does not trust your systems.

That’s the real problem.

Most engineering evidence is self-issued: git history, CI timestamps, artifact metadata, cloud logs. Useful for operations, weak for disputes. In an audit, incident review, or IP conflict, the investigated system is often also the system providing the timeline.

That is circular.

The practical fix (takes minutes)
Add one independent layer: hash critical outputs and anchor the hash to a public timeline.

Three commands to see the model:

Create your artifact (example): tar -czf build.tar.gz .
Anchor it: npx @umarise/cli anchor build.tar.gz
Verify it later: npx @umarise/cli verify build.tar.gz.proof
Expected verification result looks like this:

✓ Hash Match | Bitcoin Block #941168 | VALID

No source code upload is required for verification. The proof is tied to the hash, and the hash is tied to a public blockchain timestamp.

Why this matters more now
AI and automation increase throughput dramatically. One person can now ship what used to require a team. Great for speed, harder for forensics.

When output volume jumps, questions arrive faster too:

Did this exact build exist before the deadline?
Was this fix deployed before or after the outage?
Did this model checkpoint exist before the external claim?
If your answer depends only on internal logs, you have a trust gap.

Minimal GitHub setup
If you use GitHub, you can automate anchoring on every push via a small workflow using AnchoringTrust/anchor-action@v1 with UMARISE_API_KEY in secrets.
Result: each push produces a proof artifact that can be independently checked later.

(If you prefer CLI-first, you can run the same flow in any CI provider.)

What you get from a proof
A proof gives one precise statement:

These exact bytes existed no later than time T, verifiable by third parties.

Not “our system says so.”
“Check it yourself.”

That shift matters in:

Compliance and regulated delivery
Security incidents and postmortems
IP provenance and publication priority
AI/ML lineage (weights, datasets, evaluation bundles)
“Can’t we just use OpenTimestamps directly?”
Yes, and that’s a valid path.
The tradeoff is operational: proof lifecycle handling, upgrades, retries, and workflow integration across repos.

Same cryptographic foundation. Different operational burden.

Quick self-check for your team
Ask these three questions:

Can we prove when exact bytes existed, outside our own infrastructure?
Can an external party verify that proof without our account or backend?
If our vendor disappeared, would our old proofs still verify?
If one answer is “no,” you have an evidence gap.

Try it on one artifact this week
Pick one output that matters (release tarball, model file, legal PDF, data snapshot) and anchor it.
Don’t start with policy. Start with one verifiable proof.

SDK quickstart: https://umarise.com/developers
Independent verifier: https://verify-anchoring.org
Methodology: https://github.com/Jonna1976/AnchorStack
Live case study: https://umarise.com/case/ai-code-generation

If this category is new to your team, that’s normal.
The goal isn’t complexity. The goal is to stop relying on evidence that only you can issue.

Top comments (0)