Skip to content

[v1.1 spec] Challenge object + control_status descriptor (parent: #1) #8

Description

@tomjwxf

Parent: #1

Tracks the v1.1 spec deliverables that closed out of the design discussion in #1. Architecture and contributor consensus settled there; this issue tracks conversion to spec text + reference implementation.

Scope

Two extensions, both additive on top of v1.0 (commitment-mode + Merkle root, currently in flight for draft-03):

  1. Challenge object as an optional first-class field on receipts that reference a prior claim plus signed counter-evidence
  2. control_status descriptor field so consumers can distinguish post-hoc receipting from bound publication

Normative requirements (closed in #1)

  • Receipts stay scoped to attribution / integrity / ordering. No belief semantics in the receipt format.
  • Belief layer remains separate. Spec includes explicit "belief layer does not need to converge" text.
  • Five-category state space adopted as the canonical knowledge-unit decomposition: Attribution, Procedure, Dissent / Consensus, Supersession / Invalidation, Control Status.
  • Optional challenge object with three fields: challenges_receipt, counter_evidence_receipt, claim_type.
  • claim_type is a closed v1 enum (refutation, qualification, supersession) with an extends escape hatch for domain-specific extensions.
  • Independence weighting is OUT of the receipt format. Aggregator-side computation from the public record using issuer_id + counter_evidence_receipt.
  • control_status machine-readable field added as a descriptor dimension on governance_attestation (lands at aeoess/agent-governance-vocabulary crosswalk side, referenced informatively from the spec).

Schema sketch (from #1)

"challenge": {
  "challenges_receipt": "sha256:<receipt-id-of-the-challenged-claim>",
  "counter_evidence_receipt": "sha256:<receipt-id-of-signers-own-counter-observation>",
  "claim_type": "refutation",
  "extends": null
}

A receipt with challenge.counter_evidence_receipt: null is a noise challenge by definition; aggregators filter categorically.

Deliverables

  • specs/draft-farley-acta-signed-receipts-v1.1-challenge-object.md (working draft of the v1.1 extension)
  • Test vectors for the challenge object (positive: well-formed challenge; negative: missing counter-evidence; supersession transition)
  • Reference implementation in examples/commitment-receipts/src/ extending the v1.0 receipt with optional challenge
  • Follow-up crosswalk PR at aeoess/agent-governance-vocabulary adding control_status, enforcement_class, replay_class, and refusal_authority descriptor fields (the original crosswalk/veritasacta.yaml PR v3 envelope support: accept Revettr-style wrapped envelopes with sibling Ed25519 signatures #5 is merged; this is a follow-up that adds the new descriptor surface)

Coordination

Three external contributors actively engaged in #1: @QueBallSharken (five-category decomposition), @aeoess (challenge cost + independence weighting mechanisms; closed-enum + extends refinement), @Shagun0402 (offered to co-author and pressure-test). Joint spec draft proposed; this issue is the working artifact.

Out of scope for v1.1

  • Receipt DAG references[] for cross-org linking (deferred; orthogonal feature)
  • Revocation accumulators, redaction receipts, temporal anchoring, policy version pinning, compliance bundle format (all v1.2)
  • Predicate disclosures (v2; requires range-proof machinery)
  • Anything VOPRF or issuer-blind specific (separate patent track; no spec disclosure)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions