<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[THE AI NOTARY]]></title><description><![CDATA[THE AI NOTARY]]></description><link>https://aiattestation.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Fri, 23 Oct 2026 14:29:48 GMT</lastBuildDate><atom:link href="https://aiattestation.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Why AI-Generated Content Has No Cryptographic Provenance. And What Fixing It Actually Requires]]></title><description><![CDATA[A technical deep-dive into the missing trust layer of the AI economy]]></description><link>https://aiattestation.hashnode.dev/why-ai-generated-content-has-no-cryptographic-provenance-and-what-fixing-it-actually-requires</link><guid isPermaLink="true">https://aiattestation.hashnode.dev/why-ai-generated-content-has-no-cryptographic-provenance-and-what-fixing-it-actually-requires</guid><category><![CDATA[Cryptography]]></category><category><![CDATA[Security]]></category><category><![CDATA[distributed system]]></category><category><![CDATA[AI]]></category><category><![CDATA[distributed systems]]></category><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Tue, 09 Jun 2026 06:52:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a27964587bf40b606f2c5e4/02789215-e2b3-480c-a2f9-f196d2ad015d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a question that no AI system in production today can answer with cryptographic certainty:</p>
<p><em>"Prove to me that this content was generated by your AI system, at this specific time, without modification, under these specific conditions."</em></p>
<p>Not approximately. Not probably. Cryptographically, with a verifiable proof that doesn't require trusting the organisation making the claim.</p>
<p>This is not an exotic requirement. It's the same standard we apply to HTTPS certificates, code signing, and financial transaction records. We have solved this problem in every other domain where trust matters at scale. We have not solved it for AI outputs.</p>
<p>This article is about why that matters technically, what a correct solution actually requires architecturally, and why the problem is significantly harder than it first appears.</p>
<h4>Why provenance matters more than detection</h4>
<p>The dominant approach to AI content trust today is detection, training classifiers to identify whether content was AI-generated. This approach has a fundamental limitation that makes it unsuitable for high-stakes use cases: it produces probabilities, not proofs.</p>
<p>A detection model saying "87% likelihood this was AI-generated" is legally useless in a court filing, a financial audit, or an FDA documentation review. These contexts require <strong>non-repudiation</strong>, a cryptographically verifiable record that cannot be produced retroactively, cannot be forged without access to a private key, and can be independently verified by any party holding the public key.</p>
<p>Watermarking approaches including Google's SynthID improve on pure detection but still fall short. Watermarks can be stripped through paraphrasing, translation, or format conversion. They're embedded in the content, meaning any transformation risks destroying the provenance signal. And they require access to the watermark detector, there's no independent verification pathway without trusting the watermark issuer.</p>
<p>The correct mental model is not detection. It's <strong>attestation</strong>. The difference is architectural.</p>
<h4>What cryptographic attestation actually requires</h4>
<p>A correct AI output attestation system needs to solve several distinct technical problems simultaneously.</p>
<p><strong>The binding problem</strong></p>
<p>You need to cryptographically bind the output to the generation event in a way that's verifiable without storing the content itself. SHA-256 hashing solves this, the hash is a fingerprint that proves content integrity without requiring the attestation infrastructure to hold actual content. Privacy by design, not by policy.</p>
<p>The hash binding works both ways: given a hash in an attestation certificate, any party can verify whether a specific piece of content matches it. Given the content, any party can independently compute the hash and compare. No trusted intermediary required for verification.</p>
<p><strong>The identity problem</strong></p>
<p>The attestation needs to carry a verifiable cryptographic identity for the AI system that produced it, not a name string, but a certificate rooted in a hierarchy that can be independently validated. This means X.509 v3 certificates, a CA hierarchy with proper constraints, and OCSP revocation support.</p>
<p>The certificate hierarchy looks like this:</p>
<p>Root CA (offline, HSM-protected) │ ├── Provider CA │ ├── Anthropic Signing Certificate │ ├── OpenAI Signing Certificate<br />│ ├── Google Signing Certificate │ └── [Enterprise Deployment Certificates] │ └── Timestamp Authority (RFC 3161 compliant)</p>
<p>Verification of any attestation requires only the root CA public key, exactly how your browser verifies HTTPS. Independent, offline-capable, no trust required in the attestation infrastructure beyond the root certificate.</p>
<p><strong>The timestamp problem</strong></p>
<p>A timestamp embedded in a signed object is only meaningful if it's independently verifiable and provably cannot be backdated. This requires RFC 3161 Timestamp Authority integration, the TSA issues a signed timestamp token over the hash of the data being timestamped. The token is verifiable against the TSA's public key independently of the attestation provider.</p>
<p>Without RFC 3161, any claimed timestamp in an attestation can be set to any value by whoever controls the signing key. With RFC 3161, the timestamp is independently anchored.</p>
<p><strong>The modification chain problem</strong></p>
<p>AI-generated content is almost always edited by humans before use. A provenance system that only attests to generation and treats any subsequent modification as invalidating the attestation is practically unusable.</p>
<p>The correct approach is delta attestation, a chain of attestation objects where each modification event produces a new attestation that references its parent:</p>
<p><code>{ "attestation_id": "uuid-v4-002", "modification_chain": { "parent_attestation_id": "uuid-v4-001", "modification_type": "human_edit", "human_modified": true, "modifier_identity": "" } }</code></p>
<p>This maintains the full provenance chain through the content lifecycle while accurately representing what happened at each step.</p>
<p><strong>The open-source model problem</strong></p>
<p>Closed AI providers can integrate attestation at the API layer, their infrastructure issues certificates as part of the generation response. Open-source models deployed on private infrastructure have no centralised authority to issue provider certificates.</p>
<p>The solution is a <strong>sidecar attestation agent</strong>, a trusted module deployed alongside the model that:</p>
<ul>
<li><p>Holds a signing certificate issued under an enterprise CA sub-hierarchy</p>
</li>
<li><p>Intercepts generation requests and responses</p>
</li>
<li><p>Issues attestation objects for each generation event</p>
</li>
<li><p>Maintains a local append-only audit log anchored to the enterprise's PKI</p>
</li>
</ul>
<p>This means an organisation running Llama on their own infrastructure can issue attestation certificates under their own CA, with certificates traceable to the AI Notary root through the enterprise CA chain.</p>
<p><strong>The multi-model pipeline problem</strong></p>
<p>Modern AI workflows chain multiple models. A document drafted by GPT-4, edited by Claude, with images from a diffusion model, assembled by an agent, no current approach handles this.</p>
<p>The correct data structure is a <strong>provenance DAG</strong>, a directed acyclic graph of attestation objects where each node references its parents:</p>
<p><code>{ "attestation_id": "uuid-final", "provenance_graph": { "parents": [ "uuid-gpt4-draft", "uuid-claude-edit", "uuid-dalle-image" ], "assembly_agent": "uuid-agent-session" } }</code></p>
<p>This enables full reconstruction of the generation pipeline and attribution of each component to its source model.</p>
<h4><strong>The core attestation object specification</strong></h4>
<p>Pulling these requirements together, the Attestation Object looks like this:</p>
<p><code>{ "aon_version": "1.0", "attestation_id": "550e8400-e29b-41d4-a716-446655440000", "timestamp": { "iso8601": "2026-06-09T06:00:00Z", "rfc3161_token": "", "unix_epoch": 1780000000 }, "ai_system": { "provider_id": "anthropic", "model_id": "claude-sonnet-4-6", "model_version_hash": "sha256:3a4f...", "deployment_environment": "cloud_api", "provider_certificate": "&lt;X.509 cert chain&gt;" }, "content_hashes": { "input_hash": "sha256:7b2c...", "output_hash": "sha256:9d1e...", "hash_algorithm": "SHA-256" }, "generation_context": { "authorizing_entity": "", "policy_version": "v2.3", "constraints_active": [ "safety_filter_v3", "output_length_4096" ], "agent_session_id": null }, "modification_chain": { "parent_attestation_id": null, "modification_type": "original", "human_modified": false }, "cryptographic_proof": { "signature": "", "signing_certificate": "", "certificate_chain": "", "revocation_check": "ocsp_stapled" } }</code></p>
<p>The signature covers the canonical JSON serialisation of all fields except <code>cryptographic_proof</code> itself. Verification is straightforward: serialise the object without the proof field, verify the signature against the signing certificate, validate the certificate chain to the root CA, check OCSP status, verify the RFC 3161 timestamp token.</p>
<h4>The three genuinely unsolved problems</h4>
<p><strong>Zero-knowledge attestation properties</strong></p>
<p>There are cases where you need to verify that a generation had specific properties, "safety filtering was active," "this was generated within an authorised policy scope," without revealing the content or the full generation context.</p>
<p>ZK-SNARKs can theoretically solve this: prove properties of the generation context without revealing the context itself. The practical implementation for high-throughput AI attestation, millions of attestations per day with sub-100ms latency, hasn't been built. The constraint is prover performance: current ZK proof generation is too slow for inline attestation at this scale.</p>
<p>The open questions: Can recursive SNARKs (Plonky2, Nova) bring prover time down sufficiently? Is there a simpler commitment scheme that provides sufficient privacy guarantees without full ZK proof generation?</p>
<p><strong>Algorithm agility for post-quantum transition</strong></p>
<p>ECDSA P-384 is correct today but has a known quantum vulnerability horizon. NIST has standardised CRYSTALS-Dilithium (ML-DSA) for post-quantum signatures. The challenge is building an attestation infrastructure with genuine algorithm agility, able to issue certificates under multiple signature schemes simultaneously, verify either scheme, and migrate existing certificate chains without invalidating historical attestations.</p>
<p>The certificate extension design for algorithm agility isn't standardised. How do you encode a dual-signature certificate that's valid under both ECDSA and ML-DSA? How do you handle the certificate chain when intermediate CAs have been re-keyed under a new algorithm?</p>
<p><strong>Agent action attestation</strong></p>
<p>When an autonomous agent executes a sequence of actions across multiple sessions, API calls, file modifications, communications, web interactions, attesting to individual outputs isn't sufficient. You need a tamper-proof causal chain of the agent's decision process.</p>
<p>The data structure for this is closer to an append-only ledger than a certificate. Each action produces an entry that references the previous entry's hash, creating a chain where any modification of a historical entry invalidates all subsequent entries. The root of the chain is anchored periodically to a public, independently verifiable record.</p>
<p>The open question is the verification model: who holds the chain, how is it anchored, and how do you handle distributed agent systems where multiple agents contribute to a single task?</p>
<h4>Why this window is short</h4>
<p>The history of internet infrastructure shows a consistent pattern: the window between "a trust standard needs to exist" and "one implementation owns the standard" is short, and the winner is usually the implementation that achieves regulatory recognition first, not the one with the best technology.</p>
<p>Certificate Authorities became entrenched when browsers adopted trusted root programs. DNS registrars became entrenched when ICANN delegation became the standard. In each case, technical merit mattered less than timing and regulatory positioning.</p>
<p>The EU AI Act's audit trail requirements are in enforcement. The C2PA standard exists as a technical foundation. No dominant commercial implementation of horizontal AI attestation infrastructure has emerged.</p>
<p>That window is open. The technical problems are tractable. The regulatory forcing function exists. The question is whether someone builds this with the right combination of cryptographic rigour and standards body engagement to claim the position before a hyperscaler decides to own it by default.</p>
<p><em>I'm currently building this infrastructure and thinking through the unsolved problems above. If you're working on ZK proof systems, post-quantum cryptography, or distributed audit logs and have thoughts on any of these problems, I'd genuinely like to hear from you in the comments.</em></p>
<p><em>I'm also looking for a technical co-founder with cryptography and backend engineering depth. If this problem space resonates with how you think about systems, feel free to reach out.</em></p>
<p>#cryptography #security #ai #distributedsystems</p>
]]></content:encoded></item></channel></rss>