SHORE · the backup that proves it restores

Having a backup is not proving it restores.

Most backups are only tested on the day of the disaster. SHORE records at the source the list of what must come back, with a fingerprint of every file. Then it actually restores and checks item by item, against that list.

Specimen · 322 real files (236 MB), three situations
  1. List at the source: path and fingerprint of every file, kept outside the backup
  2. The tool checks whether the repository is consistent with itself
  3. SHORE actually restores into a temporary folder
  4. Checks file by file against the source list
  5. Writes the result to the journal, and seals it in GIRDER
The backup tool checks its own repository…
SHORE restores and checks against the source list…
—files checked
—missing
—proof time
—exit (0 = ok)

Numbers from the 18 Jul 2026 measurement, using the restic 0.19.1 backup tool on a real repository of 322 files. In the third situation the proof was the sampled one (40 randomly chosen files); the tool's own check was not run, and its full version would also have caught it.

In everyday terms

Moving house with the list written at the old place.

When you move, the removal company assures you: "truck sealed, seal intact, no problems". True, and it says nothing about your TV. They check their own truck, not your house.

To know whether the TV arrived, there is only one way: write the list at the old house, before leaving, and check item by item at the new one. And the list cannot travel inside the truck, or whoever lost the TV can also "fix" the list.

SHORE does exactly this with backups. Backup tools check whether the repository is consistent with itself. SHORE checks something else: whether what went in is what comes out.

old housethe list, before leaving☐ sofa☐ TV☐ books☐ fridgeseal ok✓“no errors”new housechecking✓ sofa✗ TV✓ books✓ fridgethe TV is missing
An intact seal proves nobody tampered with the truck. It does not prove the TV was loaded.
How it works

One list at the source and two proofs.

The list: on every backup, SHORE records at the source the path, size and fingerprint of every file the contract says must be kept. The list lives outside the backup repository.

The full proof actually restores everything into a temporary folder and checks file by file. It is the gold proof, run weekly or monthly. The sampled proof picks a few files at random (any auditor can redo the draw from the date and the backup), restores and checks them in about a second. It is the daily proof.

Every proof becomes a line in a permanent journal, which can be sealed in GIRDER. The question almost no company can answer, "when did our backup last provably restore?", becomes a lookup.

For databases, the fingerprint is per table: the row count plus a fingerprint of the content in a fixed order. That way the proof climbs the ladder up to the business rules.

1 · the backup opens2 · the repository is consistent3 · matches the source list4 · returns to the agreed moment5 · business rules add upsteps 1–2: the usual tool check3–5: what SHORE proves
Each step is a proof, not an assumption. Backup tools usually stop at the second one.
What we measured

"No errors were found." 138 files were missing.

On 18 July 2026 we ran SHORE against a real repository of 322 files and 236 MB, using restic, a widely used backup tool. On the healthy backup, the full proof restored all 322 in 1.3 seconds (the sampled one, in 0.8 s).

Then we simulated the most common real-world accident: someone "optimises" the backup with an exclude rule ("that folder is just cache") and it swallows 138 files, including the evidence packages. The backup runs, the snapshot is saved, and the tool's check replies "no errors were found". It is right: the repository is perfect. It is just empty of what mattered. SHORE rejected it, naming every missing file.

Finally, we flipped one byte in 8 storage blocks (141 MB). The sampled proof rejected it on the first run.

SituationTool checkSHORE proofIn practice
Healthy backup✓ no errors✓ 322/322 in 1.3 sthe proof costs seconds, so it can run every day
Wrong exclude rule✓ "no errors were found"✗ 184/322, 138 missingthe "successful" backup that did not keep the contract; only SHORE catches it
One bad byte in 8 blocksnot run (the full version would catch it)✗ 0/40 in the samplerotten storage does not pass silently

We also measured the first step for databases, on a test Postgres: a fingerprint per table, steps 1, 3 and 5 of the ladder, and two attacks (a deleted row and a renamed table) caught only by the fingerprint.

Where to use it

When continuity is an obligation.

A good fit

  • Anyone obliged to stay up: banks, health, regulated sectors. The difference between "we think it restores" and "we proved it restores" is the product.
  • Contracts with recovery targets: how much data you may lose and how fast you must be back are already in the contract; SHORE measures against them.
  • Audit: the auditor does not need to trust the journal; they redo the draw and rerun the proof.
  • With the family: every proof becomes a signed line in GIRDER, with time proven by PLUMB.

Not enough on its own

  • Garbage in, garbage recorded: if ransomware damaged the source before the backup, the list records the damage.
  • The sample may miss the problem: a small corruption in a block not drawn passes the sampled proof. That is why the periodic full proof exists.
  • The list must live outside: if it sits inside the repository, whoever sabotages the backup also edits the list.
Three words on this page
Source list

What must come back, recorded before the backup: path, size and fingerprint of every file.

Full and sampled proof

The full one restores everything and checks; the sampled one checks a few random files, in seconds, every day.

Recovery target

How much data the company can afford to lose and how fast it must be back. Usually already in the contract.

Limits

Where this could be wrong.

One measured repository

The measurement was on one real repository of 322 files and one test database. It shows the mechanism; scale and variety of systems are not yet measured.

The sample is probabilistic

It catches corruption with a chance proportional to the share affected. Guaranteeing every file is proven every N runs is the next step.

The tool would also catch the byte

In the bad-byte case, restic's full check would also catch it. SHORE's edge is the wrong exclude rule and the continuous journal.

It does not protect the source

SHORE proves that what left comes back. If the source was already damaged, it proves the damage came back.

See also

← Certified telemetry · stickybit.com.br

Sources