Skip to content

Proposal: optional causal context binding for AetherProof receipts #1

Description

@safal207

Hi @pulkit6732 — following our discussion in karpathy/autoresearch#599, I looked through AetherProof’s receipt model. The existing signed preimage already gives a strong authenticity and tamper-evidence boundary around model root, input commitment, output hash, timestamp, log sequence, hardware evidence, and log anchor.

One optional extension that could make the receipt easier to integrate into agent runtimes is a small causal-context envelope, without changing the core verification model.

For example:

{
"action_id": "act_042",
"run_id": "run_017",
"parent_event_id": "evt_991",
"policy_decision_id": "dec_204",
"evidence_refs": ["mem_12", "file_88"],
"purpose": "tool_authorization | experiment_verification | answer_generation"
}

The invariant would be:

«A cryptographic receipt proves the signed claim is authentic and unmodified; the causal envelope proves which runtime decision and evidence context the claim belongs to.»

This could be implemented in a backward-compatible way as either:

  1. an optional canonical "context_commitment" field included in the signed preimage; or
  2. a namespaced extension object whose canonical hash is included in the signed preimage.

Benefits:

  • binds a receipt to one exact agent action or experiment step;
  • prevents a valid receipt from being replayed in a different causal context;
  • connects runtime policy decisions to hardware-backed evidence;
  • keeps AetherProof provider-neutral and offline-verifiable;
  • gives agent frameworks a stable bridge from decision receipts to execution attestation.

A minimal test case could be:

  • same output and same hardware evidence, but different "action_id" → different signed receipt;
  • same receipt reused under a different "policy_decision_id" → verifier rejects the context mismatch.

I’m happy to draft a compact fixture/schema or a small compatibility test if this direction fits the project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions