docs: retract claims the code does not establish; Req 21.19 is two-of-three - #723
Merged
cryptskii merged 1 commit intoAug 25, 2026
Merged
Conversation
…-three Step 2 of the frozen work order. Three modules asserted properties their code cannot support, and a verifier that believes it checked an advance when it checked a signature is the exact failure this subsystem exists to prevent. Each retraction NAMES itself, so a reader who saw the old text can tell the claim was withdrawn rather than merely reworded. settlement_receipt_leaf claimed a griefer "cannot manufacture one without actually paying the input", and that passing verification meant the input was paid and the output taken. Neither holds: trader_public_key, trader_genesis, trader_devid and post_root are all read OUT OF THE RECEIPT, so a pass is a statement the receipt makes about itself. The cheapest tree satisfying the inclusion check has one leaf, and this module's own fixture builds exactly that, so the honest construction and a forgery are byte-identical. No AttA is carried and the authority resolver is never invoked, so an attacker needs no real identity at all. vault_reserve_inclusion correctly diagnosed that an owner signing a digest of its own claim adds authorship rather than solvency, then said its proof "closes that". It does not close it; it moves it up one level, because smt_root is still a value the owner chose. Now says "narrows", and the two self-rooting defects are cross-referenced as symmetric: both sides of the market present self-rooted proofs. What each mechanism DOES still establish is stated in both cases. The receipt is still the witness the composer wants against a trader running this software, and it does close the griefing attack it was built for; the reserve proof is still strictly stronger than a bare signed digest, because the magnitudes come out of the proof rather than going in. Retracting an overclaim must not read as "this is worthless" — that gets a working mechanism deleted by the next author. Req 21.19 specified three-of-five and beta four-of-five conformance vectors, contradicting the quorum-margin table two hundred lines earlier which #719 had already corrected to two-of-three. It now specifies two-of-three with the intersection argument recomputed: with one member unavailable every later quorum is the two survivors, so a previously chosen quorum still intersects it in at least one member, and the beta profile carries no durability margin beyond that minimum. #719 missed this by grepping digit forms only; the sweep this time covered both digit and word forms. Also corrected eleven sites calling a composed state "the composed frontier", including dlv.composeVault, the observable the two-device hardware verdict used. The fold terminates when the pointer listing it read is exhausted, that listing came from one member, and absence is indistinguishable from omission — so the composed state is a valid PREFIX. composeVault now says explicitly that two devices agreeing proves they derive the same successor from the same published artifacts, which is what the verdict checked, and not that the state is the latest. Comments and messages only; no structural renames, which remain frontier-track work. workspace: 63 suites / 0 failed / exit 0. make lint: exit 0, 0 errors.
cryptskii
deleted the
docs/retract-unproven-receipt-claims-and-req-21-19
branch
August 25, 2026 02:02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 2 of the frozen work order: stop asserting properties the code cannot support.
A verifier that believes it checked an advance when it checked a signature is the exact failure this subsystem exists to prevent — so each retraction names itself, next to the correction, rather than quietly rewording. Anyone who read the old text should be able to tell the claim was withdrawn.
What was retracted, and why
settlement_receipt_leaf.rsclaimed a griefer "cannot manufacture one without actually paying the input", and that passing verification meant "the input was paid and the output taken".Neither holds.
trader_public_key,trader_genesis,trader_devidandpost_rootare all read out of the receipt, so a pass is a statement the receipt makes about itself. The cheapest tree satisfying the inclusion check has one leaf — and this module's own test fixture builds exactly that, so the honest construction and a forgery are byte-identical. NoAttAis carried and the authority resolver is never invoked, so an attacker needs no real identity at all.vault_reserve_inclusion.rscorrectly diagnosed that an owner signing a digest of its own claim "adds authorship, not solvency" — then said its proof "closes that". It doesn't close it; it moves it up one level, becausesmt_rootis still a value the owner chose. The header now says "narrows", and the two self-rooting defects are cross-referenced as symmetric: both sides of the market present self-rooted proofs.What each mechanism still establishes — deliberately preserved
A retraction that overshoots into "this proves nothing" gets a working mechanism deleted by the next author. So both corrections say what survives:
Req 21.19
It specified three-of-five and beta four-of-five conformance vectors, contradicting the
quorum-margin/table two hundred lines earlier that #719 had already corrected to two-of-three. A table and a requirement disagreeing is worse than either being stale alone.It now specifies two-of-three with the intersection argument recomputed: with one member unavailable, every later quorum consists of the two survivors, so a previously chosen quorum still intersects it in at least one member — and the beta profile carries no durability margin beyond that minimum.
Why #719 missed it: that sweep grepped digit forms (
4/5|3/5|q = 4) and never matched the hyphenated words. This sweep covered both digit and word forms; the only surviving five-member mentions are the two deliberate historical notes.Scope note — beyond the two files the plan named
Eleven sites called a composed state "the composed frontier", including
dlv.composeVault— the observable the two-device hardware verdict used. Same class of overclaim: the fold terminates when the pointer listing it read is exhausted, that listing came from one member, and absence is indistinguishable from omission. The composed state is a valid prefix.composeVaultnow says explicitly that two devices agreeing proves they derive the same successor from the same published artifacts — which is what the verdict actually checked — and not that the state is the latest.Comments and messages only. No structural renames; those remain frontier-track work.
Verification
cargo test --locked --workspace --exclude dsm_storage_node -- --nocapture --test-threads=1: 63 suites / 0 failed / exit 0make lintfrom the repo root: exit 0, 0 errors