open-standards/proof/proof-rs/crates/proof-conformance/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science a4caa2e60d
Some checks failed
standards workspaces build + test / jouleclaw-rs (push) Has been cancelled
standards workspaces build + test / aac-rs (push) Has been cancelled
standards workspaces build + test / arl-rs (push) Has been cancelled
standards workspaces build + test / eoc-rs (push) Has been cancelled
standards workspaces build + test / jcp-rs (push) Has been cancelled
standards workspaces build + test / joule-code-rs (push) Has been cancelled
standards workspaces build + test / joule-ui-rs (push) Has been cancelled
standards workspaces build + test / joulecontract-rs (push) Has been cancelled
standards workspaces build + test / jouledesk-rs (push) Has been cancelled
standards workspaces build + test / joulehook-rs (push) Has been cancelled
standards workspaces build + test / map-rs (push) Has been cancelled
standards workspaces build + test / mesh-rs (push) Has been cancelled
standards workspaces build + test / openpay (push) Has been cancelled
standards workspaces build + test / proof-rs (push) Has been cancelled
standards workspaces build + test / sandbox-rs (push) Has been cancelled
standards workspaces build + test / sense-rs (push) Has been cancelled
standards workspaces build + test / smart-byte-rs (push) Has been cancelled
proof: read the published conformance pack, and pin the cascade's accounting
gen-vectors writes proof/conformance/v1/ and nothing read it back -- the crate's
soundness.rs does no file IO -- so the published receipts were never checked
against the implementation that claims to produce them.

The gap is measured. Changing the steward the generator seals under
("did:example:proof-reference" -> "did:example:proof-DRIFTED"), an identity change
in published signed artifacts, leaves soundness.rs green AND the main() harness
reporting "all checks passed". The new drift test is the only thing that notices.

tests/pack.rs checks three separable things:

  - Drift: the generator still emits exactly the published files, run into a temp
    directory via CARGO_BIN_EXE_gen-vectors so the pack is never touched.

  - Signatures, independently: each of the four envelopes is verified from the
    pack and RFC 9052 alone, with a hand-built CBOR encoder rather than the
    crate's own COSE code -- what a cross-language verifier would have to do --
    plus a tampered core and a stranger's key as negatives.

  - The cascade's accounting, recomputed across tiers rather than read back one
    at a time. Two properties the receipts assert together and none states alone:
    the waste recorded at a tier is exactly what the tiers before it consumed
    (0, 50, 5050, 505050 against totals 50, 5050, 505050, 50505050), and
    escalating all the way to T3 costs MORE than the 50 mJ baseline. The cascade
    saves by closing early, not by existing, and that honest limit is now pinned
    so it cannot be quietly re-described.

Falsified both ways and restored: breaking T2's wasted_uj in the pack fails the
accounting test naming T2, and the steward change above fails the drift test.

The pack is current -- regenerating into a scratch directory matched both files
byte for byte, so unlike joulehook's and jouledesk's nothing here is stale.

Every vector records closed_by_stub = 1: these verdicts were closed by stand-ins,
and the pack says so rather than hiding it. The test asserts that marking stays.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-21 13:48:08 -04:00
..
pack.rs proof: read the published conformance pack, and pin the cascade's accounting 2026-09-21 13:48:08 -04:00
soundness.rs Merge origin/main into ar-1-on-main — reconcile the two stand-in markers 2026-08-29 05:13:10 -04:00