OceanAltOceanAlt
latest2026-07-208 min read

Attack Lab #6: Pinning the Audit Fingerprint into Bitcoin — Undeniable Even to Us and GitHub

Episode 5 admitted GitHub is still a company we hold an account with. This one pins the audit chain tip into Bitcoin via OpenTimestamps: free, no private key, no gas. To rewrite audit history undetected you'd have to rewrite our database, GitHub's records, and Bitcoin — the last of which no one can do. Honest limit: a timestamp proves existence and immutability, not correctness; the anchoring interval is the tamper window. Six episodes; we broke ourselves five times, all in public.

OOceanAlt Editorial

Attack Lab · Episode 6. Episode 5 ended with an admission: GitHub is still a company we hold an account with. To make the fingerprint undeniable even to us and GitHub, we had to pin it to a <b>public chain no one can rewrite</b>. This episode pins it — via OpenTimestamps, anchored to Bitcoin. Free, no private key, no gas.

The ladder: pushing "can't hide it" outward, one rung at a time

Across three episodes we hardened the same thing — can an audit record be quietly altered — in three stages:

| Layer | How | To rewrite history undetected, you'd have to… | |---|---|---| | ① DB hash chain (Ep4) | each entry embeds the previous entry's hash | rewrite the whole tail (but the fingerprint lived only in our DB) | | ② External witness (Ep5) | GitHub records the tip once a day | compromise our database and GitHub's records | | ③ Public-chain anchor (this ep) | pin the fingerprint into Bitcoin | also rewrite Bitcoin — which no one can do |

Each rung outward raises the cost of silent tampering by a level — from "click delete" up to, finally, "more than anyone can afford."

This episode: pin the fingerprint into Bitcoin

The audit chain's tip is itself a sha256 (a "group photo" of the whole log at this instant). We submit it to OpenTimestamps: it aggregates thousands of such fingerprints into a Merkle tree and writes the root into a Bitcoin transaction. We get back an .ots proof that makes one claim anyone can check independently:

"This fingerprint existed before a certain Bitcoin block."

Real result (live):

audit chain tip: 9eb3d0a2a5d0317b1c2f025635a96366137b2cfee98562502cb6cc80363f2a33
submitted to 4 Bitcoin calendar servers (opentimestamps / eternitywall / catallaxy)
status: submitted, pending Bitcoin confirmation (upgrades to a permanent proof in ~hours)
proof: exposed at /api/audit-anchor, independently verifiable

Free, no private key, no gas — because thousands of fingerprints share the cost of one Bitcoin transaction. To verify, you don't have to trust OceanAlt, and you don't have to trust GitHub — only Bitcoin.

Now, to rewrite our audit history undetected, an attacker must do three things at once: rewrite our Neon database, rewrite GitHub's records, and rewrite Bitcoin. The first two are hard. The third is impossible.

Why this is the "final rung" (and why it isn't a silver bullet)

As always, we state plainly what it does not do:

  1. A timestamp proves existence and immutability, not correctness of content. What it locks: at time T our ledger's fingerprint was X; if we later alter the ledger, the new fingerprint won't match the anchored X → caught. It does not guarantee the records behind X were right to begin with — it guarantees that from the moment of anchoring, any change can't hide.
  2. Anchoring has an interval; the tamper window equals it. We anchor daily, so the longest window in which something could be silently changed is one day. Shorter interval = shorter window.
  3. Bitcoin confirmation takes time. ~hours to land in a block; until then the proof is backed by the calendars' commitment, upgradeable to a full Bitcoin proof.
  4. This is timestamping, not "putting our data on-chain for the whole network to reach consensus on." It makes tampering detectable and undeniable, not physically impossible.

We're not pretending it's a silver bullet. It's the last rung of the ladder — and an honest ladder is worth more than an inflated promise.

Six episodes; we broke ourselves five times

Blocked six → missed cumulative limits → the attribution foundation was empty → the log could be erased → the payment could be replayed → the evidence could be denied. In six episodes, we broke our own gateway five times, and published every one.

These aren't our six ugliest pages; they're our six most convincing. Because in this field anyone can claim to be secure, and the claim costs nothing; only those who publish the process of breaking themselves deserve to be believed. A standard's credibility doesn't come from how complete it claims to be — it comes from whether its authors publish the results when they break it themselves. Six times running.

Next episode

We'll go back and audit the real on-chain settlement path itself (the authenticated tier) for its own replay / reconciliation edges; and turn the public-chain anchor into a daily cadence anyone can watch.

See the fingerprint and Bitcoin proof: /api/audit-anchor · Attack it yourself: oceanalt.com/firewall · Test with your own agent: integration guide

(OceanAlt Attack Lab · research note)

Provenance & status

Byline
OceanAlt Editorial
First published
2026-07-20
Last updated
2026-08-14
Source material
Source not labeled

Cite this piece

OceanAlt Editorial (2026). "Attack Lab #6: Pinning the Audit Fingerprint into Bitcoin — Undeniable Even to Us and GitHub". OceanAlt. https://oceanalt.com/en/articles/attack-lab-6-anchored-to-bitcoin (accessed 2026-09-17)

This piece follows our editorial and fact-checking standards. Found an error? tell us — once verified, the correction will be published right here.

TRY IT · FREE, NO SIGNUP

Paste a payee address before you pay and see whether it's on a sanctions list, through a mixer, or tagged for fraud.

This judgement can sit inside your own product

One line of code; it touches neither your CSS nor your JS. The same pre-settlement judgement can appear in your articles, on your wallet's confirmation screen, or as an endpoint your agent calls before it pays.

The widget collects no reader identity. Integrating does not mean OceanAlt endorses your product, or any address on your page.