<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-chandra-agent-registry-corroboration-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Agent Discovery Corroboration">Multi-Source Corroboration for AI Agent Discovery</title>

    <author initials="S." surname="Chandra" fullname="Sharath Chandra">
      <organization>Stellarminds.ai</organization>
      <address>
        <postal>
          <city>Richmond</city>
          <region>California</region>
          <country>United States of America</country>
        </postal>
        <email>sharath@stellarminds.ai</email>
        <uri>https://stellarminds.ai</uri>
      </address>
    </author>

    <date year="2026" month="August" day="27"/>

    <area>Security</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>AI agents</keyword> <keyword>discovery</keyword> <keyword>registry</keyword> <keyword>corroboration</keyword> <keyword>transparency</keyword>

    <abstract>


<?line 96?>

<t>AI agents are discovered and identified through independent sources, including
registries, name services, DID methods, and catalogs. A single source can
misrepresent an agent by omission, withholding a record it holds, or by
equivocation, serving different answers to different observers. A signature on a
served artifact does not, by itself, defend against either behavior. This
document specifies a corroboration procedure that classifies one source's claim
about one agent observed from one network vantage; reduces claims to comparable
views; diffs claims into findings with deterministic attribution; distinguishes
legitimate propagation delay from persistent disagreement; and emits a signed
Corroboration Record for every sweep, including agreement, that other evidence
formats can bind by digest. The procedure is source-, format-, and layer-agnostic;
requires neither cooperation from nor modification of any source; and is
verifiable from recorded bytes.</t>



    </abstract>



  </front>

  <middle>


<?line 112?>

<section anchor="introduction"><name>Introduction</name>

<t>An artifact served by a discovery source can be self-certifying: it can be signed such that a consumer verifies its content offline against an expected identity or key. Self-certification detects tampering with that artifact. It cannot, in principle, prevent two other behaviors available to any source: <strong>omission</strong>, in which a source withholds an artifact and there is therefore no artifact signature to verify; and <strong>equivocation</strong>, in which a source serves two inconsistent artifacts to different observers, each individually valid. Both require a structurally different defense, comparison of independent observations, with its own failure modes and evidence.</t>

<t>This document specifies that comparison. It normatively fixes the decision procedure — claim classification (Section 4), the view contract (Section 5), the diff (Section 6), the confirmation discipline (Section 7), the self-description mechanism (Section 8), the Answer Scope (Section 9), and the Corroboration Record (Section 10) — and treats the byte-level fetch per source as an injectable implementation detail, because interoperability lives in the comparison and the record, not in any source's wire format.</t>

<t>Not every difference between two sources is misbehavior. A source that is subject to a data-residency obligation may serve a different endpoint by design, and a procedure that reports every such difference as equivocation fires on normal operation. Section 9 admits this without conceding anything: a source may declare, in advance, an axis a third party can independently occupy along which it varies a field. A declaration so made <strong>annotates</strong> a finding and never withdraws it — the disagreement still stands and the verdict is unchanged — while a source that varies contrary to its own declaration earns a stronger finding than one that never declared at all.</t>

<t>The procedure serves any layer at which a middleman answers questions about an agent: discovery (which endpoint), identity (which key), capability (which functions), and evidence (which records exist). Section 11 gives the two reference layer instantiations.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t><strong>Source:</strong> Anything that answers "what do you have for agent X?" — a registry, a name service, a DID method, a catalog, an evidence store.</t>

<t><strong>Vantage:</strong> The observation context under which a source is observed — the conditions the claim was obtained under, not the observing instance. Two sweeps of one source from two hosts in the same context bear the same vantage. One source <bcp14>MAY</bcp14> be observed from multiple vantages; vantage is part of a claim's identity. Identifiers are constrained by Section 3.1.</t>

<t><strong>Answer Scope:</strong> A source-signed bundle declaring, in advance, which fields that source varies and along which vantage class (Section 9).</t>

<t><strong>Watch set:</strong> The set of canonical agent identifiers a consumer corroborates.</t>

<t><strong>Claim:</strong> One source's answer about one agent as observed from one vantage during one sweep, classified <spanx style="verb">present</spanx>, <spanx style="verb">absent</spanx>, or <spanx style="verb">error</spanx> (Section 4). A claim's observation time is the sweep's <spanx style="verb">observed_at</spanx> (Section 7).</t>

<t><strong>View:</strong> The comparable reduction of a <spanx style="verb">present</spanx> claim: named string fields (Section 5).</t>

<t><strong>Resolver:</strong> The per-source adapter mapping a canonical agent identifier to a classified claim (Section 4), applying that source's native verification.</t>

<t><strong>Sweep:</strong> One corroboration cycle: every watch-set identifier resolved against every (source, vantage), diffed, and recorded.</t>

<t><strong>Finding:</strong> One detected disagreement: <spanx style="verb">{kind, agent_id, confirmation, detail}</spanx> (Section 6).</t>

<t><strong>Corroboration Record:</strong> The signed, content-addressed result of one sweep for one subject (Section 10).</t>

<t><strong>Self-Description:</strong> An agent-signed bundle of sequence number, aliases, and service endpoints (Section 8).</t>

<t><strong>CORR-DIGEST:</strong> The lowercase hexadecimal encoding of SHA-256 applied to the UTF-8 octets of the RFC 8785 <xref target="RFC8785"/> JSON Canonicalization Scheme serialization of a value. All digests in this document use this construction. Values in digest-bearing fields <bcp14>MUST NOT</bcp14> be JSON floating-point numbers.</t>

</section>
<section anchor="claim-model"><name>Claim Model</name>

<t>The unit of observation is the tuple <strong>(source, vantage, agent)</strong> within one sweep, and the sweep carries the observation time (Section 7). Vantage <bcp14>MUST</bcp14> be preserved as a distinct axis and <bcp14>MUST NOT</bcp14> be encoded by treating each vantage as an independent source: intra-source disagreement across vantages attributes a different misbehavior (equivocation by that source) than inter-source disagreement, and collapsing the axes destroys the attribution (Section 6.3).</t>

<t>A sweep with fewer than two <spanx style="verb">present</spanx>-or-<spanx style="verb">absent</spanx> claims for a subject has nothing to corroborate; its verdict is <spanx style="verb">INSUFFICIENT</spanx> (Section 10), and an implementation <bcp14>MUST NOT</bcp14> report agreement in that case.</t>

<section anchor="vantage-identifiers"><name>Vantage Identifiers</name>

<t>A vantage identifier <bcp14>MUST</bcp14> be either null or a string of the form <spanx style="verb">class ":" value</spanx>, where <spanx style="verb">class</spanx> names the context dimension and <spanx style="verb">value</spanx> names a point on that dimension. Each component <bcp14>MUST</bcp14> match the regular expression <spanx style="verb">[a-z0-9](?:[a-z0-9-]*[a-z0-9])?</spanx>. Identifiers are compared by exact octet equality; an implementation <bcp14>MUST NOT</bcp14> parse, order, normalize, or infer containment relationships among identifier values.</t>

<t>This document defines two initial occupiable classes. Both take their value space from an external registry, which is what makes shared denotation (below) a fact rather than an agreement between sweepers:</t>

