Skip to content

Proposal: tamper-evident provenance via an optional verifiable-attestation convention #408

Description

@GitSerge-crypto

Proposal: tamper-evident provenance via an optional verifiable-attestation convention

Statewave already tags memories with provenance (a free-form dict on episodes/derived memories). Today that field is useful for display and filtering, but nothing distinguishes claimed provenance from verifiable provenance — any client can write anything.

Idea: keep the schema untouched, define an optional convention inside provenance:

provenance = {
    "source": "crm-import",          # existing fields unchanged
    "attestation": {                  # optional, new convention
        "receipt_id": "<8-hex>",      # locator for a public verification endpoint
        "work_hash": "<sha256 of canonical payload>",
        "verifier_url": "https://verify.aotrust.link/s/{receipt_id}",
    }
}

The attestation is an Ed25519-signed receipt over the canonical payload hash, issued by an independent notary (we run a free public verifier — PDR receipts, 239 bytes, daily Merkle-anchored on NEAR testnet; verify URL is public and keyless). A consumer can then distinguish:

  • provenance.attestation present + verify passes → memory content is byte-identical to what the source system attested
  • no attestation → exactly today's behavior

Why this fits statewave's philosophy: you already guarantee reproducible context internally; this adds provable origin for the ingest side — useful for audit/compliance consumers, agent-to-agent trust, and "prove this memory really came from system X at time T" questions. It's also deliberately boring: no schema migration, no required changes, opt-in per-episode.

I'd be happy to PR (1) a docs page defining the convention, (2) an optional statewave-aotrust helper (single function: attest(payload) -> attestation dict) + one round-trip test. If maintainers prefer, the convention alone (docs-only PR) is a fine first step.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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