Build1 distinct publisher3 min readPublished
An escrow design moves verification ahead of the write, which turns reversibility into an eligibility test for tools, and the author's own census of public MCP servers says most write-capable ones fail it.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
The reason the ordering is forced sits in the identity scheme, not in anyone's threat model. Canonical identity here is a projection: take the space of concrete presentations of a value, encodings and field ordering included, and quotient it by canonicalisation equivalence [6]. The map is surjective and not injective, so it has no left inverse, and the bytes do not come back out of the identity [6]. A ledger holding identities alone can prove which value was decided about and cannot produce that value [7]. So the inverse material has to be stored separately, before the change lands, or there is nothing in the record to rebuild it from afterwards [7].
In the implementation that second half is not one struct. It is three receipt fields: the canonical identifier of the change, the identifier of the stored inverse delta, and the recorded read set [8]. The author singles out the read set as the field that turns "restorable" into "attributable", and the one most often absent elsewhere [8]. I would check that field first in any comparable system, because a rollback that knows what changed and not what the change was computed from is a guess with good provenance.
The digest details are where interop usually goes wrong. The primary body is canonical DAG-CBOR with a BLAKE3 digest over it, and there is a JSON-compatible route carrying an RFC 8785 digest under SHA-256 that explicitly does not constitute identity [9]. An earlier internal draft had named the identity hash SHA-256; the post prints that correction next to the right answer instead of patching it quietly [10]. Published errata remain rarer than they should be.
The gate returns Admit(proof), Deny(reasons) or Escalate(ticket), three arms and no fourth, and an evaluation that could not be performed is not an arm at all but an error returned outside the verdict type [11]. That is the part worth arguing about. The familiar ALLOW / DENY / UNKNOWN triple merges two different unknowns: evaluated and could not decide is a decision, could not evaluate is the absence of one [12]. If your policy service times out and your gate answers UNKNOWN, you have written an outage into the ledger as a ruling.
Which brings the whole design back to one fraction. The complement of the census share is 86.2% of write-capable tools [1], and under this gate those are refusals rather than reversible writes. The author states the consequence himself: if the production figure sits at or below the census figure, what he has built is mostly a refusal machine, and reversibility as a property degrades into refusal as a property [5]. For the census share to transfer to a private fleet, those write endpoints would have to expose compensating or read-before-write operations at the same rate that public MCP servers do, and the census counted public servers only, at stage one, excluding production deployments [4]. The census is the cheap experiment. It runs against your own tool manifest and costs nothing but a morning.
On the rest of the evidence: the Lean model and the Rust implementation are related by a differential test over conformance vectors, and the author says no refinement theorem exists [13]. Two of seven listed falsifiers are blocked for want of an operator population, four more sit in the paper, and the offline re-verification one is runnable today by pointing the verifier at a frozen receipt corpus with networking off and checking signature, log inclusion and identifier consistency [14][16]. The paper is a forthcoming preprint with no DOI [17]. That is a fair statement of where the work is, which is more than the ordering it replaces usually offers.
Ranked by verification strength, evidence, and original report placement.
The outcome of the gate, refusals included, becomes a signed record that a third party can re-check offline with no trust in the author.
The gate's type is Verdict ::= Admit(proof) | Deny(reasons) | Escalate(ticket), three arms and no fourth; an evaluation that could not be performed is not an arm but an error returned outside the verdict type altogether.
The author argues the usual three-valued ALLOW / DENY / UNKNOWN formulation quietly merges two different unknowns: 'we evaluated and couldn't decide' is a decision, while 'we couldn't evaluate' is the absence of one.
The offline re-verification falsifier is runnable today: point the verifier at a frozen receipt corpus with the network down and check signature, log inclusion and identifier consistency; if a signed receipt cannot be re-checked that way, the provenance layer is a log and not a proof.
An agent that changes something runs in the order decide, act, report; where verification exists it reads what already happened, which is a fine shape for a log but empty as a control, because by the time the check fails the effect is already on disk.
In the described design a proposed change gets a canonical identity, and its inverse is constructed, checked and stored before anything is applied; a gate then rules on it and returns one of three verdicts.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 29, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
The only way to prove a contract test can fail is to ship a server that lies1 distinct publisher
build
A gate that warns and a fan that queues: test the executor, not the card1 distinct publisher
build
Microsoft ships an MIT-licensed agent kernel: policy rings, Ed25519 identity, kill switch1 distinct publisher
build
Signed receipts on MCP tool calls: 20 lines buys you evidence, not trust1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Precise about standards, unverified in every particular that matters
The standards work is named to the section number — DAG-CBOR bodies under BLAKE3, RFC 8785 only for JSON interop, RFC 6962 section 2.1 domain separation with RFC 9162's proof steps — which is the kind of specificity that is hard to fake and easy to check. Nobody has checked it. The 13.8% share exists as a sentence in its author's own post with no method or sample behind it, the 1,500 conformance vectors are counted but not shown, and the one genuinely runnable test, verifying a frozen receipt corpus with the network off, is described rather than performed.
Nobody outside the author has run it
Zero external users, stated by the author without softening, and the census that supplies the headline number deliberately excludes production deployments — it is a survey of public MCP servers, not of anything anyone is operating. The clearest measure of how early this is: two of the seven falsifiers cannot even be attempted, because attempting them requires operators who do not yet exist.
Argues against itself before anyone else can
Most project write-ups bury the number that could sink them; this one leads with it and calls it the most dangerous fact in the project, his and not a critic's. The earlier SHA-256 identity error is printed beside the correct answer instead of edited out, and a past bug that collapsed 'could not measure' into 'measured false' and misreported 18 of 65 items is volunteered as the origin of the verdict design. Set against that restraint, only the title's framing runs slightly ahead of what one unreplicated census can carry.
Builder trailing his own preprint
The sole account of this system is written by the person building it, on a developer platform, ahead of a paper that has no DOI and no publication date — a shape that normally rewards optimism. No funder, employer or customer appears in the reporting, in either direction. What cuts the other way is that the post spends its best-placed paragraphs on the conditions under which the project is uninteresting, which is not how promotion usually reads.
One voice, self-consistent, uncorroborated
The internal claims about the design can be taken at close to face value — an author describing his own type signatures and receipt fields is the right witness for that, and this one flags his own errors. The claims that reach outside the project cannot. The 13.8% share, the fidelity of the Rust code to the Lean model, and whether any of this survives contact with an operator all rest on a single self-published account with nothing yet to check it against.