<t><list style="symbols">
  <t><strong><spanx style="verb">region</spanx></strong> — the value <bcp14>MUST</bcp14> be an ISO 3166-1 alpha-2 code <xref target="ISO3166"/>, lowercased. <spanx style="verb">region:de</spanx>, <spanx style="verb">region:us</spanx>, and the exceptionally reserved <spanx style="verb">region:eu</spanx> are well-formed.</t>
  <t><strong><spanx style="verb">asn</spanx></strong> — the value <bcp14>MUST</bcp14> be the string <spanx style="verb">as</spanx> followed by the decimal representation of a 32-bit Autonomous System Number <xref target="RFC6793"/>, with no leading zeros: <spanx style="verb">asn:as64500</spanx>.</t>
</list></t>

<t>A class outside this set <bcp14>MUST NOT</bcp14> be used unless the deployments comparing observations have agreed on both its meaning and its value space; absent that agreement the requirements below cannot be met and the vantage <bcp14>MUST</bcp14> be null.</t>

<t>Comparison scoped to a vantage (Section 6.2) is sound only if independently operated sweepers assign the same identifier to the same context. Accordingly:</t>

<t><list style="symbols">
  <t><strong>Shared denotation.</strong> Two claims bearing the same identifier <bcp14>MUST</bcp14> denote the same observation context, whichever source or sweeper produced them. A sweeper <bcp14>MUST NOT</bcp14> mint a private meaning for a <spanx style="verb">class</spanx> defined elsewhere.</t>
  <t><strong>Occupiability.</strong> A <spanx style="verb">class</spanx> <bcp14>MUST</bcp14> be one a third party can construct and observe from independently. <spanx style="verb">region</spanx> and <spanx style="verb">asn</spanx> are occupiable: a verifier can place itself in that region or on that network and repeat the observation. Attributes of the caller <em>relationship</em> rather than of the observation — caller identity, tenant, subscription tier, authorization level — are NOT occupiable and <bcp14>MUST NOT</bcp14> be encoded as a vantage. <strong>This rule is central:</strong> a variation on a non-occupiable attribute cannot be independently checked, so a corroborator that credited a declaration of one would be reporting the source's own assertion back as evidence.</t>
  <t><strong>Non-overlap.</strong> Within one sweep the vantages a sweeper uses <bcp14>MUST NOT</bcp14> overlap: no context may be denoted by two identifiers, and no identifier by two contexts. A sweeper that cannot guarantee this <bcp14>MUST</bcp14> use null.</t>
  <t><strong>Cardinality.</strong> A <spanx style="verb">class</spanx> <bcp14>MUST</bcp14> have a small, enumerable value set — a high-cardinality dimension partitions observations until nothing is compared against anything, degrading corroboration to silence while appearing to function.</t>
</list></t>

<t>The null vantage asserts no context. It is not a comparable identifier and <bcp14>MUST NOT</bcp14> be compared for equality against a non-null one as though it named one. It is correct for a single-vantage sweeper and <bcp14>REQUIRED</bcp14> where the obligations above cannot be met — declining to name a context is always sound, whereas naming one wrongly is not.</t>

</section>
</section>
<section anchor="classifying-one-claim"><name>Classifying One Claim</name>

<t>For a source S, vantage V, and agent A, a resolver <bcp14>MUST</bcp14> classify the outcome as exactly one of:</t>

<t><list style="symbols">
  <t><strong><spanx style="verb">present</spanx></strong> — S served a claim for A, reduced to a view (Section 5).</t>
  <t><strong><spanx style="verb">absent</spanx></strong> — S positively asserts A is unknown. Each resolver defines the positive-absence predicate for its source type; for HTTP sources a <spanx style="verb">404</spanx> <bcp14>MUST</bcp14> be classified <spanx style="verb">absent</spanx>, and a <spanx style="verb">200</spanx> whose body positively signals not-found <bcp14>SHOULD</bcp14> be classified <spanx style="verb">absent</spanx>. Non-normative examples of the latter include <spanx style="verb">{"success": false}</spanx> bodies and error strings containing "not found".</t>
  <t><strong><spanx style="verb">error</spanx></strong> — any other outcome: connection failure, timeout, non-absence error status, unparseable body, or an answer that the resolver cannot map to a view.</t>
</list></t>

<t>A resolver <bcp14>MUST</bcp14> return an <spanx style="verb">error</spanx> claim rather than propagate an unclassified failure to the diff procedure. An <spanx style="verb">error</spanx> claim <bcp14>MUST</bcp14> be excluded from the diff entirely. This rule is central: <strong>a source that failed to answer has asserted nothing and <bcp14>MUST NOT</bcp14> be treated as claiming absence</strong> — otherwise every transient fault becomes a false omission finding.</t>

</section>
<section anchor="the-view-contract"><name>The View Contract</name>

<t>A <spanx style="verb">present</spanx> claim <bcp14>MUST</bcp14> be reduced to a <strong>view</strong>: a mapping of field names to string values or null. A null value <bcp14>MUST NOT</bcp14> participate in the diff: an unverifiable or missing field is not a disagreement.</t>

<t>Fields whose values are compared as strings <bcp14>MUST</bcp14> be canonicalized by the layer before entering the view, such that two references to the same resource compare equal. For URI-valued fields (e.g., endpoints), implementations <bcp14>MUST</bcp14> apply syntax-based normalization per RFC 3986 <xref target="RFC3986"/> Section 6 (case of scheme and host, default ports, empty path) before comparison. For key-valued fields whose layer defines a <spanx style="verb">did:key</spanx> representation, the multibase <spanx style="verb">did:key</spanx> form is the comparison encoding.</t>

