Skip to content

Evidence evaluation lacks an issuer axis: verifiers cannot require who issued a chain #8

Description

@y1o1

Problem

A verifier has no normative way to require conditions on who issued a chain it accepts.

  • The EvidenceView manifest spine is (BodyAddress, WireVariantID) pairs and carries no issuer axis.
  • A decision profile is {ID, RequiredScopes[]} — it can only require scopes, so the "what a verifier requires" layer is under-provisioned for issuer identity.
  • SOURCE_CREDENTIAL_ATTESTATION@1 counts authenticity (n/n), not identity, so it cannot be reused for issuer requirements.

Direction (decided)

  • Add the axis on the generic side (this catalog); domain profiles supply only the value source (the domain's trust anchor). Issuer conditions belong to the policy/decision layer (claims.contract.distinct-from-profile).
  • Do not add issuer to the manifest: the issuer is deterministically derivable from the body-addressed chain, so a manifest field would be redundant and a breaking change to EvidenceViewID.

Required predicates

  1. chain origin is X
  2. X appears somewhere in the chain
  3. every issuer in the chain is within a trust set
  4. no issuer outside X (only-X)

Open questions

  • Name and shape of the vector-exposed field (array in spine order?).
  • Assumptions above predate the 2026-08 purpose-first rebuild (D013 EvidenceView / manifest extension) — re-verify against current main before starting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions