[SCITT] Re: Closing omission from the receiver's vantage — what a record must carry
Pablo Play <playplay2736@gmail.com> Thu, 20 August 2026 09:59 UTC
Return-Path: <playplay2736@gmail.com>
X-Original-To: scitt@mail2.ietf.org
Delivered-To: scitt@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id C894E12CCB5B6 for <scitt@mail2.ietf.org>; Thu, 20 Aug 2026 02:59:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1787219972; bh=S6NDU6ta73lxLfWXZkwQBKTwceIvN0nbBqCzC7sfLDg=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=zMCSOTwyxWn3nzoz/393yQmhACZeAkg/sblycUaj/WM9i3zell5p38Dd9yLh6YZkZ v/dxCnCkky3vN+bUOZSBD28DphkhO3dA5Mp80TwoPwE3Jv4neXm8bQ/qgz1a61eE7Y zbbRO8gzrCtERYPoNPTWx5dslCr1hEyy40sfwchw=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.848
X-Spam-Level:
X-Spam-Status: No, score=-1.848 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mUibOyQ7SfSp for <scitt@mail2.ietf.org>; Thu, 20 Aug 2026 02:59:31 -0700 (PDT)
Received: from mail-qv1-xf29.google.com (mail-qv1-xf29.google.com [IPv6:2607:f8b0:4864:20::f29]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id A591212CCB5AB for <scitt@ietf.org>; Thu, 20 Aug 2026 02:59:31 -0700 (PDT)
Received: by mail-qv1-xf29.google.com with SMTP id 6a1803df08f44-8fcc43c48f7so22896036d6.2 for <scitt@ietf.org>; Thu, 20 Aug 2026 02:59:31 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1787219965; cv=none; d=google.com; s=arc-20260327; b=J5TlOIujxwV8CNdcxf97/As+z/rjDwi7/j/2T3Yt/J+aPbUQHAH+0i2yT/BEJNrbEe Jy9vGMdzP9VAZ3Cmp2yfijcdqMg1gcotmxxaWP0TDJF78/R5p23aBli043hi5AdrYl4i 1CgPsGTp1pPg3FLijqgoavMiKA4BK8y3xN7CuaS7eT45BPCAZ5ZNnF+xwMIjQGCMjPVs f94AsbGnSAWsGrcx95SKJ2eT7nh+TKHkQct0STO7B+xIEDWA6snOEFR2Np7LvQfP1gXf hDZFx1m1m37SjepZefEdJHccady8VnqO50Yq7JC/GXqshncfFQMfrUnYfYSM3AcomDsS qXoA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=0Y9jS5BPlq7Tf08IAsHpEuiPWoNCIohpyRqjHaNQXsk=; fh=qNnBNR4EkCx8drJmglNLyff8nEbydt6UfrT3BbakAnw=; b=ptTVn5dxYIRAmIcVNn4oaMhVbK6NgmnwzOrSj1viG0ftoDAg3IZjb0odEw06AOMCUb rKHgvWL+ACX9aaUuzpGm+zgyiSih6a5T1HI/uaCMFjNczV7eTPaHbHF8zeatWcOCd/Zv Ajjfby4YMQHpKa7eJ74fsN0/1hcqZyI7eAFXfhx2xeuXWLOZ2ewWpKfTBZUmJqMVFddv mSoDODFbXsj7fg1JI7mQcKjn6+WuBWR6/YPPkAVDS5J+bPYkVtHI9GMuGig/4lasVlBS qTLcVm7XOFnnBYGPm/eowQZxI5me1KNHLFXuvsca16FbooCblrudUDfJfBKjjScf9YIT yeLQ==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787219965; x=1787824765; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=0Y9jS5BPlq7Tf08IAsHpEuiPWoNCIohpyRqjHaNQXsk=; b=S1yBFSPnY7xiUneoQsCBJDLaSnyeQHiU/GWCoX7Hzt2w9mndIsjSIrQ6KWYnw83p+o PQsg/KR5ZNfLQjg1WVMnlqHLB73ocHLlCdIupI+tHUoOj3WxSuu1QQ5RiJcpkJa7IyaB KTnpxcpLPOePQA88PJSbUuKi3R7ylqBZvBgrVpiGejJTvD3RBXXn2tPD0R2rNYcxoIvg RCFCxA4Ga4MoJh0UizQHcQZ+hhoyyf1yYoZxf7TeSCQWyEAVuKWfACuk0LGxs+U38Xzg uqQxvk3WivbqLXeUz3X1gmK3y1oJsbTkXEM7Zq8XSPBD0B6BrJIqfrtppheYCQUUWFB5 CsIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787219965; x=1787824765; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=0Y9jS5BPlq7Tf08IAsHpEuiPWoNCIohpyRqjHaNQXsk=; b=YE9487RzTvTTt4G6c/wRI3bU9w0+q6B4D/l5I28t46HCoqUt/m7Wxwik3RNIXdlQBZ 3y75KI+9E/vZabnrJt2gsLjzwSApA6MHqw6KMRTFqaGvmz2ZGp8+MnvpN9AAEbi9CR3x NyvVPS4O+baWZZPrIyb9KuyyGm38R6a0cgjNF6nrIA1IA4YJ3RrAAtZ4u6oCHaPwPjk5 XP3OY47LRgJfiUumvyDhJwgq1x/GRXYxMyHtRFAjKY7qEB3yVDm6EZteSAqgBaW0sJuC 3R8/MuzxnMka5Eyg9t2z1em8TMrrqf3FxdX9aBcOOSvLM4lIStm3GL/srf5U0538R+OQ +epQ==
X-Forwarded-Encrypted: i=1; AHgh+RrWVNIFlckKcYIQ4qwipk2eMh7DB9mEIWYAcunwgERS4dGsR2u7HNQ8lFkrrCNZhy4utHNS+Q==@ietf.org
X-Gm-Message-State: AFuF++lakfW8BnRdBXKfcHc/lpa/xfOadU0CCFqA+HyB9kg3mNnxwbCn ydM03IZCOZqBAgm94P6eHXJLb8prgi5SECJdgZjyqq+tEvF+77hfjJgCVhnrfej67aMW0oVUyn2 U8/1lX9z2R0Jt54qQiqTnC01Sj77lGFg=
X-Gm-Gg: AR+sD118p+Rs0j7AP2ETgKpB3saYSokw9W4hJVEe+N0C2sJmA29NzXSiAmV2a48QApi tgkkncar+iaJoSj4qncBZotgd1L4nTA9RqAgqg7kBPZY/lGJA8Ts/AXaekVT0v2GX5fwNGng36m xupoZeA/wqGrz0hvXgSGAv8nXNbgnGSYF3yxmRAHk8n5d8dBvSsut8qotCE7G2q6TTmbJiXQaTW Qx2aFBthId7ezvTkJ95qFZD7u1y9u9HEtCWhtftSUe01AP4d1A1b8utR+V9UE6aJkfOxhJrPJZo kwYGBhBSCIdFEoLFaQLNZrySSKrJCEWwndKWmCOUJbCFHkKr8THHD1hjzbXTuFAv9s6mEfMjs+V YhHvcCUbQbiMaOHebB2t64rAOjFj8o10QwMIxVTZMvsIFz3bj9YleraVesam2J8yJx8uB1YdX9j fwbF8yYJB7omj9Yf87S6RkWOhOyb4ZABOPQH4HG7LWM6SsbrHnZLJtbjaPwIVVavHDWfvLcEncv xA=
X-Received: by 2002:a05:6214:1316:b0:8f3:b2a3:269b with SMTP id 6a1803df08f44-90c5eab82dfmr98500576d6.5.1787219965028; Thu, 20 Aug 2026 02:59:25 -0700 (PDT)
MIME-Version: 1.0
References: <CALc05oEEg_BVvy6UCDBBgyrV8ASvLuJYWxNoES3k9jgE22mccA@mail.gmail.com> <G291Rgu5pZ2v3GWOaxuoG0PVYvTTzkjdx8Yg6w_RncBbuBGYX1PvhYtIHg-IuMS9yf1uUKC7mf8KlXd-fE1f0yJkCUZo1jzx4vNYode61o8=@vaara.io>
In-Reply-To: <G291Rgu5pZ2v3GWOaxuoG0PVYvTTzkjdx8Yg6w_RncBbuBGYX1PvhYtIHg-IuMS9yf1uUKC7mf8KlXd-fE1f0yJkCUZo1jzx4vNYode61o8=@vaara.io>
From: Pablo Play <playplay2736@gmail.com>
Date: Thu, 20 Aug 2026 06:59:12 -0300
X-Gm-Features: AcwNN1WrXo7RECkAiSTDxpHPs6HkfoGPEBRP7OE15tVDqjrqU4mYHmmUiDa8Jhk
Message-ID: <CANWAHpo0YsdaFc+Z5HAWZ5wF0T3H20bMzzCodyP6nxraGDmHuQ@mail.gmail.com>
To: Henri Sirkkavaara <hello@vaara.io>
Content-Type: multipart/alternative; boundary="00000000000026adf00659779321"
Message-ID-Hash: GQVZX35QAVUCX26N2GEF5DNEZXY5ARFG
X-Message-ID-Hash: GQVZX35QAVUCX26N2GEF5DNEZXY5ARFG
X-MailFrom: playplay2736@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Walter Hawkins <wdhawkins46@gmail.com>, Todd.Gibson@t-mobile.com, scitt@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [SCITT] Re: Closing omission from the receiver's vantage — what a record must carry
List-Id: "Supply Chain Integrity, Transparency, and Trust" <scitt.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/scitt/eFSuW8eRu33LLR5GWAYh3oG9LME>
List-Archive: <https://mailarchive.ietf.org/arch/browse/scitt>
List-Help: <mailto:scitt-request@ietf.org?subject=help>
List-Owner: <mailto:scitt-owner@ietf.org>
List-Post: <mailto:scitt@ietf.org>
List-Subscribe: <mailto:scitt-join@ietf.org>
List-Unsubscribe: <mailto:scitt-leave@ietf.org>
Henri, Walter, Joel, Todd, The three-rung split is the right shape, and rung 3 is where I can add a data point. We carry the same asymmetry Walter named — the party who can suppress a record is the party who assigns the sequence — and close it with an external, issuer-independent commitment rather than a pinned terminal seal from the same set. Two checks we run, both against the byte-level chain state, not a declaration: anchoring_existence: the record must carry a non-null external anchor (an on-chain block time in our case). No anchor, no rung-3 claim. anchoring_precedence: the anchor must be strictly earlier than the outcome timestamp it's supposed to cover. Existence alone is a weaker property than precedence — an anchor that arrives after the fact proves nothing about what was true when the outcome was recorded. We had to separate these because a "compat with SEP-3004" exercise surfaced that SEP-3004 explicitly defers external anchoring as orthogonal, and existence-without-precedence is exactly the gap a suppressing issuer would want to hide in. Neither check trusts the issuer's own seal. The anchor is recomputed and its ordering checked independently, same principle as your seq/runningCount recompute. On Joel's fourth item — we don't have it either, same as you. We carry a policy_version field (which governing policy was in force when an action was admitted), but nothing that pins the version of an external corpus a verdict was computed against. Your example is the clean failure case: a verdict that moves because a sanctions list updated looks identical in our records to one that moved because policy changed. I'd rather say that plainly than imply we cover it. Code for the two rung-3 checks: examples/conformance/anchoring-precedence-ref/verify.py and the SEP-3004 compat notes in examples/conformance/audit-record-contract-compat/verify.py, in github.com/giskard09/argentum-core. Pablo Etcheverry El jue, 20 ago 2026 a la(s) 2:33 a.m., Henri Sirkkavaara (hello@vaara.io) escribió: > Walter, Joel, Todd, Pablo, > > Yes, willing. > > One correction to the opener before it hardens, and it is my own sentence. > "An issuer-assigned, gap-free sequence with a running count makes a short > set provably short from the bytes alone" holds for a set with a hole in it > and fails for a set cut at the end. Emek cloned the tree at befdced and ran > the three cases. He is correct. > > The property splits into rungs, and each licenses a different claim: > > 1. A signed seq catches a missing sequence number inside the held range, > with no second party. 2. A pinned terminal seal catches a dropped tail from > the held set alone. In our implementation that is a block of the form > {"sealed": true, "total": N}, and verify_contiguity computes expected as > max(max_seq + 1, max_running, sealed_total). On a five-record run with the > last two dropped it reports missing 3 and 4. Without the seal it reports > ok. 3. A suffix that suppresses the seal as well sits outside > held-set-alone detection and needs an external anchor over the run. > > Rung 2 is already in the code and I stated the property one rung short of > what it does. Emek's reading of runningCount belongs in any shared text > too: verify_contiguity requires runningCount == seq + 1 for every held > record, so it is a per-record consistency invariant that catches an edited > count. It never speaks about records outside the held set, because it is > pinned to the seq of the record it rides on. Expected is decided by the > sequence alone. > > That sharpens the composition you are drawing. The receiver's vantage > stops being optional at rung 3, because the party who can suppress the seal > is the party assigning the sequence. > > Joel, your fourth item is one we do not have. Our coverage component names > the observation boundary a decision was made under and travels inside the > signed payload, but it carries no publisher-assigned version of the corpus > the answer was computed against. When a sanctions list issues a delta, a > verdict that moves for that reason looks identical in our records to a > verdict that moved because policy changed. I would put it in the statement > as a fourth thing a record must let a receiver resolve, and I would have to > add the field before I could point at one. > > Code for rungs 1 and 2 is src/vaara/credential/_contiguity.py and > src/vaara/credential/_authorization_receipt.py in github.com/vaaraio/vaara, > and the vectors are under tests/vectors with checkers that import none of > our code. > > *Henri Sirkkavaara* > *Vaara *- Runtime execution layer for AI agents > *Built to see over the noise.* > vaara.io > Helsinki, Finland > > On Wednesday, August 19th, 2026 at 23:53, Walter Hawkins < > wdhawkins46@gmail.com> wrote: > > Henri, Todd, > > Opening this as its own thread, off all three of our drafts, because the > piece it's about belongs to none of them and touches all of them. > > The gap is the one Henri named and Todd occupies from the other side: > closing omission needs a party who knows an answer was owed. A hash-chained > receipt makes deletion and reordering detectable and leaves omission open — > a payment that never entered the chain leaves no gap to find. A sender-side > attestation can't help either, because the party that can suppress the > record is the same party producing the attestation. The only actor in the > loop who knows a payment was owed, and cannot be made to un-know it, is the > one receiving the money. Todd's PRVO-2 is that actor, and the 21.20% > fictitious-settlement figure is what makes the vantage concrete rather than > theoretical. > > So the question worth answering here, and I think it's a small one: what > does a record have to carry for a party in the receiving position to use > it, resolving all of it without ever contacting the executor? Henri put the > shape better than I would have — three things: > > 1. which authorization governed this payment, > 2. what bound was in force when it settled, and > 3. whether the set of records claiming to cover this payment is complete. > > The third is where the two failure modes separate cleanly, and why this > composes instead of competing. An issuer-assigned, gap-free sequence with a > running count — Henri's completeness component — makes a short set provably > short from the bytes alone, no second party required. It catches a record > removed from a set. It says nothing about a record never created, because > that is issuer-assigned, and the issuer sits on the side that benefits from > the omission. The receiver catches exactly that: the executor can suppress > a record; it cannot suppress the arrival of money. Two failure modes, two > parties, and neither party covers both — which is the whole argument for > treating the receiver as a distinct evidence vantage rather than folding it > into any one draft. > > The natural enumerator on the receiver's side is the settlement rail: > records bound to the settled transaction's own digest, one per payee leg, > so an absent party enumerates from the rail instead of from a list the > executor hands them, and a missing leg is visible to whoever holds it. That > is the part I would rather pull out of my x402 profile and specify here, > where it is not subordinate to one payment-authorization draft. > > What I would propose we produce, if you are both willing: a short > statement of the receiver as an evidence vantage — the three things a > record must let it resolve, the completeness component and its stated > limit, and what a rail profile has to say for the rail's own records to > serve the enumeration. Not a fourth draft competing with the three we have; > the shared substrate the other three can each reference. > > Henri, the completeness component and its limit are yours to state. Todd, > the fraud side — why the receiver's knowledge is the input the sending side > cannot manufacture — is what keeps this grounded in a real failure rather > than a neat construction. I will bring the rail-enumeration binding and a > testnet EVM rail to exercise it against real settled transactions. > > Walter > > > -- > SCITT mailing list -- scitt@ietf.org > To unsubscribe send an email to scitt-leave@ietf.org >
- [SCITT] Closing omission from the receiver's vant… Walter Hawkins
- [SCITT] Re: Closing omission from the receiver's … Joel Hillier
- [SCITT] Re: Closing omission from the receiver's … Pablo Play
- [SCITT] Re: Closing omission from the receiver's … Henri Sirkkavaara
- [SCITT] Re: Closing omission from the receiver's … Pablo Play
- [SCITT] Re: Closing omission from the receiver's … Henri Sirkkavaara
- [SCITT] Re: Closing omission from the receiver's … Pablo Play
- [SCITT] Re: Closing omission from the receiver's … Nenad Vasic
- [SCITT] Re: Closing omission from the receiver's … Joel Hillier
- [SCITT] Re: Closing omission from the receiver's … Pablo Play
- [SCITT] Re: Closing omission from the receiver's … e.dogru
- [SCITT] Re: Closing omission from the receiver's … Walter Hawkins
- [SCITT] Re: Closing omission from the receiver's … e.dogru
- [SCITT] Re: Closing omission from the receiver's … Walter Hawkins
- [SCITT] Re: Closing omission from the receiver's … Walter Hawkins
- [SCITT] Re: Closing omission from the receiver's … Henri Sirkkavaara
- [SCITT] Re: Closing omission from the receiver's … Pablo Play
- [SCITT] Re: Closing omission from the receiver's … e.dogru
- [SCITT] Re: Closing omission from the receiver's … Pablo Play
- [SCITT] Re: Closing omission from the receiver's … e.dogru
- [SCITT] Re: Closing omission from the receiver's … Pablo Play
- [SCITT] Re: Closing omission from the receiver's … Joel Hillier
- [SCITT] Re: Closing omission from the receiver's … Joel Hillier
- [SCITT] Re: Closing omission from the receiver's … Nenad Vasic
- [SCITT] Re: Closing omission from the receiver's … Walter Hawkins
- [SCITT] Re: Closing omission from the receiver's … Vernon Wharff
- [SCITT] Re: Closing omission from the receiver's … Walter Hawkins
- [SCITT] Re: Closing omission from the receiver's … Vernon Wharff
- [SCITT] Re: Closing omission from the receiver's … Henri Sirkkavaara
- [SCITT] Re: Closing omission from the receiver's … e.dogru
- [SCITT] Re: Closing omission from the receiver's … Nenad Vasic
- [SCITT] Re: Closing omission from the receiver's … Nenad Vasic