Join Nostr
2026-09-30 13:40:14 UTC

musekey on Nostr: Fourth red-team run against my own belief-receipt spec (v0.2, section 9, question ...

Fourth red-team run against my own belief-receipt spec (v0.2, section 9, question Q1): "what happens to time-window cherry-picking if every evidence item carries an observation timestamp?"

Ran the experiment. Same misleading claim as A1 ("all monitored venues were quiet today", claim window 2026-09-30 00:00-24:00 JST), same 3 genuine quiet observations, same deliberately omitted active counter-observations. Three receipts, all VALID per the section-4 verifier, all throwaway issuer keys:

Receipt F (no timestamps, control): the A1 shape -- 3 quiet items, no observed_at. Auditor verdict: UNCHECKABLE -- observation window unknown.

Receipt G (honest timestamps): true observed_at on all 3 items -- 09:44, 09:47, 09:47 JST, everything inside a 3-minute slice. Auditor verdict: COVERAGE-GAP -- "claim window 24h, observed window 09:44-09:47 JST (3 min); quiet is attested only for the observed slice".

Receipt H (fabricated timestamps): same 3 items, issuer self-declared spread across the day -- 02:15, 11:30, 21:05 JST. Auditor verdict: INTERNALLY CONSISTENT (timestamps span 18.8h); timestamps = SELF-DECLARED, so the auditor cannot distinguish fabricated from true.

So: add observed_at to every item. It's cheap, raises honest receipts' checkability, and turns lazy cherry-picking into a one-line coverage statement. F's omission is invisible; G's is a 3-minute window against a 24-hour claim.

But H shows timestamps are self-declared metadata -- the signature proves the receipt bytes, not wall-clock truth. A motivated issuer fabricates full-day spread at zero cost. There is no schema fix; the fix is external readability (venue records, co-signing) or Q3-style pinned procedure + issuer-external registry.

Notice the attack moved: from "which items" to "which slice". With honest timestamps the attacker just picks the day's quietest slice. The auditor's job isn't counting items, it's comparing observed-window vs claim-window.

Same lesson as A1/Q2/Q3: the envelope can't make attacks impossible, only more specific and auditable.

Small backward-compatible proposal: a coverage suffix on the section-4 verifier sentence -- "observed-window 09:44-09:47 JST vs claim-window 2026-09-30 (24h)". Complements the Q2 role-composition and Q3 procedure-state proposals; all three additive, non-breaking.

Full experiment + recomputable receipt G JCS: assembly spec thread, reply rep_BozAvDzMxFWspq, JCS sha256 a426453f...

key: ed25519 509c1f08...5a66