<t>Where a field carries its own proof (a signed record's DID, a key), the resolver <bcp14>MUST</bcp14> populate it only from a successfully verified artifact whose subject binds to the outer agent identifier; on any verification failure the field is null. A verifier <bcp14>MUST NOT</bcp14> allow an unverified value to produce a divergence finding against a verified one (the no-laundering rule).</t>

</section>
<section anchor="the-diff"><name>The Diff</name>

<t>Input: the claims of one sweep for one agent. The diff <bcp14>MUST</bcp14> be pure — deterministic ordering, no I/O, no exceptions — and <bcp14>MUST</bcp14> derive findings as follows. One agent <bcp14>MAY</bcp14> yield multiple simultaneous findings.</t>

<section anchor="omission"><name>omission</name>

<t>Emit an <spanx style="verb">omission</spanx> finding iff the agent is <spanx style="verb">present</spanx> on at least one source and <spanx style="verb">absent</spanx> on at least one other source. Both sides <bcp14>MUST</bcp14> be positive claims; <spanx style="verb">error</spanx> claims contribute to neither. Detail: <spanx style="verb">{present_on, missing_from}</spanx> as sorted lists of source labels.</t>

</section>
<section anchor="field-divergence"><name>Field Divergence</name>

<t>For each field name appearing in any present view, collect the non-null values keyed by (source, vantage). Comparison is scoped to a <strong>cohort</strong>: the claims sharing one vantage identifier.</t>

<t><list style="numbers" type="1">
  <t>A source contributes a single value to the comparison for a field only when all non-null values that source produced for that field agree across its observed vantages. Such a source participates in every cohort.</t>
  <t>If a source produced differing non-null values for a field across vantages and an applicable Answer Scope exists (Section 9.3), that source contributes its value separately to each cohort identified by the corresponding vantage.</t>
  <t>If a source produced differing non-null values for a field across vantages and no applicable Answer Scope exists, that source contributes no value to the cross-source comparison for that field (Section 6.3).</t>
  <t>Cohort keys are derived only from the vantages of sources for which an applicable Answer Scope authorizes per-vantage comparison for that field. If no such source exists, the diff <bcp14>MUST</bcp14> evaluate one unscoped cohort containing every eligible claim.</t>
</list></t>

<t>Emit a finding of <spanx style="verb">kind</spanx> equal to the field name, once per cohort, iff more than one distinct value appears <strong>across sources</strong> within that cohort. Detail: <spanx style="verb">{field, values}</spanx> where <spanx style="verb">values</spanx> maps source labels to values.</t>

</section>
<section anchor="sourceequivocation"><name>source_equivocation</name>

<t>For each source observed from more than one vantage, if that source's vantages yield differing non-null values for any field, emit a <spanx style="verb">source_equivocation</spanx> finding attributing that source. Detail: <spanx style="verb">{source, field, values}</spanx> where <spanx style="verb">values</spanx> maps vantage labels to values. The finding is emitted whether or not the variation was declared (Section 9); its per-vantage values are carried in the record for audit.</t>

<t>Absent an applicable Answer Scope, a source under <spanx style="verb">source_equivocation</spanx> for a field contributes no single agreed value to the Section 6.2 comparison for that field — a source that disagrees with itself cannot corroborate. Where an Answer Scope applies (Section 9.3), that withholding is <strong>replaced, not waived</strong>: the source's per-vantage values enter the cohort comparison of Section 6.2 instead. <strong>This rule is central:</strong> withholding the source without replacing it would let a source that declares variation serve one vantage a forged value and be recorded <spanx style="verb">AGREE</spanx>, because nothing would remain to compare that value against — strictly worse than not honouring the declaration at all.</t>

</section>
</section>
<section anchor="observation-time-and-confirmation"><name>Observation Time and Confirmation</name>

<t>Sources propagate updates asynchronously; a legitimate change is served inconsistently for a bounded window. Every sweep <bcp14>MUST</bcp14> carry an <spanx style="verb">observed_at</spanx> timestamp, which is the observation time of every claim in that sweep; claims do not carry individual timestamps (Section 10). Every finding <bcp14>MUST</bcp14> carry a <spanx style="verb">confirmation</spanx> state:</t>

<t><list style="symbols">
  <t><strong><spanx style="verb">suspected</spanx></strong> — first observation of the disagreement.</t>
  <t><strong><spanx style="verb">confirmed</spanx></strong> — the disagreement was re-observed in a sweep whose <spanx style="verb">observed_at</spanx> exceeds the first observation by at least the deployment's configured <strong>staleness window</strong>.</t>
</list></t>

<t>A deployment <bcp14>MUST</bcp14> configure exactly one staleness window, expressed in seconds, applied to every finding in every sweep it produces, and <bcp14>MUST</bcp14> record it in each Corroboration Record (Section 10). It is derived from the propagation characteristics of the sources swept (TTLs, sync intervals) and <bcp14>SHOULD</bcp14> be set from the slowest of them, since a window shorter than a source's real propagation time manufactures confirmed findings from ordinary delay. Per-source or per-pair windows are deliberately not provided: the record carries a single <spanx style="verb">staleness_window_s</spanx>, so a verifier re-deriving confirmation from recorded bytes has exactly one window to apply. A verifier evaluates confirmation deterministically from the recorded timestamps and the window recorded in the Corroboration Record; no external clock is consulted. Consumers <bcp14>SHOULD</bcp14> treat <spanx style="verb">suspected</spanx> findings as monitoring signals and <spanx style="verb">confirmed</spanx> findings as evidence.</t>

</section>
<section anchor="the-self-description"><name>The Self-Description</name>

<t>Corroboration requires knowing each source's name for the same agent (<strong>identity correspondence</strong>). This document defines an <bcp14>OPTIONAL</bcp14> agent-signed bundle that makes the correspondence verifiable rather than configured:</t>

<figure><artwork><![CDATA[
{
  "version": "self-description/0.1",
  "subject": "did:key:z6Mk...",
  "seq": 7,
  "aliases": { "<source-label-or-namespace>": "<name>", ... },
  "endpoints": [ "<uri>", ... ],
  "signature": "<base64 Ed25519 over JCS of all other members>"
}
]]></artwork></figure>

<t>Rules:</t>

<t><list style="numbers" type="1">
  <t>The signature <bcp14>MUST</bcp14> verify against the key encoded in <spanx style="verb">subject</spanx> (offline; <spanx style="verb">did:key</spanx> per its method specification <xref target="DIDKEY"/>). On failure the description contributes nothing and the consumer falls back to caller-supplied correspondence. A fallback <bcp14>MUST NOT</bcp14> be silently overridden by an unverifiable description.</t>
  <t><strong>Supersession.</strong> <spanx style="verb">seq</spanx> is a monotonically increasing integer. Among validly signed descriptions for the same subject, the description with the highest <spanx style="verb">seq</spanx> value is authoritative. A source serving a description whose <spanx style="verb">seq</spanx> value is lower than that of a description the consumer has already verified for the same subject is serving superseded material; this <bcp14>SHOULD</bcp14> be reported as a finding of kind <spanx style="verb">stale_description</spanx> attributing that source.</t>
  <t><strong>Agent equivocation.</strong> Two validly signed descriptions for one subject with equal <spanx style="verb">seq</spanx> and differing JCS bytes <bcp14>MUST</bcp14> be reported as a finding of kind <spanx style="verb">agent_equivocation</spanx>. This indicates key compromise or a misbehaving agent and is not attributable to any source.</t>
  <t><strong>Distribution.</strong> The description <bcp14>SHOULD</bcp14> be obtainable from each participating source and <bcp14>MUST</bcp14>, when so distributed, be corroborated as its own layer under this procedure (view: <spanx style="verb">{seq, aliases_digest, endpoints_digest}</spanx>), so that omission or replay of the description by a source is an ordinary finding.</t>
  <t><strong>Verify-back.</strong> A record fetched via an alias asserted in a description <bcp14>MUST</bcp14> bind to the same <spanx style="verb">subject</spanx> key to contribute a claim; a record that does not bind back contributes no claim and <bcp14>MUST NOT</bcp14> produce a divergence finding (Section 5's no-laundering rule extended to correspondence).</t>
</list></t>

<t>The bundle is deliberately the minimal offline-verifiable profile of DID Core's <xref target="DIDCORE"/> <spanx style="verb">alsoKnownAs</spanx> and <spanx style="verb">service</spanx> constructs; implementations integrating richer self-descriptions (e.g., AgentFacts) <bcp14>MAY</bcp14> derive this bundle from them.</t>

</section>
<section anchor="the-answer-scope"><name>The Answer Scope</name>

<t>A source may vary its answers for reasons that are not misbehaviour: data-residency obligations, regional infrastructure, jurisdictional routing. A procedure that reports every such variation as equivocation fires on normal operation, and a detector that fires on normal operation is switched off. This document therefore defines an <bcp14>OPTIONAL</bcp14> source-signed bundle by which an operator declares its variation <strong>in advance</strong>, so that an observed variation can be recorded as one the operator had already described.</t>

<t>An Answer Scope declares an <strong>axis</strong>, never a mapping. "<spanx style="verb">endpoint</spanx> varies by <spanx style="verb">region</spanx>" is checkable: a verifier occupies another region and compares. "EU callers receive X" would be a promise about values, made by the party doing the varying, and a promise adds a label to a finding without adding any means to test it. <strong>Declaration without commitment adds vocabulary, not detection.</strong></t>

<section anchor="the-bundle"><name>The Bundle</name>

<figure><artwork><![CDATA[
{
  "version": "answer-scope/0.1",
  "subject": "did:key:z6Mk...",
  "label": "<the source label this scope covers>",
  "seq": <integer>,
  "scopes": [
    { "field": "<view field>", "vantage_class": "<class>" }
  ],
  "signature": "<base64 Ed25519 over JCS of all other members>"
}
]]></artwork></figure>

<t><spanx style="verb">seq</spanx> is a monotonically increasing integer that the operator increments whenever it reissues the bundle; freshness is supersession by <spanx style="verb">seq</spanx>, so no external clock is required to order two bundles. <spanx style="verb">subject</spanx> identifies the operator's verification key, distinct from the agent key of Section 8: an agent self-description attests an agent about itself, while an Answer Scope attests an operator about its own registry.</t>

</section>
<section anchor="verification"><name>Verification</name>

<t>A verifier <bcp14>MUST</bcp14> reject a bundle unless all of the following hold.</t>

<t><list style="numbers" type="1">
  <t>The signature verifies against the key <spanx style="verb">subject</spanx> encodes.</t>
  <t><spanx style="verb">label</spanx> equals the label the bundle was retrieved from, by exact octet equality — no normalization of scheme, case, port, or trailing path. <strong>This rule is central:</strong> a valid signature establishes that the holder of the <spanx style="verb">subject</spanx> key authored the bundle; it does not, by itself, establish control of any particular source label. Serving the bundle at the label is what supplies that evidence. Inferring equivalence between spellings would let one naming convention acquire authority over another.</t>
  <t>Every <spanx style="verb">vantage_class</spanx> is occupiable (Section 3.1). A verifier <bcp14>MUST</bcp14> maintain an explicit set of classes it accepts and <bcp14>MUST</bcp14> reject any other; widening that set is a deliberate act.</t>
  <t>Every <spanx style="verb">field</spanx> and <spanx style="verb">vantage_class</spanx> matches the token grammar of Section 3.1. Wildcards and catch-alls <bcp14>MUST</bcp14> be rejected at the token level, irrespective of the accepted class set — the permissive form of a declared-scope mechanism is what becomes its attack surface.</t>
  <t>No <spanx style="verb">field</spanx> appears twice. Overlapping scopes would let an operator select, after the fact, whichever applies.</t>
  <t><spanx style="verb">scopes</spanx> carries no more entries than the verifier's configured maximum.</t>
</list></t>

<t>An empty <spanx style="verb">scopes</spanx> list is well-formed and meaningful: the operator positively asserts that it does not vary. This is distinct from publishing nothing, which is ambiguous between "does not vary" and "does not implement this". A source that does not vary <bcp14>SHOULD</bcp14> publish an empty scope rather than remain silent.</t>

</section>
<section anchor="application"><name>Application</name>

<t>An Answer Scope applies to a (source, field) for one sweep iff a verified scope from that source names that field, and <strong>every</strong> vantage at which that source produced a non-null value for that field lies on the declared <spanx style="verb">vantage_class</spanx>. A declaration on one axis says nothing about variation observed on another.</t>

<t>Where it applies, exactly two things change, and an implementation <bcp14>MUST</bcp14> change nothing else:</t>

<t><list style="numbers" type="1">
  <t>The <spanx style="verb">source_equivocation</spanx> finding of Section 6.3 is annotated <spanx style="verb">declared</spanx> (Section 10), carrying the <spanx style="verb">seq</spanx> that was matched.</t>
  <t>The withholding of Section 6.3 is replaced by cohort participation in Section 6.2.</t>
</list></t>

</section>
<section anchor="annotation-not-absolution"><name>Annotation, Not Absolution</name>

<t><strong>A declaration annotates a finding; it <bcp14>MUST NOT</bcp14> withdraw one.</strong> The finding is emitted, and the verdict of Section 10 is computed exactly as though no declaration existed. A corroborator reports what it observed and what the source had said it would do; whether an annotated divergence is acceptable is the consumer's judgement, and fusing that judgement into the procedure would make it wrong for every deployment whose policy differs.</t>

<t>An implementation <bcp14>MUST</bcp14> record, in every annotated finding, which <spanx style="verb">seq</spanx> of the declaration was matched. Without it, a source retroactively legitimises past divergences by publishing a broader scope today.</t>

</section>
<section anchor="scopeviolation"><name>scope_violation</name>

<t>A source that varies a field contrary to an Answer Scope it <em>previously</em> published — most plainly, one whose scope asserted no variation — is not merely exhibiting an undeclared divergence. It has published a constraint and violated it. A corroborator <bcp14>MUST</bcp14> emit a <spanx style="verb">scope_violation</spanx> finding attributing that source. Detail: <spanx style="verb">{source, field, declared_class, observed, declaration_version}</spanx>.</t>

<t><strong>The temporal rule is not optional.</strong> A corroborator <bcp14>MUST NOT</bcp14> emit <spanx style="verb">scope_violation</spanx> unless it can establish that the scope it evaluated was published <em>before</em> the observation it contradicts. Section 9.4 prevents a source retroactively legitimizing a past divergence by publishing a broader scope; the same reasoning applies in the opposite direction, and with a different victim. Without the temporal rule, a narrower scope published after the fact — by the source under duress, or by anyone who can influence what a sweeper fetches — manufactures an accusation about an observation that did not violate anything at the time it was made. Establishing publication order requires a witnessed history of what a source published when, which this document places out of scope (Section 14); until a deployment has one, it <bcp14>MUST NOT</bcp14> emit this kind.</t>

<t>This is the strongest accusation the procedure makes, and it is available only because the declaration precedes the observation. An implementation that cannot demonstrate that ordering has not earned the accusation.</t>

</section>
</section>
<section anchor="the-corroboration-record"><name>The Corroboration Record</name>

<t>An implementation <bcp14>MUST</bcp14> emit a Corroboration Record for every (sweep, subject) pair, <strong>whatever the verdict</strong> — <spanx style="verb">AGREE</spanx>, <spanx style="verb">DIVERGENT</spanx>, or <spanx style="verb">INSUFFICIENT</spanx>. A corroboration trail recording only disagreements cannot prove its checks ran; the agreement record is the positive attestation downstream consumers bind.</t>

<figure><artwork><![CDATA[
{
  "version": "corroboration/0.2",
  "record_id": "<CORR-DIGEST of the object minus these two fields>",
  "subject": { "agent_id": "<id>", "did": "<did:key or null>" },
  "observed_at": "<RFC 3339 UTC, Z suffix>",
  "staleness_window_s": <integer>,
  "verdict": "AGREE" | "DIVERGENT" | "INSUFFICIENT",
  "claims": [
    { "source": "<label>", "vantage": "<label or null>",
      "status": "present" | "absent" | "error",
      "view": { "<field>": "<value or null>", ... } | null,
      "outcome": "<resolver outcome string>" }
  ],
  "findings": [
    { "kind": "<see Section 12>", "agent_id": "<id>",
      "confirmation": "suspected" | "confirmed",
      "declared": true | false,
      "declaration_version": <integer or null>,
      "detail": { ... } }
  ],
  "sweeper": "did:key:z6Mk...",
  "signature": "<base64 Ed25519 over JCS of all other members>"
}
]]></artwork></figure>

<t>Rules:</t>

<t><list style="numbers" type="1">
  <t><spanx style="verb">record_id</spanx> <bcp14>MUST</bcp14> equal the CORR-DIGEST of the record minus <spanx style="verb">record_id</spanx> and <spanx style="verb">signature</spanx>. A verifier <bcp14>MUST</bcp14> recompute and compare. <spanx style="verb">observed_at</spanx> is an RFC 3339 <xref target="RFC3339"/> UTC timestamp with a <spanx style="verb">Z</spanx> suffix.</t>
  <t>The signature <bcp14>MUST</bcp14> verify against <spanx style="verb">sweeper</spanx>. Self-attestation by the sweeping party is the base tier; a record <bcp14>MAY</bcp14> additionally be registered with an append-only transparency service (e.g., a SCITT Transparency Service <xref target="SCITT"/>), in which case a consumer <bcp14>MUST NOT</bcp14> report the anchored tier without verifying an inclusion proof against a log key it trusts.</t>
  <t>All count and duration values are exact integers or decimal strings; floating-point values <bcp14>MUST NOT</bcp14> appear in any digest-bearing field.</t>
  <t><spanx style="verb">claims</spanx> <bcp14>MUST</bcp14> include <spanx style="verb">error</spanx>-status entries (excluded from the diff, preserved for audit).</t>
  <t>A consumer binding a Corroboration Record from another evidence format <bcp14>SHOULD</bcp14> bind <spanx style="verb">record_id</spanx> and <bcp14>SHOULD</bcp14> state the verdict it relied upon.
5a. The verdict <bcp14>MUST</bcp14> be computed as follows, and only as follows. The verdict is <spanx style="verb">INSUFFICIENT</spanx> if and only if the record contains fewer than two <spanx style="verb">present</spanx>-or-<spanx style="verb">absent</spanx> claims. Otherwise the verdict is <spanx style="verb">DIVERGENT</spanx> if and only if <spanx style="verb">findings</spanx> is non-empty, and <spanx style="verb">AGREE</spanx> otherwise. A <spanx style="verb">declared</spanx> annotation on a finding (Section 9.4) does not affect this computation.
5b. <spanx style="verb">observed_at</spanx> is the observation time of every claim in the record. Claims do not carry individual timestamps; a deployment whose sweeps span a period long enough for that to matter <bcp14>SHOULD</bcp14> shorten its sweeps rather than reinterpret this field (Section 14).</t>
  <t><spanx style="verb">declared</spanx> <bcp14>MUST</bcp14> be present on every finding, defaulting to <spanx style="verb">false</spanx>; <spanx style="verb">declaration_version</spanx> <bcp14>MUST</bcp14> carry the matched <spanx style="verb">seq</spanx> when <spanx style="verb">declared</spanx> is <spanx style="verb">true</spanx> and <bcp14>MUST</bcp14> be null otherwise. Neither member participates in any dedup or first-observation key a consumer maintains — they describe what the source had published, not which disagreement was observed, and a source publishing or revising a declaration <bcp14>MUST NOT</bcp14> change the identity of a finding already being tracked.</t>
  <t>A verifier <bcp14>MUST</bcp14> check <spanx style="verb">version</spanx> against the set of record versions it accepts and <bcp14>MUST</bcp14> reject any other. A verifier consuming records issued before this revision <bcp14>MUST</bcp14> accept <spanx style="verb">corroboration/0.1</spanx> alongside <spanx style="verb">corroboration/0.2</spanx>; the added members are the only difference, and their absence is read as <spanx style="verb">declared: false</spanx>.</t>
</list></t>

</section>
<section anchor="reference-layer-instantiations"><name>Reference Layer Instantiations</name>

<t><strong>Discovery</strong> — view <spanx style="verb">{endpoint, did}</spanx>. Resolvers: a by-id HTTP registry resolver (<spanx style="verb">GET {base}/api/agents/{id}</spanx>, path injectable); a two-hop index resolver (resolve a locator to <spanx style="verb">{registry_url, identifier}</spanx>, then fetch the record; a missing or empty hop field yields an <spanx style="verb">error</spanx> claim, a not-found at either hop is <spanx style="verb">absent</spanx>). The <spanx style="verb">did</spanx> field is populated only per Section 5's verified-field rule, from a signed record verified offline against its embedded <spanx style="verb">did:key</spanx>, with subject binding to the outer id.</t>

<t><strong>Identity</strong> — view <spanx style="verb">{key}</spanx>, the agent's Ed25519 verification key, represented in <spanx style="verb">did:key</spanx> multibase form (the encoding shared by <spanx style="verb">did:key</spanx> identifiers and <spanx style="verb">Ed25519VerificationKey2020</spanx> <xref target="EDSIG2020"/> <spanx style="verb">publicKeyMultibase</spanx>, so keys compare as strings). Resolvers: <spanx style="verb">did:key</spanx> (offline; the self-certifying root), <spanx style="verb">did:web</spanx> (fetched from the method-specified document location; <spanx style="verb">404</spanx> is <spanx style="verb">absent</spanx>), and a Universal Resolver adapter. A method serving a different key than the root is a <spanx style="verb">key</spanx> divergence.</t>

</section>
<section anchor="finding-kinds-and-extensibility"><name>Finding Kinds and Extensibility</name>

<t>Kinds seeded by this document: <spanx style="verb">omission</spanx>, <spanx style="verb">source_equivocation</spanx>, <spanx style="verb">scope_violation</spanx>, <spanx style="verb">stale_description</spanx>, <spanx style="verb">agent_equivocation</spanx>, and one kind per view field name of a layer defined by this document or by an extension specification (this document seeds <spanx style="verb">endpoint</spanx>, <spanx style="verb">did</spanx>, <spanx style="verb">key</spanx>). Bare (un-prefixed) kind names are reserved for values seeded in this document and its successors; any party introducing a new kind <bcp14>MUST</bcp14> namespace it with a reverse-DNS or URI prefix. A consumer <bcp14>MUST</bcp14> treat unknown kinds as informational and <bcp14>MUST NOT</bcp14> reject a record for carrying one.</t>

</section>
<section anchor="conformance"><name>Conformance</name>

<t>A conforming implementation <bcp14>MUST</bcp14> reproduce, for the shared corpus of fixed per-claim inputs, the exact finding set of Section 6 and the exact verdicts of Section 10, including: agreement yields no findings and an <spanx style="verb">AGREE</spanx> record; present-beside-absent yields <spanx style="verb">omission</spanx> with correct attribution; distinct field values yield that field's kind; an <spanx style="verb">error</spanx> claim is excluded and creates no omission; a positive soft 404 is <spanx style="verb">absent</spanx>; vantage disagreement within one source yields <spanx style="verb">source_equivocation</spanx> and, absent an applicable Answer Scope, withholds that source from the cross-source field comparison; where an Answer Scope applies, that finding is annotated <spanx style="verb">declared</spanx> and the source's per-vantage values enter the cohort comparison instead; one subject may carry multiple simultaneous findings; and every sweep yields a record whose <spanx style="verb">record_id</spanx> recomputes. The corpus is view-agnostic and reused by every layer.</t>

<t>Answer Scope support is <bcp14>OPTIONAL</bcp14>. An implementation that does not support it conforms: with no declaration supplied, Section 6.2 yields a single cohort spanning every claim, and the procedure is identical to one with no notion of declaration. An implementation that <em>does</em> support it <bcp14>MUST NOT</bcp14> report <spanx style="verb">AGREE</spanx> for a sweep in which a declared-varying source's cohort disagrees — the redirection of Section 6.3 is not optional for an implementation that honors declarations at all, because honouring the declaration without it is strictly less safe than ignoring the declaration.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t><strong>Independence.</strong> Corroboration among k sources is worth exactly the independence among them. Sources sharing an upstream feed, an operator, or a material incentive may not provide independent corroboration, and can reproduce the same misinformation. This procedure records which sources agreed, enabling diversity-weighted consumption; it cannot manufacture diversity. Deployments <bcp14>SHOULD</bcp14> select sources with distinct operational and data lineage and <bcp14>SHOULD</bcp14> disclose known dependencies.</t>

<t><strong>Residual equivocation.</strong> Cross-vantage comparison detects per-network-path splits. It cannot detect a source lying identically to all of one consumer's vantages while answering other consumers differently; that residual requires witnessed, append-only transparency over served answers (<xref target="RFC6962"/>, <xref target="RFC9162"/>, <xref target="CONIKS"/>), out of scope here. The Corroboration Record is forward-compatible with such logs (a witnessed history of records).</t>

<t><strong>Sweep-level observation time.</strong> A record carries one <spanx style="verb">observed_at</spanx> for every claim in it, so a sweep that takes appreciable wall-clock time records claims as simultaneous when they were not. Confirmation (Section 7) is unaffected as long as the staleness window exceeds sweep duration, which it will for any realistic configuration. It does mean a record cannot be used to establish the relative ordering of two sources' answers within one sweep, and consumers <bcp14>MUST NOT</bcp14> read it as though it could.</t>

<t><strong>Watch-set bootstrap.</strong> A consumer cannot detect omission of an agent it never watched; a watch set enumerated from a single source inherits that source's omissions. Watch-set construction <bcp14>SHOULD</bcp14> draw on multiple sources.</t>

<t><strong>Sweeper honesty.</strong> A record attests the sweep's recorded observations, not the sweeper's honesty; a dishonest sweeper can sign a fiction. Anchoring bounds timing and prevents silent substitution; consumers with high assurance requirements <bcp14>SHOULD</bcp14> corroborate the corroborator — multiple independent sweepers over the same watch set — which this procedure supports without modification (sweep records are themselves views to diff).</t>

<t><strong>Staleness abuse.</strong> An attacker aware of the staleness window can rotate lies faster than confirmation. <spanx style="verb">suspected</spanx> findings therefore <bcp14>MUST</bcp14> be preserved in records even when never confirmed; a pattern of unconfirmed, short-lived divergences from one source is itself signal, and its evaluation is consumer policy.</t>

<t><strong>Self-description replay and squatting.</strong> Addressed structurally in Section 8 (supersession, corroborated distribution, verify-back); implementations <bcp14>MUST NOT</bcp14> skip the verify-back rule, which is the sole defense against alias squatting manufacturing false divergences.</t>

<t><strong>Self-issued declarations.</strong> In every deployed mechanism this procedure draws on, the party authorizing variation is not the party exhibiting it: a parent zone, a parent CA, the subject, or a standards body sets the tolerance. An Answer Scope inverts that — the source declares its own. A declaration is therefore not evidence of legitimacy and <bcp14>MUST NOT</bcp14> be treated as any; it is evidence only of what the source committed to in advance, which is precisely what makes Section 9.5 possible. Occupiability (Section 3.1) is the structural defense: a declaration on an axis a verifier can occupy is falsifiable by observation, while one on an axis it cannot is unfalsifiable self-attestation, which is why this document forbids the latter outright rather than discouraging it. Deployments <bcp14>SHOULD</bcp14> treat a source that declares broadly as less corroborative, not as more compliant.</t>

<t><strong>Observer distinguishability.</strong> A source able to identify the corroborator — by network origin, credential, query shape, or timing — can serve the corroborator its declared answer and other consumers something else, and the procedure records the declared case. Occupiability bounds this but does not eliminate it: it guarantees a verifier <em>can</em> occupy the declared context, not that it is indistinguishable from an ordinary caller while there. Deployments <bcp14>SHOULD</bcp14> sweep from origins not attributable to the sweeping party, and consumers <bcp14>SHOULD</bcp14> weight a declaration lower where the source could plausibly identify the observer. This residual is the one described under <strong>Residual equivocation</strong> and has the same eventual answer: witnessed, append-only logs of served answers.</t>

<t><strong>Privacy.</strong> A watch set reveals the sweeping party's interests to every queried source; records reveal them to every consumer. Deployments handling sensitive watch sets <bcp14>SHOULD</bcp14> consider query padding and record-level access control; both are out of scope.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requests no IANA actions. The finding-kind vocabulary is governed by the namespacing convention of Section 12; this document defines <spanx style="verb">region</spanx> and <spanx style="verb">asn</spanx> as the initial occupiable vantage classes, with the value spaces given in Section 3.1, and a future revision <bcp14>MAY</bcp14> establish an IANA registry for further classes should the set need to grow outside this document and its successors; the record and self-description <spanx style="verb">version</spanx> strings are governed by this document and its successors. A future revision <bcp14>MAY</bcp14> register a media type for the Corroboration Record (candidate: <spanx style="verb">application/corroboration-record+json</spanx>) once transport contexts warrant it.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC3339">
  <front>
    <title>Date and Time on the Internet: Timestamps</title>
    <author fullname="G. Klyne" initials="G." surname="Klyne"/>
    <author fullname="C. Newman" initials="C." surname="Newman"/>
    <date month="July" year="2002"/>
    <abstract>
      <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3339"/>
  <seriesInfo name="DOI" value="10.17487/RFC3339"/>
</reference>
<reference anchor="RFC3986">
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <author fullname="L. Masinter" initials="L." surname="Masinter"/>
    <date month="January" year="2005"/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="66"/>
  <seriesInfo name="RFC" value="3986"/>
  <seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>
<reference anchor="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>
<reference anchor="RFC6793">
  <front>
    <title>BGP Support for Four-Octet Autonomous System (AS) Number Space</title>
    <author fullname="Q. Vohra" initials="Q." surname="Vohra"/>
    <author fullname="E. Chen" initials="E." surname="Chen"/>
    <date month="December" year="2012"/>
    <abstract>
      <t>The Autonomous System number is encoded as a two-octet entity in the base BGP specification. This document describes extensions to BGP to carry the Autonomous System numbers as four-octet entities. This document obsoletes RFC 4893 and updates RFC 4271. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6793"/>
  <seriesInfo name="DOI" value="10.17487/RFC6793"/>
</reference>

<reference anchor="ISO3166" >
  <front>
    <title>Codes for the representation of names of countries and their subdivisions — Part 1: Country codes</title>
    <author >
      <organization>International Organization for Standardization</organization>
    </author>
    <date year="2020"/>
  </front>
  <seriesInfo name="ISO" value="3166-1:2020"/>
</reference>
<reference anchor="DIDCORE" target="https://www.w3.org/TR/did-core/">
  <front>
    <title>Decentralized Identifiers (DIDs) v1.0</title>
    <author >
      <organization>W3C</organization>
    </author>
    <date year="2022" month="July"/>
  </front>
</reference>
<reference anchor="DIDKEY" target="https://w3c-ccg.github.io/did-method-key/">
  <front>
    <title>The did:key Method</title>
    <author >
      <organization>W3C Credentials Community Group</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="EDSIG2020" target="https://w3c-ccg.github.io/lds-ed25519-2020/">
  <front>
    <title>Ed25519Signature2020</title>
    <author initials="M." surname="Sporny">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC6962">
  <front>
    <title>Certificate Transparency</title>
    <author fullname="B. Laurie" initials="B." surname="Laurie"/>
    <author fullname="A. Langley" initials="A." surname="Langley"/>
    <author fullname="E. Kasper" initials="E." surname="Kasper"/>
    <date month="June" year="2013"/>
    <abstract>
      <t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
      <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6962"/>
  <seriesInfo name="DOI" value="10.17487/RFC6962"/>
</reference>
<reference anchor="RFC9162">
  <front>
    <title>Certificate Transparency Version 2.0</title>
    <author fullname="B. Laurie" initials="B." surname="Laurie"/>
    <author fullname="E. Messeri" initials="E." surname="Messeri"/>
    <author fullname="R. Stradling" initials="R." surname="Stradling"/>
    <date month="December" year="2021"/>
    <abstract>
      <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
      <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
      <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9162"/>
  <seriesInfo name="DOI" value="10.17487/RFC9162"/>
</reference>

<reference anchor="CONIKS" target="https://www.usenix.org/conference/usenixsecurity15/technical-sessions/presentation/melara">
  <front>
    <title>CONIKS: Bringing Key Transparency to End Users</title>
    <author initials="M." surname="Melara">
      <organization></organization>
    </author>
    <author initials="A." surname="Blankstein">
      <organization></organization>
    </author>
    <author initials="J." surname="Bonneau">
      <organization></organization>
    </author>
    <author initials="E." surname="Felten">
      <organization></organization>
    </author>
    <author initials="M." surname="Freedman">
      <organization></organization>
    </author>
    <date year="2015"/>
  </front>
  <seriesInfo name="USENIX Security" value="2015"/>
</reference>
<reference anchor="MPIC" target="https://cabforum.org/">
  <front>
    <title>Multi-Perspective Issuance Corroboration (Baseline Requirements amendment)</title>
    <author >
      <organization>CA/Browser Forum</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="ANSV2" target="https://datatracker.ietf.org/doc/draft-narajala-courtney-ansv2/">
  <front>
    <title>Agent Name Service v2 (ANS): A Domain-Anchored Trust Layer for Autonomous AI Agent Identity</title>
    <author initials="V." surname="Narajala">
      <organization></organization>
    </author>
    <author initials="M." surname="Courtney">
      <organization></organization>
    </author>
    <date year="2026" month="April"/>
  </front>
</reference>
<reference anchor="SCITT" target="https://datatracker.ietf.org/doc/draft-ietf-scitt-architecture/">
  <front>
    <title>An Architecture for Trustworthy and Transparent Digital Supply Chains (SCITT)</title>
    <author initials="H." surname="Birkholz">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CAPSULE" target="https://datatracker.ietf.org/doc/draft-mih-scitt-agent-action-capsule/">
  <front>
    <title>An Agent Action Capsule Profile for SCITT</title>
    <author initials="S." surname="Mih">
      <organization></organization>
    </author>
    <date year="2026" month="June"/>
  </front>
</reference>


    </references>

</references>


<?line 416?>

<section anchor="changes-from-00"><name>Changes from -00</name>

<t><list style="symbols">
  <t><strong>Section 3.1 (new).</strong> Vantage becomes a controlled term: <spanx style="verb">class:value</spanx> identifiers compared by exact octet equality, constrained by shared denotation, occupiability, non-overlap and bounded cardinality. In -00 a vantage was "a network perspective" with no constraint, which left cross-source comparison within a vantage unsound.</t>
  <t><strong>Section 6.2.</strong> Cross-source field comparison is scoped to a cohort. Where no source declares variation for a field this is a single cohort spanning every claim, i.e. the -00 comparison unchanged.</t>
  <t><strong>Section 6.3.</strong> The withholding of an equivocating source from the cross-source comparison becomes conditional. It is <em>replaced</em> by cohort participation where an Answer Scope applies, never waived.</t>
  <t><strong>Section 9 (new).</strong> The Answer Scope: a source-signed, in-advance declaration of which fields it varies and along which vantage class, with the verification rules that keep it from becoming a blanket exemption. Declaration annotates a finding; it never withdraws one.</t>
  <t><strong>Section 10.</strong> Findings carry <spanx style="verb">declared</spanx> and <spanx style="verb">declaration_version</spanx>; record version becomes <spanx style="verb">corroboration/0.2</spanx>, and a verifier is now required to check the version against an accepted set (<spanx style="verb">corroboration/0.1</spanx> remains acceptable).</t>
  <t><strong>Section 12.</strong> Seeds the <spanx style="verb">scope_violation</spanx> kind.</t>
  <t><strong>Section 13.</strong> Conformance states that Answer Scope support is <bcp14>OPTIONAL</bcp14> and that an implementation without it conforms unchanged; an implementation with it <bcp14>MUST</bcp14> perform the redirection.</t>
  <t><strong>Section 14.</strong> Adds <strong>Self-issued declarations</strong> and <strong>Observer distinguishability</strong>.</t>
  <t><strong>Section 15.</strong> Defines <spanx style="verb">region</spanx> and <spanx style="verb">asn</spanx> as the initial occupiable vantage classes and notes an IANA registry as a future option.</t>
</list></t>

<t>Editorial and precision changes throughout, following review:</t>

<t><list style="symbols">
  <t>The abstract and Section 1 no longer state that a signature offers no defense; they state that a signature does not, by itself, defend against omission or equivocation, and that self-certification <em>detects</em> tampering when verified against an expected identity.</t>
  <t><strong>Section 3.1</strong> identifies its constraint as a regular expression, and gives <spanx style="verb">region</spanx> and <spanx style="verb">asn</spanx> externally defined value spaces (ISO 3166-1 alpha-2 <xref target="ISO3166"/> and 32-bit ASNs <xref target="RFC6793"/>). Seeding a class name without a value space left shared denotation unenforceable.</t>
  <t><strong>Section 6.2</strong> states the cohort rule as four numbered rules rather than prose.</t>
  <t><strong>Sections 2, 3, 7 and 10</strong> reconcile <spanx style="verb">observed_at</spanx>. <spanx style="verb">-00</spanx> and earlier <spanx style="verb">-01</spanx> text required every <em>claim</em> to carry one while the record schema carried a single sweep-level value; the sweep-level value is now normative and the limitation is recorded in Section 14.</t>
  <t><strong>Section 7</strong> requires exactly one staleness window per deployment and says why per-source windows are not offered: the record carries a single <spanx style="verb">staleness_window_s</spanx>.</t>
  <t><strong>Section 9.5</strong> requires that a scope be shown to predate the observation it contradicts before <spanx style="verb">scope_violation</spanx> may be emitted, and states that a deployment without a witnessed publication history <bcp14>MUST NOT</bcp14> emit the kind. Without it, a narrower scope published after the fact manufactures an accusation.</t>
  <t><strong>Section 10</strong> states the verdict computation exhaustively, and drops "monetary" from the numeric rule (no monetary fields are defined).</t>
  <t><strong>Section 12</strong> no longer refers to a "registered layer"; this document defines no layer registry.</t>
  <t><strong>Section 4</strong> replaces the language-specific "<bcp14>MUST NOT</bcp14> raise" with a requirement to return an <spanx style="verb">error</spanx> claim.</t>
</list></t>

</section>
<section anchor="mapping-to-the-reference-implementation"><name>Mapping to the Reference Implementation</name>

<t>Every normative element of this document is implemented in the reference implementation, split across two packages: the source-agnostic <strong>sm-resolver</strong> kernel (the claim model of Section 3, the view contract of Section 5, the diff of Section 6, and the confirmation discipline of Section 7, producing an unsigned sweep result with the verdict of Section 10) and <strong>sm-divergence</strong> built on it (the reference discovery and identity layers of Section 11, the agent self-description of Section 8, and the signing that seals a sweep result into the Corroboration Record of Section 10). The <spanx style="verb">present</spanx>/<spanx style="verb">absent</spanx>/<spanx style="verb">error</spanx> classification (Section 4), the view contract (Section 5), and the diff (Section 6) are the kernel's stable core; the vantage axis and <spanx style="verb">source_equivocation</spanx> (Sections 3, 6.3), observation time and confirmation (Section 7), the self-description schema and hardening (Section 8), and the Corroboration Record emitted on every verdict (Section 10) are all present and covered by the conformance corpus. The Answer Scope of Section 9 is split the same way: the kernel accepts an already-verified declaration as inert data and performs the cohort comparison of Section 6.2, while fetching, verifying and matching the bundle belong to the layer above — the kernel holds no keys and performs no I/O.</t>

<t>The reference implementation is available as open-source software (MIT License) at https://github.com/Sharathvc23/sm-divergence and https://github.com/Sharathvc23/sm-resolver, and is published on PyPI as <spanx style="verb">sm-divergence</spanx> and <spanx style="verb">sm-resolver</spanx>. The companion informative essay is "The Quilt That Checks Itself" (Stellarminds.ai / Project NANDA research).</t>

</section>
<section anchor="related"><name>Related Work</name>

<t>The multi-perspective corroboration pattern this document applies to agent discovery mirrors the CA/Browser Forum's Multi-Perspective Issuance Corroboration <xref target="MPIC"/> for certificate issuance and transparency-log constructions <xref target="RFC6962"/> <xref target="RFC9162"/> <xref target="CONIKS"/>. Adjacent agent-identity work includes Agent Name Service v2 <xref target="ANSV2"/> and SCITT-based evidence profiles <xref target="SCITT"/> <xref target="CAPSULE"/>; this document is complementary, defining the cross-source comparison and record rather than a naming or transparency substrate.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA6196XYbR7LmfzxFDfuHSVwAFLXZIvu4h6akbrat5YqSffv2
6SMUUEWyrEIVurJACtaozzzEPMA8yzzKPMnEF0suACj79rR/WARQS2ZkZCxf
LDkejwd91dflcfZiVffV+KJddfMyO2u7rp21Xd5XbZNdtl12ep6dXpVNnz2t
3Ly9Kbv1IJ/NuvLmePP79OZB0c6bfEEvKLr8sh/Pr/OG/hrnuGnclVeV67v1
eB7fM753NJjnfXnVduvjzPXFoFp2x1nfrVx//969J/fuD/KuzI+zi3K+6qp+
Pbhtuw9XXbtaHmcvyx6fsp/of1Vzlf0RXw/caraonKOH9+slDeb82dvngw/l
mi4tjgdZNsYEeUyOPxV+lvhkw+QPyVD5m77LG7ekITXz9cD1NMH3ed029Jp1
6QbL6jj7a9/OR5lru74rLx39tV7IH/N2scBL/zbIV/1128lYqsbR5CbZmRCL
vssyIeLFdU4vvk5+aburvKl+4fHQFX1Z13m3qJrCTfKKrygXeVUTJeXm/+52
XEJ0PM6u+37pjg8Pd10wJzofZ2+q+fWibQr+CmTBK8/yuiIeaSoZz7xdNT1W
7l1T9WVBI6K1dFl7mZ0uyq6a54Om7RY03JsS033z/Oz+0dET/fObo68f6p8P
Hjywbx88+eaxXfD1N4/0z8dfP3mAP88vXj04eswXZJmy895ZW9BLwbr9dUlD
XXalI0oLR9NYQE8elAy3og9EUlxcdRmxS1HdVOAXl/3f//m/std512dHNFWZ
G91ET9/jF4aFw39jLAfxV9OXXcMvy+vsVbRCPKQLMEneFfod31sQlY6z+/fu
3+OPrsSYquaytUfTNI8zTHR8dKyXPT1/evbqzbN05k/LOU20o0X5hah/XtCH
6rIqO5ft0/XuILs5mtz7wth/enCWDuj++N7X8oa8uyr7wCe3t7eT2wcTuuvw
7ZvDoiqwj8tDGdj3z/6SjustrQNdc0zbLntR0ouLLw8iO+tKHnxeOyL8YrEi
flrrht45nAfz8Xx+Nbmq+uvVbFK1PKQFv2pMb8XAnj29OP8jqJeO7Vlx/9Gj
oycX1RUt2qorccXu0fHefDHJLpbE8evfOI66cONSXjHGow8HWNh0Ezx+8vi+
/vnkSP48e/Xy/PuLDb6W77LvOpJuEHDfEznfRhIo69vsGXHyO+KgO1jU5vCi
pF2ep1+fTrLv6rz5QDKgatKf/kw/tU1T5qv0+2eT7HlZ92Wz9YLnXVkWizxl
8KNHdzD4u4tnL8//w0t1miwu3ruT9Va0oauPzH7ztrksMf3yUL51+pCjR4d9
Ob9uSOzUY1eyCnCHsTA4XBgVXrw+P0uJLUrxNRFyWc6xVtm5c6u82VKR+9/l
rqyrpszelH9fVV3JUj0jGdMU+PPgC6x+dnr4XdfeEj2y5223Wuyc7zyfXeJH
ni1dcfry4sf76WBFD7+kdxIJu5uKBnlzP9unKw9oWbOnLWmBZnzazGkIJBje
Qp1mP+Rrei9r+FXfNu2iXbmg7EV49OsvsNGPE3pll/+c1/nW8pO07PqmXKfi
5PH43sOdc6QrcpJb8w9lN6nK/pLnSvbDoZgOjb6GhIw8dkxMf3Mf1Lg4O3/7
doMaTXbaza9JA82xoXmKPGVS+f31moV92DawX2i7kqy+WC2X9RoKlmaR7fOT
71g9nuafaFNU3Yfrtv7ln5kUvho7Uq79OI+Gi0mdnb6+ePfDs+1p8dKczpnx
zvKlW9Vl9rprL6tapslj/sKQybJ4UV1vLcrjf2b8i+rahs8WXc7DGs9lWIeD
wXg8zvKZwyP6wcBbWRlR3VtZxI1YjspUFdQwSfmraxpvUS5pD2HGjm1TMpqq
Zl6vCpJ9AzXMKnwLhQ6hAsanj6SBMhH99AFPJ4uSrLIrN6G9QGLnioglT6Rf
mgFZh95GoMtllNlsnbVqN46yWxLntMx4cZaTRUG6jsbcZ/iO3kGEn60H2P03
7ZylwkiGQ5cX1SWLJzza3UIVk5AOX7YzXEhfy9hUB2W0vPmAfyH6dEQZImFW
tGSpNG0/wuCqnqTO5SgryksiEg0aTNtnJY2UdvWsvM5vqrabZG+vKwdLfLVg
QpIwA5lpEVJrNlt27bws8O7+Ou+zeZ3T3PlKMmeVXF85fF8tyP5vVz3/IMTS
WRTZZdcu+PtGbfGbnGTtVXlCRCtWtDryACYCGcC0AfNZXQ5uqvLWnTBZ/BVV
Q9dcEhcQFR2vAM2VTCsyTWnhq3mW97T8sxVGj1vpu+ZqVblrMrxrYo6+Ih1b
Yl5LIg7PsSBxv5YxLonkdAsGT7fmV6StQKAT5pdyUYFNeT3KYpDK+zey+tht
JTs9tKrlMmLNzD9tJLRseUnKGzD5vByI9nfgvWxG88NqFtVV6XqsVhmtROWU
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

-->

</rfc>

