{
 "version": "https://jsonfeed.org/version/1.1",
 "title": "verifiable.pro",
 "home_page_url": "https://verifiable.pro/",
 "feed_url": "https://verifiable.pro/feed.json",
 "description": "Reporting on verifiable AI, starting from trusted execution environments.",
 "icon": "https://verifiable.pro/assets/icons/icon-512.png",
 "favicon": "https://verifiable.pro/assets/icons/icon-192.png",
 "language": "en",
 "authors": [
  {
   "name": "verifiable.pro",
   "url": "https://verifiable.pro/"
  }
 ],
 "items": [
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/what-makes-an-ai-system-verifiable/",
   "url": "https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/",
   "title": "What makes an AI system verifiable?",
   "summary": "Verifying an AI system takes a precise claim, evidence that someone other than the developer can check, and a party able to check it. This explainer shows the layers where claims arise, then describes six kinds of evidence and the trust each one leaves in place.",
   "content_html": "<p>An AI system is verifiable to the extent that someone other than its developer can check a specific claim about it against evidence. The <strong>claim</strong> is a precise statement about a particular system, such as which model answered a request or which software handled it. The <strong>evidence</strong> is something other than the developer's word, such as a signature, a hardware-signed report or a mathematical proof. The <strong>verifier</strong> is whoever examines the evidence and decides whether the claim holds. Every check rests on <strong>trust assumptions</strong>: the components or parties that the check does not examine, such as a chip maker's signing keys.</p>\n<p>This definition builds on a 2020 report by Brundage and colleagues. The report defines verifiable claims as falsifiable statements for which evidence and arguments can bear on how likely they are to be true.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-1\" class=\"cite-link\">1</a>]</sup> Verifiability is therefore a matter of degree. A claim can also be checkable for one party and opaque to another.</p>\n<h2 id=\"why-a-developers-statement-cannot-settle-a-claim\">Why a developer's statement cannot settle a claim</h2>\n<p>When the party making a claim is the only source of information about it, its statement cannot settle whether the claim holds. This matters because cloud AI services process personal data, and users of AI agents rely on developers' accounts of how safety measures are enforced.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-11\" class=\"cite-link\">11</a>]</sup> Apple makes the same point in its 2024 description of Private Cloud Compute (PCC), the cloud system behind its more demanding AI features. When a cloud AI service says it does not log certain user data, Apple notes, researchers generally have no way to verify the promise.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>PCC's design also narrows that gap. Apple says PCC deletes a user's data after fulfilling a request and that \"no user data is retained in any form\" once the response is returned.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-2\" class=\"cite-link\">2</a>]</sup> Users cannot watch that deletion, so the design adds narrower claims that a device can check. In Apple's design, a user's device sends data only to PCC nodes that can cryptographically attest to running publicly listed software. Apple also committed to publishing the measurements (cryptographic hashes) of that software in an append-only transparency log, together with production software images for researchers.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-2\" class=\"cite-link\">2</a>]</sup> The device can confirm which software it is talking to. But whether that software retains no data is left to researchers who analyze the images.</p>\n<h2 id=\"the-seven-layers-where-claims-arise\">The seven layers where claims arise</h2>\n<p>This site sorts claims into a <a href=\"https://verifiable.pro/topics/\">verification stack</a>. Lower layers support higher ones: knowing which model answered depends on knowing which software and hardware ran it.</p>\n<div class=\"table-wrap\"><table><thead><tr><th scope=\"col\">Layer</th><th scope=\"col\">Typical claim</th><th scope=\"col\">Example of evidence</th></tr></thead><tbody><tr><td>Hardware and compute</td><td>The computation ran on genuine hardware in a protected mode.</td><td>A hardware-signed attestation report<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-3\" class=\"cite-link\">3</a>]</sup></td></tr><tr><td>Software and runtime</td><td>This exact code and configuration handled the request.</td><td>Measurements compared with published values<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-3\" class=\"cite-link\">3</a>]</sup></td></tr><tr><td>Models and data</td><td>These are the released weights, unchanged since they were signed.</td><td>A signed manifest of the model's file hashes<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-6\" class=\"cite-link\">6</a>]</sup></td></tr><tr><td>Outputs and content</td><td>This output came from this model and this input.</td><td>A proof of inference or a re-execution check<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-4\" class=\"cite-link\">4</a>, <a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-5\" class=\"cite-link\">5</a>]</sup></td></tr><tr><td>Agents and actions</td><td>The stated guardrail ran before this agent responded.</td><td>A hardware attestation that the guardrail code ran<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-11\" class=\"cite-link\">11</a>]</sup></td></tr><tr><td>Evaluations and audits</td><td>This score came from the stated model and test set.</td><td>An evaluation run in a trusted execution environment, or an audit with deeper access<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-8\" class=\"cite-link\">8</a>, <a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-10\" class=\"cite-link\">10</a>]</sup></td></tr><tr><td>Policy</td><td>A developer or government kept a commitment about training compute.</td><td>Proposed monitoring of the chips used for large training runs<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-12\" class=\"cite-link\">12</a>]</sup></td></tr></tbody></table></div>\n<h2 id=\"six-kinds-of-evidence-and-what-each-leaves-to-trust\">Six kinds of evidence and what each leaves to trust</h2>\n<p>Each kind answers a narrower question than the claim a reader cares about. Each also moves trust somewhere else.</p>\n<p><strong>Cryptographic proofs.</strong> A zero-knowledge proof lets a provider show that an output was computed from a given input and a committed model without revealing the model's weights. To commit to a model, the provider publishes a cryptographic value derived from its weights, which binds the provider to those weights. In zkLLM, the provider commits to the weights of a model whose architecture is public. The authors report proving a 13-billion-parameter model's inference in under 15 minutes, with proofs under 200 kB.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-4\" class=\"cite-link\">4</a>]</sup> The verifier still trusts the proof system's soundness, the property that a false statement cannot be proved. It also needs separate evidence that the committed weights are those of the advertised model.</p>\n<p><strong>Hardware attestation.</strong> A trusted execution environment (TEE) is a hardware-isolated execution mode of a processor. It records cryptographic hashes, called measurements, of the software it loads and reports them in evidence signed with a hardware-rooted key.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-10\" class=\"cite-link\">10</a>]</sup> In the attestation architecture of the Internet Engineering Task Force (IETF), a verifier compares that evidence with reference values and manufacturer endorsements. A relying party then uses the result to decide whether to trust the machine.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-3\" class=\"cite-link\">3</a>]</sup> Attestation establishes which software was loaded on genuine hardware in a protected mode. The hardware maker and the behavior of the measured software remain trusted.</p>\n<p><strong>Signatures and transparency logs.</strong> A signature ties specific bytes to a signer's key. Sigstore's model signing library hashes every file of a model into a manifest and signs the manifest. A user can therefore check that a downloaded model is what a known identity signed. When signing goes through Sigstore, the event is recorded in an append-only transparency log, where signers can watch for signatures they did not make.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-6\" class=\"cite-link\">6</a>]</sup> Such records establish who signed what and make quiet replacement detectable. They say nothing about whether the signed model is good.</p>\n<p><strong>Re-execution and sampling.</strong> A checker can repeat all or part of a computation, for every request or a sample, and compare the results. In TOPLOC, the provider commits to compact hashes of the model's intermediate activations, the values the model computes inside its layers. A validator recomputes these hashes faster than the original generation. In the authors' experiments, the method detected changed models, prompts and numeric precision while tolerating numerical differences across graphics processors.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-5\" class=\"cite-link\">5</a>]</sup> The validator must hold the claimed model. The scheme also covers only what it hashes. Its authors note that it cannot catch a provider that generates its output with a cheaper model and computes the hashed activations with the claimed one.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-5\" class=\"cite-link\">5</a>]</sup></p>\n<p><strong>Formal proofs.</strong> Formal verification seeks a mathematical proof that a technical claim is true, subject to certain assumptions.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-1\" class=\"cite-link\">1</a>]</sup> The guaranteed safe AI framework proposes extending this idea to AI systems. In the framework, a verifier component would provide an auditable proof certificate that a system satisfies a safety specification relative to a world model. A world model is a mathematical description of how the system affects the world.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-7\" class=\"cite-link\">7</a>]</sup> The certificate is only as useful as its specification and world model.</p>\n<p><strong>Audits with structured access.</strong> Claims about a developer's internal practices cannot be settled by one cryptographic check, so auditors examine them with more access than the public has. Casper and colleagues argue that black-box access, meaning querying a system and observing its outputs, is insufficient for rigorous audits. They also argue that access to weights and to training and deployment information, such as code, allows more scrutiny.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-8\" class=\"cite-link\">8</a>]</sup> A 2026 proposal defines frontier AI auditing as rigorous third-party verification of developers' safety and security claims, based on deep, secure access to non-public information. The proposal also describes four AI Assurance Levels of increasing confidence.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-9\" class=\"cite-link\">9</a>]</sup> A proposed protocol called Attestable Audits runs benchmarks inside TEEs. The aim is to keep model weights and test data confidential while letting users verify that they interacted with a compliant model.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-10\" class=\"cite-link\">10</a>]</sup> Audits place trust in the auditor's competence, independence and access.</p>\n<h2 id=\"a-successful-check-still-leaves-three-gaps\">A successful check still leaves three gaps</h2>\n<p>A verification result covers only the claim as stated, so three gaps remain.</p>\n<p>First, an attestation shows what was loaded. It does not show that the software is safe. For example, the proof-of-guardrail system uses TEE attestation to show that an agent's response passed through a specific open-source guardrail. Its authors warn that a developer could still actively jailbreak the guardrail, that is, trick it into letting through content it should block.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-11\" class=\"cite-link\">11</a>]</sup></p>\n<p>Second, a proof covers its specification. If the specification or the world model leaves out a harm, a valid proof says nothing about that harm.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-7\" class=\"cite-link\">7</a>]</sup></p>\n<p>Third, some parties must still be trusted. The IETF architecture uses the term roots of trust for components that no evidence describes, so endorsements must vouch for them. For hardware attestation, the verifier typically trusts the chip manufacturer and its hardware.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/what-makes-an-ai-system-verifiable/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<h2 id=\"a-hypothetical-hospital-maps-its-questions-to-evidence\">A hypothetical hospital maps its questions to evidence</h2>\n<aside class=\"callout callout-example\"><p class=\"callout-label\">Hypothetical: a hospital evaluates a hosted model for clinical notes</p><div class=\"callout-body\"><p>A hospital is considering a vendor's hosted model to draft summaries of clinical notes. The vendor says notes are processed in a TEE, deleted afterward and handled by the model the hospital tested. Before sending any note, the hospital maps each question to evidence:</p>\n<div class=\"table-wrap\"><table><thead><tr><th scope=\"col\">Question</th><th scope=\"col\">Evidence that could answer it</th><th scope=\"col\">What would remain unverified</th></tr></thead><tbody><tr><td>Do notes reach only the software the vendor describes?</td><td>An attestation report, checked by the hospital's gateway against measurements published in a log</td><td>Flaws in that software; the chip maker's keys</td></tr><tr><td>Is the served model the one the hospital tested?</td><td>A signed manifest of the weight files, measured when the model is loaded</td><td>How the model behaves on future patients</td></tr><tr><td>Are notes deleted after processing?</td><td>Published software images that independent researchers can analyze</td><td>Systems outside the attested environment, such as gateway logs</td></tr><tr><td>Are the summaries accurate enough?</td><td>The hospital's own evaluation on its notes, or an evaluation run in a TEE</td><td>Whether the test notes represent future use</td></tr><tr><td>Does the vendor follow its security practices?</td><td>A third-party audit with access to internal information</td><td>The audit's scope and the auditor's independence</td></tr></tbody></table></div>\n<p>The hospital can make the first three rows conditions for sending data and manage the last column by contract.</p></div></aside>\n<h2 id=\"further-reading-by-topic\">Further reading by topic</h2>\n<ul><li><a href=\"https://verifiable.pro/topics/confidential-computing/\">Confidential computing &amp; attestation</a></li><li><a href=\"https://verifiable.pro/topics/verifiable-inference/\">Verifiable inference &amp; computation</a></li><li><a href=\"https://verifiable.pro/topics/formal-verification/\">Formal verification</a></li><li><a href=\"https://verifiable.pro/topics/evaluation-audits/\">Verifiable evaluation &amp; audits</a></li><li><a href=\"https://verifiable.pro/topics/supply-chain/\">Model &amp; data supply chain</a></li><li><a href=\"https://verifiable.pro/topics/content-provenance/\">Content provenance &amp; watermarking</a></li><li><a href=\"https://verifiable.pro/topics/agents-accountability/\">Agent identity &amp; accountability</a></li><li><a href=\"https://verifiable.pro/topics/governance-compute/\">Compute governance &amp; verification</a></li></ul><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://arxiv.org/abs/2004.07213\">Toward Trustworthy AI Development: Mechanisms for Supporting Verifiable Claims</a> · Brundage et al., arXiv · 15 Apr 2020</li><li id=\"source-2\"><a href=\"https://security.apple.com/blog/private-cloud-compute/\">Private Cloud Compute: A new frontier for AI privacy in the cloud</a> · Apple Security Research · 10 Jun 2024</li><li id=\"source-3\"><a href=\"https://www.rfc-editor.org/rfc/rfc9334\">Remote ATtestation procedureS (RATS) Architecture (RFC 9334)</a> · IETF · Jan 2023</li><li id=\"source-4\"><a href=\"https://arxiv.org/abs/2404.16109\">zkLLM: Zero Knowledge Proofs for Large Language Models</a> · Sun, Li and Zhang, ACM CCS 2024 (arXiv) · 24 Apr 2024</li><li id=\"source-5\"><a href=\"https://arxiv.org/abs/2501.16007\">TOPLOC: A Locality Sensitive Hashing Scheme for Trustless Verifiable Inference</a> · Ong et al., ICML 2025 (arXiv) · 27 Jan 2025</li><li id=\"source-6\"><a href=\"https://github.com/sigstore/model-transparency/tree/v1.1.1\">model-transparency v1.1.1, model signing library (README)</a> · Sigstore, GitHub · 10 Oct 2025</li><li id=\"source-7\"><a href=\"https://arxiv.org/abs/2405.06624\">Towards Guaranteed Safe AI: A Framework for Ensuring Robust and Reliable AI Systems</a> · Dalrymple et al., arXiv · 10 May 2024</li><li id=\"source-8\"><a href=\"https://arxiv.org/abs/2401.14446\">Black-Box Access is Insufficient for Rigorous AI Audits</a> · Casper et al., arXiv · 25 Jan 2024</li><li id=\"source-9\"><a href=\"https://arxiv.org/abs/2601.11699\">Frontier AI Auditing: Toward Rigorous Third-Party Assessment of Safety and Security Practices at Leading AI Companies</a> · Brundage et al., arXiv · 16 Jan 2026</li><li id=\"source-10\"><a href=\"https://arxiv.org/abs/2506.23706\">Attestable Audits: Verifiable AI Safety Benchmarks Using Trusted Execution Environments</a> · Schnabl et al., arXiv · 30 Jun 2025</li><li id=\"source-11\"><a href=\"https://arxiv.org/abs/2603.05786\">Proof-of-Guardrail in AI Agents and What (Not) to Trust from It</a> · Jin et al., arXiv · 6 Mar 2026</li><li id=\"source-12\"><a href=\"https://arxiv.org/abs/2303.11341\">What does it take to catch a Chinchilla? Verifying Rules on Large-Scale Neural Network Training via Compute Monitoring</a> · Shavit, arXiv · 20 Mar 2023</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Research (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Verifiable evaluation & audits",
    "Confidential computing & attestation",
    "Verifiable inference & computation"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/verify-a-signed-model/",
   "url": "https://verifiable.pro/articles/verify-a-signed-model/",
   "title": "How to verify a signed model before you load it",
   "summary": "Before any code loads the weights, use this five-step worksheet to check that a model's files are the ones the expected publisher signed, and to record which files the check covered.",
   "content_html": "<p>A model signature lets you check that the files on your disk are the ones a known publisher signed, before any code loads the weights.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>]</sup> The check is only as strong as the signer identity you compare it against, and it covers only the signed files. Each step below therefore pairs a command with the decision it supports. The guide uses <code>model_signing</code>, the command-line tool of the model-signing package from Sigstore's model-transparency project.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-2\" class=\"cite-link\">2</a>]</sup> Version 1.1.1 was the current release on the Python Package Index (PyPI) on 20 October 2026.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-2\" class=\"cite-link\">2</a>]</sup> Our <a href=\"https://verifiable.pro/articles/sigstore-model-signing-stable-release/\">brief on the 1.0 release</a> gives the background.</p>\n<h2 id=\"when-to-use-this-guide\">When to use this guide</h2>\n<p>Use it when a signed model arrives and you are about to serve it, fine-tune it or hand it to another system. The AI/ML working group of the Open Source Security Foundation (OpenSSF) announced the 1.0 release in April 2025. The group says signatures should be checked each time a model is used, including when it is selected for deployment and when it becomes input to another model.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-8\" class=\"cite-link\">8</a>]</sup></p>\n<h2 id=\"what-you-need-before-you-start\">What you need before you start</h2>\n<ul><li><strong>The model directory</strong>, exactly as you will load it and made of regular files. The tool stops with an error at a symbolic link unless you allow links.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-5\" class=\"cite-link\">5</a>]</sup></li><li><strong>The signature bundle</strong> distributed with the model, which the tool names <code>model.sig</code> by default.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>]</sup></li><li><strong>The expected signer</strong>, from a channel you already trust, such as the publisher's documentation. Never copy it from the bundle: the bundle names whoever signed, who may not be the publisher.<ul><li>For a Sigstore signature: the signer's OpenID Connect (OIDC) identity and its issuer, the identity provider. The identity is an email address, or a workload identity such as a continuous integration (CI) workflow for automated signing. Issuers include <code>https://accounts.google.com</code> and the GitHub Actions issuer, <code>https://token.actions.githubusercontent.com</code>.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>]</sup></li><li>For a key signature: the publisher's public key.</li><li>For a certificate signature: the publisher's certificate chain.</li></ul></li><li><strong>Python 3.9 or later</strong>, which the 1.1.1 release requires.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-2\" class=\"cite-link\">2</a>]</sup></li></ul>\n<h2 id=\"step-1-install-a-pinned-release\">Step 1: Install a pinned release</h2>\n<p>Install one exact version, then check the version the tool reports.</p>\n<pre class=\"code\"><code class=\"language-bash\">pip install model-signing==1.1.1\nmodel_signing --version</code></pre>\n<p>Version 1.1.1 spells several flags with underscores, such as <code>--identity_provider</code>.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>]</sup> An unreleased change switches to hyphens and keeps accepting the underscore forms.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-7\" class=\"cite-link\">7</a>]</sup> Commands written for a later release may therefore fail on 1.1.1. Follow the README at the tag of your release.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-1\"><label for=\"verify-a-signed-model-en-check-1\">Install the release in a fresh virtual environment and note its version</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-2\"><label for=\"verify-a-signed-model-en-check-2\">Do not use a release older than 1.0.1: the changelog says earlier command-line scripts could report a pass and exit with a success code after verification failed<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-7\" class=\"cite-link\">7</a>]</sup></label></li></ul>\n<h2 id=\"step-2-verify-against-the-signer-you-expect\">Step 2: Verify against the signer you expect</h2>\n<p>With Sigstore, the signer uses a short-lived certificate for its OIDC identity. The signing event is recorded in a public, append-only transparency log.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-9\" class=\"cite-link\">9</a>]</sup> The identity and issuer are required arguments, and verification fails if they do not match the signature.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<pre class=\"code\"><code class=\"language-bash\">model_signing verify path/to/model \\\n  --signature model.sig \\\n  --identity &quot;$EXPECTED_IDENTITY&quot; \\\n  --identity_provider &quot;$EXPECTED_ISSUER&quot;</code></pre>\n<p>For a key signature, pass the publisher's public key, which is your only link to the publisher.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<pre class=\"code\"><code class=\"language-bash\">model_signing verify key path/to/model \\\n  --signature model.sig \\\n  --public_key publisher.pub</code></pre>\n<p>For a certificate signature, you must identify the signer yourself, because the command checks the chain but takes no expected signer name.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>]</sup> Without <code>--certificate_chain</code>, it falls back to a default set of root certificates.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-4\" class=\"cite-link\">4</a>]</sup> Version 1.1.1 accepts some certificates whose extended key usage field does not permit code signing, such as certificates issued for web servers. The fix has not been released.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-7\" class=\"cite-link\">7</a>]</sup> Pass the publisher's own chain, and identify the signer by confirming the signing certificate's SHA-256 fingerprint with the publisher; <code>--log_fingerprints</code> logs it.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<pre class=\"code\"><code class=\"language-bash\">model_signing verify certificate path/to/model \\\n  --signature model.sig \\\n  --certificate_chain publisher-chain.pem \\\n  --log_fingerprints</code></pre>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-3\"><label for=\"verify-a-signed-model-en-check-3\">The expected signer came from the publisher's own channel</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-4\"><label for=\"verify-a-signed-model-en-check-4\">The command ran without <code>--ignore-paths</code>, <code>--ignore_unsigned_files</code> or <code>--allow_symlinks</code>, which step 3 explains</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-5\"><label for=\"verify-a-signed-model-en-check-5\">The command ran without <code>--use_staging</code>; the project describes Sigstore's staging instance as being for test-only signatures<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>]</sup></label></li></ul>\n<h2 id=\"step-3-read-what-the-result-covers\">Step 3: Read what the result covers</h2>\n<p>Read the output: the command prints <code>Verification succeeded</code>, or <code>Verification failed with error:</code> followed by the reason. On failure it exits with status 1.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>]</sup> It hashes the directory and fails if a signed file has changed or is missing, or if an extra file is present. The error names the files.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-4\" class=\"cite-link\">4</a>]</sup></p>\n<p>A pass says nothing about skipped paths, which include Git-related files by default.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>]</sup> Since version 1.1.0, a signature also records the paths the publisher excluded at signing, and verification skips them automatically.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-7\" class=\"cite-link\">7</a>]</sup> Two flags add to these: <code>--ignore-paths</code> skips paths you name, and <code>--ignore_unsigned_files</code> lets extra files pass.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-3\" class=\"cite-link\">3</a>, <a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-7\" class=\"cite-link\">7</a>]</sup> Use them only for files your loader never reads.</p>\n<p>Leave <code>--allow_symlinks</code> off. With it on, version 1.1.1 silently leaves every file under a symbolic link to a directory unsigned and unchecked. The changelog lists this flaw as fixed only in unreleased code.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-7\" class=\"cite-link\">7</a>]</sup></p>\n<p>To see what the signature covers, decode its signed statement with the jq tool:<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-9\" class=\"cite-link\">9</a>]</sup></p>\n<pre class=\"code\"><code class=\"language-bash\">jq -r .dsseEnvelope.payload model.sig | base64 -d | jq .</code></pre>\n<p>In the output, <code>predicate.resources</code> lists each covered file with its hash algorithm and digest (the hash value). The <code>predicate.serialization</code> field records the hashing settings, including any paths excluded at signing.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-6\" class=\"cite-link\">6</a>]</sup> A <code>predicateType</code> of <code>https://model_signing/Digests/v0.1</code> marks a pre-1.0 signature. The tool can verify such a signature but not create one, replicating version 0.2's experimental behavior \"bug for bug,\" as the changelog puts it.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-6\" class=\"cite-link\">6</a>, <a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-7\" class=\"cite-link\">7</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-6\"><label for=\"verify-a-signed-model-en-check-6\">After a failure, every extra, missing or changed file is explained before anything is loaded</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-7\"><label for=\"verify-a-signed-model-en-check-7\">Every file your loader reads appears in <code>predicate.resources</code>, and none sits in a skipped path</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-8\"><label for=\"verify-a-signed-model-en-check-8\">The predicate type is <code>https://model_signing/signature/v1.0</code>, or the publisher has been asked to sign again</label></li></ul>\n<h2 id=\"step-4-check-the-transparency-log-entry\">Step 4: Check the transparency log entry</h2>\n<p>This step applies only to Sigstore signatures, which are recorded in Rekor, Sigstore's append-only transparency log.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-11\" class=\"cite-link\">11</a>]</sup> The verify command has already checked the bundle's proof that the entry is in the log.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-9\" class=\"cite-link\">9</a>]</sup> The bundle also holds the entry's log index and its integrated time, the time the log recorded the entry. A signed timestamp in the bundle shows that signing happened while the short-lived certificate was valid. Verification can therefore succeed after the certificate expires.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-9\" class=\"cite-link\">9</a>]</sup></p>\n<pre class=\"code\"><code class=\"language-bash\">jq &#x27;.verificationMaterial.tlogEntries[] | {logIndex, integratedTime}&#x27; model.sig\nrekor-cli get --rekor_server https://rekor.sigstore.dev --log-index &lt;log-index&gt;</code></pre>\n<p>The second command fetches the entry with the Rekor command-line client.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-10\" class=\"cite-link\">10</a>]</sup> The server it queries hosts Rekor's original log, which is still the default for Sigstore's public instance. The version 2 logs that ecosystems can opt into have other addresses.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-11\" class=\"cite-link\">11</a>, <a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-12\" class=\"cite-link\">12</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-9\"><label for=\"verify-a-signed-model-en-check-9\">The integrated time fits the release date the publisher gives</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-10\"><label for=\"verify-a-signed-model-en-check-10\">Where your policy calls for an online check, the entry was fetched from the log by its index</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-11\"><label for=\"verify-a-signed-model-en-check-11\">You know whether the publisher monitors the log for its signing identity, as the project advises signers to do<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>]</sup></label></li></ul>\n<h2 id=\"step-5-record-the-result\">Step 5: Record the result</h2>\n<p>Keep enough for an auditor to repeat the check.</p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-12\"><label for=\"verify-a-signed-model-en-check-12\">The bundle is stored with the model, the command, its output and the tool version</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-13\"><label for=\"verify-a-signed-model-en-check-13\">The expected signer and the place you obtained it are written down</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-14\"><label for=\"verify-a-signed-model-en-check-14\">The log index and the digests from the signed statement are saved</label></li><li class=\"task\"><input type=\"checkbox\" id=\"verify-a-signed-model-en-check-15\"><label for=\"verify-a-signed-model-en-check-15\">The check is repeated whenever the files are copied or replaced</label></li></ul>\n<h2 id=\"using-the-digests-in-an-ai-bill-of-materials\">Using the digests in an AI bill of materials</h2>\n<p>In May 2026, cybersecurity agencies of the Group of Seven (G7) countries published minimum elements for a software bill of materials (SBOM) for AI. They describe such an SBOM as a structured record of an AI system's components. For each model, the record should give a hash of the weights or model file and the hash algorithm, so that the component's integrity can be validated. The SBOM itself should carry a digital signature attributable to its author.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-13\" class=\"cite-link\">13</a>]</sup></p>\n<p>A verified model signature supplies such hashes from a known signer. Each entry in <code>predicate.resources</code> gives a file's algorithm and digest. The statement's subject carries one SHA-256 digest over all of them. The project intends that digest for referring to the model from other metadata documents.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-6\" class=\"cite-link\">6</a>]</sup> Copy these values into the model's SBOM entry. If an SBOM you receive gives a different digest for the same file and algorithm, it describes a different file from the one the publisher signed. The model signature ties the files to the publisher, while the SBOM's signature ties the inventory to its author. Our <a href=\"https://verifiable.pro/articles/g7-ai-sbom-minimum-elements/\">brief on the minimum elements</a> covers the full list.</p>\n<h2 id=\"a-worked-example\">A worked example</h2>\n<aside class=\"callout callout-example\"><p class=\"callout-label\">Worked example (hypothetical): a summarization model for an internal tool</p><div class=\"callout-body\"><p>A team plans to serve an invented open-weight model, <code>summarizer-7b</code>, in an internal tool. The publisher's model card says each release is signed with Sigstore by <code>release@example.com</code> through Google's issuer, and the download includes <code>model.sig</code>. The team runs:</p>\n<pre class=\"code\"><code class=\"language-bash\">model_signing verify summarizer-7b \\\n  --signature model.sig \\\n  --identity &quot;release@example.com&quot; \\\n  --identity_provider &quot;https://accounts.google.com&quot;</code></pre>\n<ol><li>The command fails and names one extra file, <code>handler.py</code>, which the team's serving framework would import. They delete it and ask the publisher why it was there, instead of rerunning with <code>--ignore_unsigned_files</code>.</li><li>The second run prints <code>Verification succeeded</code>.</li><li>The decoded statement uses the 1.0 predicate type and shows that the publisher excluded <code>README.md</code>, which the team's loader does not read.</li><li>The log entry's integrated time falls on the release date in the model card.</li><li>The team records the result as in step 5 and copies the weight files' digests into the model's SBOM entry.</li></ol></div></aside>\n<aside class=\"callout callout-limits\"><p class=\"callout-label\">What a valid signature does not establish</p><div class=\"callout-body\"><ul><li>A passing check shows that the files have not changed since the holder of the expected identity or key signed them. It does not show that the weights are safe, unpoisoned or free of backdoors. A publisher can sign a compromised model as easily as a clean one.</li><li>Inspection may not reveal a backdoor. Goldwasser, Kim, Vaikuntanathan and Zamir show how a malicious learner can plant a backdoor in a classifier that no observer with limited computing power can detect without the backdoor key.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-14\" class=\"cite-link\">14</a>]</sup></li><li>Further training may not remove one. Hubinger and colleagues trained language models to write secure code when a prompt states that the year is 2023, and exploitable code when it states 2024. They found that such backdoors can be made to persist through supervised fine-tuning, reinforcement learning and adversarial training.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-15\" class=\"cite-link\">15</a>]</sup></li><li>The check does not cover files outside the signed list, the code that loads the model or any model that someone else serves.</li><li>If the publisher's account, CI workflow or key is compromised, an attacker's signature verifies too. For Sigstore signatures, a publisher that monitors the log for its identity can spot such a signature.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/verify-a-signed-model/#source-1\" class=\"cite-link\">1</a>]</sup></li></ul></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://github.com/sigstore/model-transparency/blob/v1.1.1/README.md\">Model Transparency README at the v1.1.1 tag</a> · GitHub, sigstore/model-transparency · 10 Oct 2025</li><li id=\"source-2\"><a href=\"https://pypi.org/pypi/model-signing/json\">model-signing release metadata (JSON API)</a> · Python Package Index (PyPI) · accessed 20 Oct 2026</li><li id=\"source-3\"><a href=\"https://github.com/sigstore/model-transparency/blob/v1.1.1/src/model_signing/_cli.py\">Command-line interface source (_cli.py) at the v1.1.1 tag</a> · GitHub, sigstore/model-transparency · 10 Oct 2025</li><li id=\"source-4\"><a href=\"https://github.com/sigstore/model-transparency/blob/v1.1.1/src/model_signing/verifying.py\">Verification API source (verifying.py) at the v1.1.1 tag</a> · GitHub, sigstore/model-transparency · 10 Oct 2025</li><li id=\"source-5\"><a href=\"https://github.com/sigstore/model-transparency/blob/v1.1.1/src/model_signing/hashing.py\">Hashing API source (hashing.py) at the v1.1.1 tag</a> · GitHub, sigstore/model-transparency · 10 Oct 2025</li><li id=\"source-6\"><a href=\"https://github.com/sigstore/model-transparency/blob/v1.1.1/src/model_signing/_signing/signing.py\">Signature payload source (signing.py) at the v1.1.1 tag</a> · GitHub, sigstore/model-transparency · 10 Oct 2025</li><li id=\"source-7\"><a href=\"https://github.com/sigstore/model-transparency/blob/087c3f5f05e6c84287bd25393084be6f4f7760c4/CHANGELOG.md\">Changelog on the main branch at commit 087c3f5</a> · GitHub, sigstore/model-transparency · accessed 20 Oct 2026</li><li id=\"source-8\"><a href=\"https://openssf.org/blog/2025/04/04/launch-of-model-signing-v1-0-openssf-ai-ml-working-group-secures-the-machine-learning-supply-chain/\">Launch of Model Signing v1.0: OpenSSF AI/ML Working Group Secures the Machine Learning Supply Chain</a> · Open Source Security Foundation · 4 Apr 2025</li><li id=\"source-9\"><a href=\"https://docs.sigstore.dev/about/bundle/\">Sigstore Bundle Format</a> · Sigstore documentation · 14 Jan 2025</li><li id=\"source-10\"><a href=\"https://docs.sigstore.dev/logging/cli/\">CLI (Rekor transparency log)</a> · Sigstore documentation · accessed 20 Oct 2026</li><li id=\"source-11\"><a href=\"https://blog.sigstore.dev/rekor-evolution/\">sigstore.dev and Rekor evolution</a> · Sigstore Blog · 28 Jun 2026</li><li id=\"source-12\"><a href=\"https://blog.sigstore.dev/rekor-v2-ga/\">Rekor v2 GA - Cheaper to run, simpler to maintain</a> · Sigstore Blog · 10 Oct 2025</li><li id=\"source-13\"><a href=\"https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/KI/SBOM-for-AI_minimum-elements.html\">Software Bill of Materials for AI: Minimum Elements</a> · G7 Cybersecurity Working Group, via BSI · 12 May 2026</li><li id=\"source-14\"><a href=\"https://arxiv.org/abs/2204.06974\">Planting Undetectable Backdoors in Machine Learning Models</a> · arXiv (Goldwasser, Kim, Vaikuntanathan and Zamir) · 14 Apr 2022</li><li id=\"source-15\"><a href=\"https://arxiv.org/abs/2401.05566\">Sleeper Agents: Training Deceptive LLMs that Persist Through Safety Training</a> · arXiv (Hubinger et al.) · 10 Jan 2024</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Research (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Model & data supply chain"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/remote-attestation-for-ai-workloads-explained/",
   "url": "https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/",
   "title": "Remote attestation for AI workloads, explained",
   "summary": "Before a client sends a prompt or a model owner releases its weights, remote attestation can show which software a machine loaded and on what hardware. This explainer shows how that evidence is produced and checked, including on GPUs, and what a valid report leaves open.",
   "content_html": "<p>Remote attestation lets one party obtain hardware-signed evidence about another machine's software state before trusting it with data or work.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-2\" class=\"cite-link\">2</a>]</sup> For AI workloads, a user's device may want to know which software will receive a prompt before encrypting it, and a model owner may want the same evidence before releasing the key that decrypts its weights.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-8\" class=\"cite-link\">8</a>]</sup> The evidence comes from a trusted execution environment (TEE). A TEE is a hardware-isolated execution mode of a processor that records what it loads and signs a report about it.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-3\" class=\"cite-link\">3</a>]</sup> A valid report tells that party what was loaded and on which hardware. It does not show that the loaded software behaves as its operator says.</p>\n<h2 id=\"the-roles-defined-in-rfc-9334\">The roles defined in RFC 9334</h2>\n<p>The Internet Engineering Task Force (IETF) published the Remote ATtestation procedureS (RATS) architecture as RFC 9334. The architecture names the roles independently of any processor or protocol.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>]</sup> The third column is our illustration.</p>\n<div class=\"table-wrap\"><table><thead><tr><th scope=\"col\">Role</th><th scope=\"col\">What it does</th><th scope=\"col\">Typical party in an AI service</th></tr></thead><tbody><tr><td>Attester</td><td>Produces evidence: claims such as measurements and configuration</td><td>The confidential virtual machine (VM) and the graphics processing units (GPUs) that run the model</td></tr><tr><td>Verifier</td><td>Appraises evidence against reference values, endorsements and an appraisal policy, then issues an attestation result</td><td>A vendor's attestation service, or a library in the client</td></tr><tr><td>Relying party</td><td>Uses the attestation result to make its own decision</td><td>The user's client, or a key service that holds model keys</td></tr><tr><td>Endorser</td><td>Vouches for the attester's capabilities, for example by certifying a signing key held only in hardware</td><td>The chip maker</td></tr><tr><td>Reference value provider</td><td>Supplies the expected values that claims are compared with</td><td>The software publisher, and the hardware maker for firmware</td></tr></tbody></table></div>\n<p>A client that checks evidence itself is both verifier and relying party.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<h2 id=\"how-the-hardware-measures-software-and-signs-the-evidence\">How the hardware measures software and signs the evidence</h2>\n<p>Evidence starts with measurements, cryptographic hashes of code and data recorded as they are loaded. In what RFC 9334 calls layered attestation, each stage measures the next one before starting it. No stage may alter the record of its own loading.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Confidential VMs apply this pattern at launch. The hardware is designed to isolate their memory from the host and from the hypervisor, the software that manages virtual machines. In Intel Trust Domain Extensions (TDX), the TDX module records a measurement of the VM's initial memory pages in a measurement register. Software inside the VM can extend runtime measurement registers with measurements of code and data it loads later.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-2\" class=\"cite-link\">2</a>]</sup> In AMD Secure Encrypted Virtualization with Secure Nested Paging (SEV-SNP), the AMD Secure Processor measures the VM's initial memory pages and their placement into a launch digest.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<p>The measurements are then signed. Intel's design converts a report generated by the processor into a quote, signed with an attestation key. The key's certificate chain leads to an Intel certification authority, and Intel aims to publish the certificates and revocation lists for that chain.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-2\" class=\"cite-link\">2</a>]</sup> AMD's firmware signs reports with a Versioned Chip Endorsement Key (VCEK). Each chip has its own VCEK, derived from the version numbers of its trusted components, so a valid signature also identifies those versions.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-3\" class=\"cite-link\">3</a>]</sup> Both designs let software inside the VM add its own data to the report, such as a public key it will use to communicate, or a hash of that key.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<h2 id=\"how-a-verifier-appraises-a-report\">How a verifier appraises a report</h2>\n<p>Before anything sensitive is sent, a verifier works through these checks:</p>\n<ol><li><strong>Signature and certificate chain.</strong> The report's signing key must chain to the hardware maker's root, with no revoked certificate along the way.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-4\" class=\"cite-link\">4</a>]</sup></li><li><strong>Firmware versions.</strong> The trusted computing base (TCB) is all the hardware, firmware and software that must work correctly for a security policy to hold. Intel treats a TCB as up to date when each component's security version number meets a threshold its author publishes.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-2\" class=\"cite-link\">2</a>]</sup> Trail of Bits audited WhatsApp's Private Processing before launch and found that the system trusted the patch level the firmware reported about itself. The fix checks AMD-signed certificate fields.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-7\" class=\"cite-link\">7</a>]</sup></li><li><strong>Measurements.</strong> The verifier compares measurements with reference values.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>]</sup> In Apple's Private Cloud Compute (PCC), the reference values come from a public transparency log. Apple says a user's device wraps (encrypts) its request payload key only for nodes whose attested measurements match a release in the log.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-8\" class=\"cite-link\">8</a>]</sup></li><li><strong>Freshness.</strong> A nonce, an unpredictable value chosen by the verifier and signed into the evidence, shows that the evidence was signed after the nonce was generated.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>]</sup> The WhatsApp audit found reports with no random value supplied by the client. An attacker who compromised a TEE once could therefore replay its report and session keys indefinitely. Meta's fix puts the client's random value in each report. The value comes from the Transport Layer Security (TLS) handshake, the exchange that sets up the encrypted connection.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-7\" class=\"cite-link\">7</a>]</sup></li><li><strong>Binding to the connection.</strong> The report should be bound to the key that protects the session, so that only the attested machine can read the data. AMD's design lets a VM place the hash of its public key in the report.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-3\" class=\"cite-link\">3</a>]</sup> The auditors recommend attesting to a value derived from the TLS handshake.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-7\" class=\"cite-link\">7</a>]</sup></li></ol>\n<h2 id=\"how-gpus-join-the-trust-boundary\">How GPUs join the trust boundary</h2>\n<p>Large models run on GPUs, which hold the model and the data during inference. An attestation from the central processing unit (CPU) alone therefore says nothing about the GPUs. NVIDIA's confidential computing mode for H100 GPUs works with a confidential VM on AMD SEV-SNP or Intel TDX.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-4\" class=\"cite-link\">4</a>]</sup> Data transfers, command buffers and CUDA kernels are encrypted before they cross the PCI Express bus between the VM and the GPU. The GPU's on-package memory is not encrypted. NVIDIA says this memory is considered secure against everyday physical attack tools.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-4\" class=\"cite-link\">4</a>]</sup></p>\n<p>The VM's trust boundary encloses the components it trusts with the data. Before including the GPU in it, the VM checks the certificate for the GPU's identity key against NVIDIA's certificate authority and confirms that the certificate has not been revoked. That identity key is burned into the chip's fuses. The GPU also produces a signed attestation report of its measurements.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-4\" class=\"cite-link\">4</a>]</sup> NVIDIA's Remote Attestation Service (NRAS), or a local verifier, compares those measurements with reference integrity manifests (RIMs). RIMs are reference values that NVIDIA generates and signs as part of its driver and GPU firmware builds.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-5\" class=\"cite-link\">5</a>, <a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-6\" class=\"cite-link\">6</a>]</sup> The measured components include hardware configuration, firmware and driver microcode.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-6\" class=\"cite-link\">6</a>]</sup></p>\n<p>With evidence from the CPU's TEE and from each GPU, the machine is what RFC 9334 calls a composite device. Each component produces its own evidence, and a lead attester collects it.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>]</sup> A relying party needs all of it, tied to one machine.</p>\n<h2 id=\"what-a-valid-report-establishes-and-what-it-leaves-open\">What a valid report establishes and what it leaves open</h2>\n<p>A report that passes these checks shows that genuine hardware at known firmware versions loaded the measured software in a protected mode, with fresh evidence tied to the connection. Four gaps remain.</p>\n<p><strong>Behavior and later inputs are outside the report.</strong> A measurement identifies code. It does not show that the code enforces its policy, and it says nothing about inputs loaded afterward. The WhatsApp audit found configuration files with environment variables that were loaded after measurement. An insider could have used them to load malicious code while attestation still passed.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-7\" class=\"cite-link\">7</a>]</sup></p>\n<p><strong>A matching measurement helps only if someone knows what the build does.</strong> Apple committed to publishing every production PCC image so that researchers can check it against the logged measurements.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-8\" class=\"cite-link\">8</a>]</sup> Trail of Bits notes that it remains challenging to make confidential VM images fully reproducible, so that outsiders can rebuild and examine them.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-7\" class=\"cite-link\">7</a>]</sup></p>\n<p><strong>The hardware maker stays trusted.</strong> RFC 9334 uses the term roots of trust for components that no evidence describes, so endorsements must vouch for them.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>]</sup> A threat model states what a design defends against and what it trusts. AMD's SEV-SNP threat model, for example, treats the chip's hardware and its secure processor as fully trusted.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<p><strong>Physical attacks and side channels are often out of scope.</strong> AMD lists attacks on the memory bus while a VM is running as out of scope. It also says hardware does not specifically prevent architectural side channels.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-3\" class=\"cite-link\">3</a>]</sup> Intel says TDX does not prevent all types of hardware attacks.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-2\" class=\"cite-link\">2</a>]</sup> In September 2026, researchers disclosed DDRop, a memory-bus interposer: a device inserted between the processor and its memory. Its parts cost less than $200. The researchers report using it on Intel TDX to forge the measurement in an attestation report. Intel and AMD told them physical attacks on main memory are out of scope for current products.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-11\" class=\"cite-link\">11</a>]</sup></p>\n<h2 id=\"what-changes-for-ai-workloads-model-weights-and-a-larger-tcb\">What changes for AI workloads: model weights and a larger TCB</h2>\n<p><strong>Model weights need their own check.</strong> A launch measurement describes what was in memory at start-up. If weights are loaded afterward, the attestation says nothing about which model is serving, unless the software measures the weights or verifies a signature over them before use. It can measure them into a TDX runtime measurement register, for example.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-2\" class=\"cite-link\">2</a>]</sup> Google's Confidential Space reports the image digest of the workload container.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-9\" class=\"cite-link\">9</a>]</sup> That digest covers weights built into the image, but not weights downloaded later.</p>\n<p>Attestation can also be a condition for releasing the weights. RFC 9334 describes a model owner that releases a model, or the key to decrypt it, only to a device that passes attestation.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>]</sup> Anthropic's 2025 design sketch keeps weights encrypted and decrypts them only in a small trusted loader, after a key server has checked attestation.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-10\" class=\"cite-link\">10</a>]</sup></p>\n<p><strong>The trusted computing base grows with the inference stack.</strong> Everything inside a confidential VM belongs to the workload's TCB, because AMD's threat model treats the VM itself as fully trusted and responsible for protecting its own interfaces.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-3\" class=\"cite-link\">3</a>]</sup> With GPUs, the TCB includes the NVIDIA driver,<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-4\" class=\"cite-link\">4</a>]</sup> along with the operating system and serving software. Anthropic's sketch keeps the trusted part small. Within its inference server, only a small loader can access decrypted data. Anthropic says the rest might change frequently without affecting the system's security.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-10\" class=\"cite-link\">10</a>]</sup></p>\n<h2 id=\"further-reading\">Further reading</h2>\n<p>RFC 9334 defines the full vocabulary,<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-1\" class=\"cite-link\">1</a>]</sup> and the Trail of Bits audit shows where one deployment's checks fell short.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/remote-attestation-for-ai-workloads-explained/#source-7\" class=\"cite-link\">7</a>]</sup></p><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://www.rfc-editor.org/rfc/rfc9334\">Remote ATtestation procedureS (RATS) Architecture (RFC 9334)</a> · IETF · Jan 2023</li><li id=\"source-2\"><a href=\"https://cdrdv2-public.intel.com/856790/Intel%20Trust%20Domain%20Extensions%20Overview%20-%20June%202025.pdf\">Intel Trust Domain Extensions (white paper)</a> · Intel · Jun 2025</li><li id=\"source-3\"><a href=\"https://docs.amd.com/v/u/en-US/SEV-SNP-strengthening-vm-isolation-with-integrity-protection-and-more\">AMD SEV-SNP: Strengthening VM Isolation with Integrity Protection and More</a> · AMD · Jan 2020</li><li id=\"source-4\"><a href=\"https://developer.nvidia.com/blog/confidential-computing-on-h100-gpus-for-secure-and-trustworthy-ai/\">Confidential Computing on NVIDIA H100 GPUs for Secure and Trustworthy AI</a> · NVIDIA Technical Blog · 3 Aug 2023</li><li id=\"source-5\"><a href=\"https://docs.nvidia.com/attestation/quick-start-guide/latest/architecture.html\">Architecture Overview, NVIDIA Attestation Quick Start Guide</a> · NVIDIA · 6 Oct 2026</li><li id=\"source-6\"><a href=\"https://docs.nvidia.com/attestation/cloud-services/latest/rim/rim_introduction.html\">RIM Service introduction, NVIDIA Attestation Cloud Services</a> · NVIDIA · 6 Oct 2026</li><li id=\"source-7\"><a href=\"https://blog.trailofbits.com/2026/04/07/what-we-learned-about-tee-security-from-auditing-whatsapps-private-inference/\">What we learned about TEE security from auditing WhatsApp&#x27;s Private Inference</a> · Trail of Bits · 7 Apr 2026</li><li id=\"source-8\"><a href=\"https://security.apple.com/blog/private-cloud-compute/\">Private Cloud Compute: A new frontier for AI privacy in the cloud</a> · Apple Security Research · 10 Jun 2024</li><li id=\"source-9\"><a href=\"https://docs.cloud.google.com/confidential-computing/confidential-space/docs/reference/token-claims\">Confidential Space attestation token claims</a> · Google Cloud · 13 Oct 2026</li><li id=\"source-10\"><a href=\"https://www.anthropic.com/research/confidential-inference-trusted-vms\">Confidential Inference via Trusted Virtual Machines</a> · Anthropic · 18 Jun 2025</li><li id=\"source-11\"><a href=\"https://ddropattack.eu/\">DDRop: Active Memory Interposer Attacks on Confidential VMs by Dropping DDR5 Writes (project site)</a> · DDRop researchers (KU Leuven, ETH Zurich, Durham University, Google) · 14 Sep 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Research (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Confidential computing & attestation"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/proofs-enclaves-and-re-execution-compared/",
   "url": "https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/",
   "title": "Three Ways to Check an AI Answer: Proofs, Enclaves and Re-execution Compared",
   "summary": "Zero-knowledge proofs, attested enclaves and re-execution each give evidence about which model produced an answer. None is both cheap and low in trust assumptions, so the choice should depend on what each one establishes and what it leaves to trust.",
   "content_html": "<p>None of the three main approaches checks a hosted model's answer both cheaply and with few parties to trust. Zero-knowledge proofs give cryptographic evidence that the answer was computed by a model fixed in advance, so they avoid trusting the provider's hardware. But the systems examined here are slow and have been demonstrated only on smaller models. Attested enclaves are hardware-isolated environments that report which software they loaded. When tuned, they can run large models at a few percent overhead. In exchange, anyone relying on them must trust the chip vendors, the measured software and whoever checks the measurements. Re-execution reruns the model and compares the answers. It costs far less than proving, but its assurance rests on tolerances, sampling or disputes, and on an honest checker. Each family answers a different question at a different cost.</p>\n<h2 id=\"the-claim-being-checked-is-which-model-produced-an-output\">The claim being checked is which model produced an output</h2>\n<p>Verifiable-inference work checks a narrow claim: this output came from running a specific model on this input. The model is identified by its weights, and the run uses stated settings such as numeric precision and decoding method <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-9\" class=\"cite-link\">9</a>, <a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-12\" class=\"cite-link\">12</a>]</sup>. Providers have a motive to deviate: a smaller or lower-precision model costs less to serve, and users see only text <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-9\" class=\"cite-link\">9</a>, <a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-11\" class=\"cite-link\">11</a>]</sup>. Confidentiality, whether the provider can read the prompt, is a separate property.</p>\n<h2 id=\"zero-knowledge-proofs-remove-hardware-trust-at-a-high-proving-cost\">Zero-knowledge proofs remove hardware trust at a high proving cost</h2>\n<p>Zero-knowledge machine learning (zkML) systems prove that an output was computed from committed weights. The weights are fixed in advance by a cryptographic fingerprint, the commitment, which hides them. A verifier checks the proof without seeing the weights <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-1\" class=\"cite-link\">1</a>]</sup>. In 2024, zkLLM proved inference over a 2,048-token input for Llama 2 13B in 803 seconds on one NVIDIA A100 GPU. Verifying the 188 kB proof took about 4 seconds <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-1\" class=\"cite-link\">1</a>]</sup>. The 2026 DeepProve paper reports proving every generated token of a response: about 174 tokens per minute for GPT-2 and 86 for Gemma 3, and up to 1,855 with distributed proving <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-2\" class=\"cite-link\">2</a>]</sup>.</p>\n<p>Such a proof shows that the output is consistent with a commitment. That matters only if the commitment is tied to a known model. In zkLLM's setting, the developer publishes the commitment once and proves each response against it <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-1\" class=\"cite-link\">1</a>]</sup>.</p>\n<p>The proven computation is also an integer version of the model. zkLLM maps it into a finite field (a number system with finitely many values), and DeepProve quantizes weights and activations (the intermediate values the model computes) to 12 bits by default <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-3\" class=\"cite-link\">3</a>]</sup>. DeepProve's proofs also require each token to be the model's top-scoring prediction, as in greedy decoding <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-3\" class=\"cite-link\">3</a>]</sup>. The zero-knowledge property hides the weights from the verifier, but the provider still sees the prompt <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-1\" class=\"cite-link\">1</a>]</sup>.</p>\n<h2 id=\"attested-enclaves-can-add-little-overhead-but-move-trust-to-hardware-and-measurements\">Attested enclaves can add little overhead but move trust to hardware and measurements</h2>\n<p>A trusted execution environment (TEE) is a hardware-isolated environment designed to keep its memory from the host operating system and the hypervisor, the software that manages virtual machines. A confidential virtual machine, one that runs as a TEE, can use Intel Trust Domain Extensions (TDX) and be paired with NVIDIA GPUs in confidential computing mode. Remote attestation then supplies a measurement of the software loaded at launch: a cryptographic hash that the hardware signs <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-4\" class=\"cite-link\">4</a>]</sup>. A preprint by Confidential.ai authors tested generation-heavy serving of a 229-billion-parameter model on NVIDIA B200 GPUs. With a tuned software stack, they measured about 1% to 3% throughput overhead; stock inference stacks lost 30% to 40% <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-4\" class=\"cite-link\">4</a>]</sup>.</p>\n<p>The enclave is designed to keep prompts and weights from the operator, while attestation is evidence about which software was loaded <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-4\" class=\"cite-link\">4</a>]</sup>. Neither shows that the software computes the advertised model correctly, so trusting the output means trusting the measured inference stack.</p>\n<p>Under the attestation architecture of the Internet Engineering Task Force (IETF), a verifier compares the evidence with reference values, such as known-good measurements <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-5\" class=\"cite-link\">5</a>]</sup>. That comparison covers only what was measured and tied to the current session. Trail of Bits' pre-launch audit of WhatsApp's TEE-based AI processing found gaps of both kinds. Configuration loaded after the measurement could let an insider run malicious code while attestation still passed. And because reports lacked a fresh value from the client, anyone who had compromised an enclave once could replay them, presenting old reports as new. Meta fixed both <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-6\" class=\"cite-link\">6</a>]</sup>.</p>\n<p>The auditors' rule is that every loaded input must be measured or treated as hostile <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-6\" class=\"cite-link\">6</a>]</sup>. By that rule, weights loaded after launch are covered only if measured code checks them, for example against a published hash.</p>\n<p>Physical access can also defeat attestation. In September 2026, researchers disclosed DDRop, a device that costs under $200 to build and silently drops a server's memory writes. With one brief physical visit and control of the host software, they made a rogue Intel TDX virtual machine pass attestation using a legitimate workload's measurement. Intel and AMD consider physical attacks on server memory out of scope for current products <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-7\" class=\"cite-link\">7</a>]</sup>.</p>\n<h2 id=\"re-execution-must-distinguish-gpu-noise-from-cheating-and-depends-on-an-honest-checker\">Re-execution must distinguish GPU noise from cheating and depends on an honest checker</h2>\n<p>Re-execution checks an answer by rerunning the model on the same input and comparing, but GPU inference is often not reproducible. Thinking Machines Lab ran one prompt 1,000 times on a 235-billion-parameter Qwen3 model at temperature zero, a setting that removes randomness from token selection. The runs produced 80 distinct completions. The lab traced the differences to the order of operations in GPU kernels, the programs that perform the model's arithmetic. That order shifts with batch size, the number of requests processed together, and therefore with server load <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-8\" class=\"cite-link\">8</a>]</sup>.</p>\n<p>TOPLOC tolerates the noise. The provider commits to locality-sensitive hashes of intermediate activations: fingerprints designed to absorb small numeric differences. A validator with the weights recomputes the hashes in one pass over all tokens, faster than generation. In the authors' tests, it caught every changed model, prompt and precision without false alarms. But it cannot catch a provider that generates tokens with a cheaper model and hashes them with the claimed one. Catching that requires checking the sampling step that picks each token <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-9\" class=\"cite-link\">9</a>]</sup>.</p>\n<p>Verde removes the noise instead. Its RepOps library fixes the order of floating-point operations. When two providers disagree, a referee narrows the dispute to one operator, a single step of the computation, and recomputes only that. The client therefore gets the correct result if at least one provider is honest. On A100 GPUs, the authors report that RepOps adds 58% overhead relative to PyTorch for inference with a 1-billion-parameter Llama model and 98% with an 8-billion-parameter one. So far it covers only single-GPU runs. Running each job twice at least doubles the cost. The authors still put this cost under one order of magnitude, compared with at least four for cryptographic proofs <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-10\" class=\"cite-link\">10</a>]</sup>.</p>\n<p>IMMACULATE checks a sample. An auditor sends requests that look like ordinary traffic. The auditor then asks the provider to prove how far its next-token scores for those requests stray from the claimed full-precision model's. The authors report under 1% throughput overhead. Their guarantee assumes an honest auditor whose requests the provider cannot single out. It also assumes a provider that cheats on at least 10% of queries <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-11\" class=\"cite-link\">11</a>]</sup>. So the guarantee does not cover rare cheating. Every scheme here also fails if no one runs the check.</p>\n<h2 id=\"how-the-three-families-compare\">How the three families compare</h2>\n<div class=\"table-wrap\"><table><thead><tr><th scope=\"col\">Property</th><th scope=\"col\">Zero-knowledge proofs</th><th scope=\"col\">Attested enclaves</th><th scope=\"col\">Re-execution and sampling</th></tr></thead><tbody><tr><td>A passing check shows</td><td>The output follows from the committed weights under the proven computation</td><td>Genuine hardware launched software matching the reported measurements</td><td>A rerun or audited sample matched, exactly or within a tolerance</td></tr><tr><td>What must be trusted</td><td>Proof-system assumptions; a proven computation faithful to the model's architecture; a commitment tied to a known model</td><td>Chip vendors; the measured software; reference values and the verifier; physical security</td><td>An honest checker who runs the check; the reproducibility method or threshold</td></tr><tr><td>Reported cost</td><td>803 seconds per proof for a 13B model <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-1\" class=\"cite-link\">1</a>]</sup>; 86 to 174 tokens per minute, up to 1,855 distributed <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-2\" class=\"cite-link\">2</a>]</sup></td><td>1% to 3% throughput loss when tuned, 30% to 40% stock <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-4\" class=\"cite-link\">4</a>]</sup></td><td>One pass over all tokens per check <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-9\" class=\"cite-link\">9</a>]</sup>; 58% to 98% inference overhead relative to PyTorch on A100 GPUs, plus a duplicate run <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-10\" class=\"cite-link\">10</a>]</sup>; under 1% overhead with sampling <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-11\" class=\"cite-link\">11</a>]</sup></td></tr><tr><td>Maturity</td><td>Research systems; DeepProve's code is marked not production ready <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-3\" class=\"cite-link\">3</a>]</sup></td><td>Commercial hardware <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-4\" class=\"cite-link\">4</a>]</sup>; WhatsApp AI features, audited before launch <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-6\" class=\"cite-link\">6</a>]</sup></td><td>Research protocols; one deployment reported live <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-12\" class=\"cite-link\">12</a>]</sup></td></tr><tr><td>Typical failure modes</td><td>Commitment not tied to the served model; proven computation differs from the served one</td><td>Unmeasured inputs; replayable reports; physical attacks that forge attestation</td><td>Thresholds that miss subtle changes <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-9\" class=\"cite-link\">9</a>]</sup>; unchecked token sampling; rare cheating; absent checkers</td></tr></tbody></table></div>\n<h2 id=\"combinations-cover-some-gaps-but-keep-each-methods-assumptions\">Combinations cover some gaps but keep each method's assumptions</h2>\n<p>EigenAI, which Eigen Labs says launched in January 2026, joins two of the families: re-execution and attested enclaves. Operators run bit-exact deterministic inference, with the random seed fixed as an input. Results are accepted unless someone challenges them within a dispute window. A challenge triggers re-execution by a committee of verifiers inside attested enclaves. A mismatch triggers a penalty drawn from the operator's staked funds, the collateral it has locked up. Eigen Labs reports 1.8% added latency. It requires the same GPU model for operators and verifiers, because its tests across architectures never matched. Determinism reduces the check to a byte comparison. The company also says requests are decrypted only inside the enclaves during verification <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-12\" class=\"cite-link\">12</a>]</sup>. IMMACULATE's prototype likewise ran its audit computations in an Intel TDX enclave. That was hundreds of times slower than GPU inference, so the prototype relied on sampling to keep the cost negligible <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-11\" class=\"cite-link\">11</a>]</sup>.</p>\n<p>Each combination keeps its parts' assumptions. EigenAI still needs a challenger to act within the dispute window. The privacy of re-executed requests is only as strong as the enclave hardware, including against physical attacks such as DDRop <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-7\" class=\"cite-link\">7</a>, <a href=\"https://verifiable.pro/articles/proofs-enclaves-and-re-execution-compared/#source-12\" class=\"cite-link\">12</a>]</sup>.</p>\n<aside class=\"callout callout-example\"><p class=\"callout-label\">Worked example (hypothetical)</p><div class=\"callout-body\"><p>A law firm weighing a hosted open-weights model, whose weights are public, would want to limit who can read its contracts. So before sending any, it would check an enclave's attestation, including a hash of the weights. To test whether the provider serves the full-precision model it bills for, it could also have a checker it trusts re-execute a sample of requests.</p></div></aside>\n<h2 id=\"open-questions\">Open questions</h2>\n<ul><li>Whether proofs can cover the model sizes, floating-point arithmetic and sampled decoding that services use, at an acceptable cost.</li><li>Who publishes and checks the reference values that give attestations meaning, including hashes of weights and configuration loaded after launch.</li><li>Which settings, such as weight hashes, precision, decoding method and random seeds, providers should publish to give every method a fixed target.</li><li>How to weigh physical attacks that chip vendors place outside the TEE threat model (the attacks a TEE is designed to resist).</li></ul><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://arxiv.org/abs/2404.16109\">zkLLM: Zero Knowledge Proofs for Large Language Models</a> · arXiv (Sun, Li and Zhang; ACM CCS 2024) · 24 Apr 2024</li><li id=\"source-2\"><a href=\"https://eprint.iacr.org/2026/1112\">DeepProve: Verifiable End-to-End Large Language Model Inference</a> · IACR Cryptology ePrint Archive (Gailly et al.) · 30 May 2026</li><li id=\"source-3\"><a href=\"https://github.com/Lagrange-Labs/deep-prove/blob/master/zkml/README.md\">ZKML Inference Proving (DeepProve zkml README)</a> · Lagrange Labs on GitHub · 1 May 2026</li><li id=\"source-4\"><a href=\"https://arxiv.org/abs/2608.26575\">Benchmarking Confidential Computing Performance on NVIDIA Blackwell GPUs</a> · arXiv (Asad and Grunseid, Confidential.ai) · 27 Aug 2026</li><li id=\"source-5\"><a href=\"https://www.rfc-editor.org/rfc/rfc9334\">Remote ATtestation procedureS (RATS) Architecture, RFC 9334</a> · IETF · Jan 2023</li><li id=\"source-6\"><a href=\"https://blog.trailofbits.com/2026/04/07/what-we-learned-about-tee-security-from-auditing-whatsapps-private-inference/\">What we learned about TEE security from auditing WhatsApp&#x27;s Private Inference</a> · Trail of Bits · 7 Apr 2026</li><li id=\"source-7\"><a href=\"https://ddropattack.eu/\">DDRop: Active Memory Interposer Attacks on Confidential VMs by Dropping DDR5 Writes</a> · KU Leuven, ETH Zurich, Durham University and Google · 14 Sep 2026</li><li id=\"source-8\"><a href=\"https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/\">Defeating Nondeterminism in LLM Inference</a> · Thinking Machines Lab · 10 Sep 2025</li><li id=\"source-9\"><a href=\"https://arxiv.org/abs/2501.16007\">TOPLOC: A Locality Sensitive Hashing Scheme for Trustless Verifiable Inference</a> · arXiv (Ong et al.; ICML 2025) · 27 Jan 2025</li><li id=\"source-10\"><a href=\"https://arxiv.org/abs/2502.19405\">Verde: Verification via Refereed Delegation for Machine Learning Programs</a> · arXiv (Arun et al.) · 26 Feb 2025</li><li id=\"source-11\"><a href=\"https://arxiv.org/abs/2602.22700\">IMMACULATE: A Practical LLM Auditing Framework via Verifiable Computation</a> · arXiv (Guo et al.) · 26 Feb 2026</li><li id=\"source-12\"><a href=\"https://www.eigenlabs.org/blog/deterministic-ai-inference-eigenai/\">Deterministic Inference Is Here: How EigenAI Makes Every AI Output Verifiable</a> · EigenCloud (Eigen Labs) · 23 Jan 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Research (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Verifiable inference & computation",
    "Confidential computing & attestation"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/private-ai-compute-published-designs/",
   "url": "https://verifiable.pro/articles/private-ai-compute-published-designs/",
   "title": "Private AI Compute Services: What the Published Designs Let Outsiders Check",
   "summary": "Apple, Meta, Google and Cohere now route AI requests to servers whose chips sign a record of the software they loaded. Their published designs differ in what anyone outside each company can check about that software.",
   "content_html": "<p>Apple, Meta and Google now send some AI requests to servers designed to keep the companies' own staff out. The servers use remote attestation to report which software they loaded <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-6\" class=\"cite-link\">6</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-8\" class=\"cite-link\">8</a>]</sup>. Cohere offers a similar arrangement through its Model Vault service <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-11\" class=\"cite-link\">11</a>]</sup>. The published designs show that what an outsider can check depends less on the hardware than on three choices built on top of it. The choices are a public log of software releases, an attestation check on the user's device, and research access to the software. The providers make these choices differently, so \"verifiable\" means different amounts of outside checking.</p>\n<p>Each choice fills a gap that attestation leaves open. A trusted execution environment (TEE) is designed to isolate software from the machine's operator. Its attestation report is signed by a key in the chip and carries a measurement: a cryptographic fingerprint of the loaded software <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-6\" class=\"cite-link\">6</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-7\" class=\"cite-link\">7</a>]</sup>. The measurement identifies the build, the exact software version, but does not show what the build does with a request <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-6\" class=\"cite-link\">6</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-11\" class=\"cite-link\">11</a>]</sup>. A public log lets the device confirm that the build is on a record outsiders can see. An attestation check on the device keeps the provider from simply asserting that its servers passed. Research access lets outsiders examine what the build does.</p>\n<h2 id=\"apple-publishes-each-build-and-a-tool-to-run-it\">Apple publishes each build and a tool to run it</h2>\n<p>Apple's Private Cloud Compute (PCC), announced in June 2024, makes all three choices. A user's device encrypts a request only for server nodes whose attested measurements match a release in a public, append-only transparency log. Apple committed to publishing each production image, the software the server nodes boot, within 90 days of its log entry <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-1\" class=\"cite-link\">1</a>]</sup>. In October 2024 Apple released a Virtual Research Environment (VRE), along with source code for selected components under a limited-use license. The VRE lets anyone with a suitable Apple silicon Mac download a logged release and boot it in a virtual machine. A researcher can thus run a lightly modified copy of the software whose measurement a device checked <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-2\" class=\"cite-link\">2</a>]</sup>.</p>\n<p>Apple's June 2026 expansion moves new Apple Intelligence workloads onto Google Cloud. The deployment uses NVIDIA confidential-computing GPUs, Intel CPUs with Trust Domain Extensions (TDX) and Google's Titan chip. Apple says it keeps an append-only ledger of that hardware and will publish all binaries. It also says that for components that could expose user data if compromised, attestation is rooted in at least two independent vendors' roots of trust (the parts of a system trusted without further checks) <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-3\" class=\"cite-link\">3</a>]</sup>. Outside checks lag behind. Apple's release notes describe the deployment as a preview ramping toward PCC's full security, privacy and transparency properties. They also say VRE support for its attestations and log entries awaits a public research program due later in 2026 <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-3\" class=\"cite-link\">3</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-4\" class=\"cite-link\">4</a>]</sup>.</p>\n<h2 id=\"meta-publishes-measurements-and-shares-binaries-under-agreement\">Meta publishes measurements and shares binaries under agreement</h2>\n<p>Meta's Private Processing, introduced for WhatsApp in 2025, also puts the check on the device. Before sending a request, the app opens a session with a confidential virtual machine (CVM), which runs as a TEE. The session uses Remote Attestation plus Transport Layer Security (RA-TLS), which ties the encrypted connection to the CVM's attestation. The app also cross-checks the CVM's measurements against a third-party ledger <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-5\" class=\"cite-link\">5</a>]</sup>. Meta's September 2026 description, covering AI glasses, calls the ledger append-only and publicly witnessed. It says the measurements are public, while the binaries are available under agreement to researchers in Meta's security program. Meta says client devices and outside monitors could discover any deployed code that differed from the published record, a property it calls tamper-evidence. But confirming what a recorded image does requires the binaries <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-6\" class=\"cite-link\">6</a>]</sup>.</p>\n<p>Trail of Bits' pre-launch audit of the WhatsApp system shows why that access matters. It reported 28 issues, eight of them high severity <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-7\" class=\"cite-link\">7</a>]</sup>. In one, configuration files were loaded after the measurement was taken, so an insider could have injected code while the attestation still verified. In another, tables describing the hardware to the operating system were left out of the measurement. Because both inputs sat outside the measurement, tampering with them would not have changed it. So a ledger check would still have passed. Meta fixed both. Trail of Bits added that outside verification requires researchers to reproduce and examine the CVM images, and that full reproducibility remained challenging <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-7\" class=\"cite-link\">7</a>]</sup>.</p>\n<h2 id=\"in-googles-design-most-attestation-checks-run-inside-google\">In Google's design, most attestation checks run inside Google</h2>\n<p>Google's Private AI Compute runs Gemini models on a hardened Tensor Processing Unit (TPU) platform. Google says the platform offers privacy and security properties comparable to a typical TEE. Private AI Compute's CPU services run in CVMs using AMD's Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP) <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-8\" class=\"cite-link\">8</a>]</sup>. The larger difference from Apple and Meta is where attestation is checked. In the chain of trust NCC Group's 2025 review describes, the device trusts a public key built into the client. Google's key store decrypts requests only for frontend servers that hold a token. Borg Prime, Google's central orchestrator, issues that token after verifying the server's attestation <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-9\" class=\"cite-link\">9</a>]</sup>.</p>\n<p>NCC wrote that only Google and the external auditors it granted internal access could verify whether components had been compromised. It also judged that Google as a whole retains the power to expose user data, although no single insider does <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-9\" class=\"cite-link\">9</a>]</sup>.</p>\n<p>Google's September 2026 update moves some evidence outside the company. Its new encrypted, per-user memory store runs on an open-source server and runtime. Google ties their published source to the deployed enclave in two ways. Reproducible builds let anyone build the source again and get identical binaries. An append-only ledger records the endorsed binary digests, or hashes <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-8\" class=\"cite-link\">8</a>]</sup>. On the device, an open-source Android library verifies the memory enclave's attestation before sending the user's key <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-10\" class=\"cite-link\">10</a>]</sup>. For the rest of the system, Google publishes digests of critical components and lists two items as future work: validating attestation evidence on the device, and a log co-signed by independent third parties <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-8\" class=\"cite-link\">8</a>]</sup>. Trail of Bits noted that Google can change the system without prior external review and that the system contains extensive closed-source code <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-10\" class=\"cite-link\">10</a>]</sup>.</p>\n<h2 id=\"cohere-relies-on-intel-to-check-attestation-evidence\">Cohere relies on Intel to check attestation evidence</h2>\n<p>Cohere's Model Vault Encrypted, in its Intel TDX deployment, relies on Intel Trust Authority, an attestation service that Intel operates. The service checks each CVM's CPU and GPU evidence against a policy of expected measurements that Cohere registers. Cohere's client-side proxy verifies Intel's signed token before sending a request. Cohere says its vault image and workload are open source and reproducibly built <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-11\" class=\"cite-link\">11</a>]</sup>. The customer's client makes the final check. Intel, which also makes the CPU, sits between customer and Cohere as the verifier.</p>\n<h2 id=\"how-the-four-designs-compare\">How the four designs compare</h2>\n<div class=\"table-wrap\"><table><thead><tr><th scope=\"col\">Design</th><th scope=\"col\">Software record</th><th scope=\"col\">Who checks attestation</th><th scope=\"col\">Outside inspection</th></tr></thead><tbody><tr><td>Apple PCC on Apple silicon <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-2\" class=\"cite-link\">2</a>]</sup></td><td>Public append-only log; binaries published within 90 days of being logged</td><td>User's device</td><td>Public binaries, VRE, some source, bug bounty</td></tr><tr><td>Apple PCC on Google Cloud, preview <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-3\" class=\"cite-link\">3</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-4\" class=\"cite-link\">4</a>]</sup></td><td>Same log; VRE cannot yet parse these releases</td><td>User's device; protections still being phased in</td><td>Research program due later in 2026</td></tr><tr><td>Meta Private Processing <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-5\" class=\"cite-link\">5</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-6\" class=\"cite-link\">6</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-7\" class=\"cite-link\">7</a>]</sup></td><td>Measurements in a publicly witnessed ledger</td><td>User's device</td><td>Binaries shared under agreement, bug bounty, published audit</td></tr><tr><td>Google Private AI Compute <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-8\" class=\"cite-link\">8</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-9\" class=\"cite-link\">9</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-10\" class=\"cite-link\">10</a>]</sup></td><td>Ledger of digests for critical components</td><td>Google's infrastructure; user's device for the memory store</td><td>Audits with internal access, open-source memory server</td></tr><tr><td>Cohere Model Vault Encrypted <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-11\" class=\"cite-link\">11</a>]</sup></td><td>Policy registered with Intel Trust Authority</td><td>Customer's client, via Intel's token</td><td>Cohere says its stack is open source</td></tr></tbody></table></div>\n<h2 id=\"what-all-four-designs-still-leave-to-trust\">What all four designs still leave to trust</h2>\n<p>The first dependency is the hardware. In September 2026, researchers disclosed DDRop, a device built from about $160 in parts that silently drops writes to a server's DDR5 memory. The memory then holds stale data, which the memory encryption in Intel TDX and AMD SEV-SNP cannot detect. On TDX, the researchers used it to make a rogue CVM they controlled pass remote attestation with a legitimate workload's measurement. On SEV-SNP, they used it to copy a victim's memory pages. The attack needs a brief physical visit plus control of the host software. Intel and AMD treat physical memory attacks as out of scope for current products <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-12\" class=\"cite-link\">12</a>]</sup>.</p>\n<p>Apple, Meta and Google face this dependency differently. Apple adds a hardware ledger and a second, independent root of trust <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-3\" class=\"cite-link\">3</a>]</sup>. Trail of Bits found that Meta needed extra controls over which CPUs could be trusted, because SEV-SNP does not fully protect against advanced physical attacks <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-7\" class=\"cite-link\">7</a>]</sup>. NCC noted that for Google's TPUs, the hardware maker that must be trusted is Google itself <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-9\" class=\"cite-link\">9</a>]</sup>.</p>\n<p>The second dependency is what a measurement leaves out. Besides the WhatsApp findings, Apple's release notes disclose that a configuration value was read without attestation until a later release. The value decides whether certain agent tools run in isolation <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-4\" class=\"cite-link\">4</a>]</sup>. NCC found it unclear whether some Google binaries rely on configuration packages that the transparency log does not track <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-9\" class=\"cite-link\">9</a>]</sup>. Log filters and egress rules (rules for outgoing network traffic) decide what leaves the protected machine <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-5\" class=\"cite-link\">5</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-8\" class=\"cite-link\">8</a>]</sup>. Outsiders can check them only as far as they see the code, which Apple publishes for its filter <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-2\" class=\"cite-link\">2</a>]</sup>. Trail of Bits also found that Google sends truncated hashes of response fragments outside the trusted boundary to check whether responses recite copyrighted text. It rated this unresolved issue high severity but hard to exploit <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-10\" class=\"cite-link\">10</a>]</sup>.</p>\n<p>The third dependency is the record itself. Apple may publish a logged build up to 90 days after it enters the log, so a build can serve requests before outsiders can download it <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-1\" class=\"cite-link\">1</a>]</sup>. Verification code needs review too. Trail of Bits found two flaws, since fixed, in Google's attestation and ledger checks. The flaws would have let two or more unauthorized insiders acting together deploy modified services without a publicly visible ledger entry <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-10\" class=\"cite-link\">10</a>]</sup>.</p>\n<h2 id=\"open-questions\">Open questions</h2>\n<p>The first open question is whether the promised checks are delivered, such as Apple's research program for PCC on Google Cloud and Google's device-side verification <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-4\" class=\"cite-link\">4</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-8\" class=\"cite-link\">8</a>]</sup>.</p>\n<p>The second is who watches the logs. A harmful build that is properly logged is caught only by someone who monitors the log and can examine the build. For Meta's binaries and Google's closed-source code, that examination requires access the provider grants <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-6\" class=\"cite-link\">6</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-10\" class=\"cite-link\">10</a>]</sup>.</p>\n<p>The third concerns stored state. Google's memory store, Meta's encrypted storage for glasses and Apple's reuse of encrypted intermediate model state across conversation turns keep user data beyond one request <sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-4\" class=\"cite-link\">4</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-6\" class=\"cite-link\">6</a>, <a href=\"https://verifiable.pro/articles/private-ai-compute-published-designs/#source-8\" class=\"cite-link\">8</a>]</sup>. An attestation, checked when a device connects, describes the software a server loaded. How outsiders should check what happens to stored data afterward is unsettled.</p>\n<aside class=\"callout callout-limits\"><p class=\"callout-label\">What this does not show</p><div class=\"callout-body\"><p>This comparison covers what each provider's publications let outsiders check. It does not rank security, since a system can be well built without being open to review.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we read all twelve sources. Apple's release notes and Cohere's documentation page are undated, so we list that day. Google's brief gives only a month, so we list the date of Google's announcement that links to it. We found no sign that Apple's research program for PCC on Google Cloud has launched. We did not run the VRE, query any ledger or test any service.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://security.apple.com/blog/private-cloud-compute/\">Private Cloud Compute: A new frontier for AI privacy in the cloud</a> · Apple Security Research · 10 Jun 2024</li><li id=\"source-2\"><a href=\"https://security.apple.com/blog/pcc-security-research/\">Security research on Private Cloud Compute</a> · Apple Security Research · 24 Oct 2024</li><li id=\"source-3\"><a href=\"https://security.apple.com/blog/expanding-pcc/\">Expanding Private Cloud Compute</a> · Apple Security Research · 8 Jun 2026</li><li id=\"source-4\"><a href=\"https://security.apple.com/documentation/private-cloud-compute/releasenotes\">Private Cloud Compute Security Guide: Release Notes</a> · Apple · accessed 20 Oct 2026</li><li id=\"source-5\"><a href=\"https://engineering.fb.com/2025/04/29/security/whatsapp-private-processing-ai-tools/\">Building Private Processing for AI tools on WhatsApp</a> · Engineering at Meta · 29 Apr 2025</li><li id=\"source-6\"><a href=\"https://engineering.fb.com/2026/09/23/security/private-processing-meta-ai-glasses/\">Bringing Private Processing to Meta AI Glasses</a> · Engineering at Meta · 23 Sep 2026</li><li id=\"source-7\"><a href=\"https://blog.trailofbits.com/2026/04/07/what-we-learned-about-tee-security-from-auditing-whatsapps-private-inference/\">What we learned about TEE security from auditing WhatsApp&#x27;s Private Inference</a> · Trail of Bits · 7 Apr 2026</li><li id=\"source-8\"><a href=\"https://services.google.com/fh/files/misc/private_ai_compute_technical_brief.pdf\">Google Private AI Compute: Enabled with Secure Server-Side Memory</a> · Google · 23 Sep 2026</li><li id=\"source-9\"><a href=\"https://www.nccgroup.com/media/cbuhuhuu/ncc_group_google_e025353p_report_2025-11-08_v14.pdf\">Private AI Compute in the Cloud: Assessment Overview</a> · NCC Group · 8 Nov 2025</li><li id=\"source-10\"><a href=\"https://github.com/trailofbits/publications/blob/master/reviews/2026-09-google-secure-memory-securityreview.pdf\">Google Private AI Compute, Secure Server-Side Memory: Security Assessment</a> · Trail of Bits · 21 Sep 2026</li><li id=\"source-11\"><a href=\"https://docs.cohere.com/docs/model-vault/encrypted/attestation\">Remote Attestation (Model Vault Encrypted documentation)</a> · Cohere · accessed 20 Oct 2026</li><li id=\"source-12\"><a href=\"https://ddropattack.eu/\">DDRop: Active Memory Interposer Attacks on Confidential VMs by Dropping DDR5 Writes</a> · KU Leuven, ETH Zurich, Durham University and Google · 14 Sep 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Research (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Confidential computing & attestation",
    "Model & data supply chain"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/how-to-read-a-remote-attestation-report/",
   "url": "https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/",
   "title": "How to read a remote attestation report",
   "summary": "A nine-step worksheet for deciding whether a service's hardware-signed evidence shows software and settings you are prepared to trust, before any data leaves your systems.",
   "content_html": "<p>An attestation report is evidence that you must check against your own requirements before any data leaves your systems. In remote attestation, a machine produces hardware-signed evidence about its software and configuration so that a remote party can decide whether to trust it. Vendor tools can confirm that a report is genuine and that the platform's firmware is current. But judging the software the report records remains your task. For instance, Intel's verification library for Trust Domain Extensions (TDX) leaves it to the verifier to compare the measurements in a quote (Intel's signed report) with expected values.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-5\" class=\"cite-link\">5</a>]</sup> The nine checks below use field names from Intel TDX and AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP) as examples.</p>\n<h2 id=\"when-to-use-this-guide\">When to use this guide</h2>\n<p>Use it when a service offers attestation evidence and you must decide whether to send it prompts, documents or model weights. Such a service runs in a trusted execution environment (TEE), where hardware is designed to isolate the workload from its host. In this guide, the workload is a whole virtual machine (VM). AMD SEV-SNP, for example, encrypts each VM's memory with its own key.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-3\" class=\"cite-link\">3</a>]</sup> Repeat the checks whenever the service releases new software or the vendor raises its minimum firmware versions.</p>\n<p>In the terms of RFC 9334, the Internet Engineering Task Force (IETF) attestation architecture, the service is the attester. A verifier appraises its evidence against reference values. You, the relying party, apply your own policy to the verifier's result.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<h2 id=\"what-you-need-before-you-start\">What you need before you start</h2>\n<ul><li><strong>Evidence:</strong> the report or quote and any certificates sent with it.</li><li><strong>A verifier:</strong> the vendor's library or service, with current collateral, meaning supporting data such as certificate revocation lists (CRLs).<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-5\" class=\"cite-link\">5</a>]</sup></li><li><strong>Reference values:</strong> the measurements the provider publishes for each release, also called known-good values.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-1\" class=\"cite-link\">1</a>]</sup></li><li><strong>A policy:</strong> minimum firmware versions, accepted measurements, flags you reject, and what you will send if every check passes.</li></ul>\n<h2 id=\"step-1-identify-the-tee-technology-and-each-attester\">Step 1: Identify the TEE technology and each attester</h2>\n<p>Identify each attester and its TEE technology, because each technology has its own evidence format and verification tools.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-5\" class=\"cite-link\">5</a>]</sup> An AI service may add evidence from its graphics processing units (GPUs). NVIDIA's verifiers compare GPU evidence with reference measurements from signed manifests, and an Online Certificate Status Protocol (OCSP) service checks the certificates for revocation.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-6\" class=\"cite-link\">6</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-1\"><label for=\"how-to-read-a-remote-attestation-report-en-check-1\">Name the technology and processor generation behind each report</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-2\"><label for=\"how-to-read-a-remote-attestation-report-en-check-2\">Obtain each verifier from the vendor or another source you have vetted</label></li></ul>\n<h2 id=\"step-2-verify-the-signature-chain-to-the-vendors-root\">Step 2: Verify the signature chain to the vendor's root</h2>\n<p>Check that the report's signature chains to a key the vendor controls. Otherwise, the report does not count as evidence. An SEV-SNP report's SIGNING_KEY field identifies the key that signed it, such as the chip's Versioned Chip Endorsement Key (VCEK).<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-2\" class=\"cite-link\">2</a>]</sup> AMD's Key Distribution System (KDS) serves VCEK certificates and the chain behind them: the AMD Root Key (ARK) issues the AMD SEV Key (ASK), which issues the VCEK certificate.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-3\" class=\"cite-link\">3</a>]</sup> For TDX, Intel's library checks the Provisioning Certification Key (PCK) certificate chain and the quote's signature.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-5\" class=\"cite-link\">5</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-3\"><label for=\"how-to-read-a-remote-attestation-report-en-check-3\">The chain ends at a root certificate obtained from the vendor</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-4\"><label for=\"how-to-read-a-remote-attestation-report-en-check-4\">The signature verifies; an SEV-SNP SIGNATURE field filled with zeroes means the report is unsigned<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-2\" class=\"cite-link\">2</a>]</sup></label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-5\"><label for=\"how-to-read-a-remote-attestation-report-en-check-5\">The report's CHIP_ID matches the identifier used to fetch the VCEK<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-4\" class=\"cite-link\">4</a>]</sup></label></li></ul>\n<h2 id=\"step-3-check-firmware-versions-against-revocation-data\">Step 3: Check firmware versions against revocation data</h2>\n<p>Check the versions of the trusted computing base (TCB), the set of components the protection depends on. AMD defines a TCB version as a combination of component versions, such as SNP firmware and processor microcode. AMD raises the minimum patch level when it fixes vulnerabilities. Each VCEK is unique to a chip running a specific TCB version.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-3\" class=\"cite-link\">3</a>]</sup> A report's REPORTED_TCB names the version used to derive the key that signed it.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-2\" class=\"cite-link\">2</a>]</sup> AMD's guide compares these values with those in the VCEK certificate.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-4\" class=\"cite-link\">4</a>]</sup></p>\n<p>Trail of Bits found that WhatsApp's Private Processing system originally trusted the patch level the firmware claimed. Meta's fix instead reads the patch level from the VCEK certificate and enforces a minimum.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-7\" class=\"cite-link\">7</a>]</sup></p>\n<p>For TDX, Intel's library returns a verification result such as OK, OUT_OF_DATE or REVOKED. Intel also describes policies that accept an out-of-date platform for a grace period.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-5\" class=\"cite-link\">5</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-6\"><label for=\"how-to-read-a-remote-attestation-report-en-check-6\">Take version numbers from vendor-signed data and compare them with your minimums</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-7\"><label for=\"how-to-read-a-remote-attestation-report-en-check-7\">Check the vendor's CRL, such as the one AMD's KDS publishes for each product,<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-3\" class=\"cite-link\">3</a>]</sup> and the age of the collateral</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-8\"><label for=\"how-to-read-a-remote-attestation-report-en-check-8\">Decide in advance whether to accept an out-of-date status, and for how long</label></li></ul>\n<h2 id=\"step-4-compare-measurements-with-published-reference-values\">Step 4: Compare measurements with published reference values</h2>\n<p>Compare the measurements with published reference values. A measurement is a cryptographic hash of code or data, recorded as it loads. SEV-SNP's MEASUREMENT is a hash that the firmware computes at launch, as the hypervisor (the software that manages virtual machines) loads data into the VM's memory.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-2\" class=\"cite-link\">2</a>]</sup> In TDX, a protected VM is called a trust domain. MRTD covers the trust domain's initial contents. By convention, four runtime registers, RTMR0 to RTMR3, hold measurements taken later by the virtual firmware, the operating system and the runtime.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-5\" class=\"cite-link\">5</a>]</sup></p>\n<p>Reference values tie each hash to a release that you or others can inspect. In Apple's Private Cloud Compute design, a device encrypts its request only for nodes whose attested measurements match a release in a public, append-only transparency log.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-8\" class=\"cite-link\">8</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-9\"><label for=\"how-to-read-a-remote-attestation-report-en-check-9\">Every measurement field your policy relies on has an expected value</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-10\"><label for=\"how-to-read-a-remote-attestation-report-en-check-10\">Each expected value traces to an auditable source, such as a reproducible build or an append-only log, and to a named release</label></li></ul>\n<h2 id=\"step-5-confirm-the-report-is-fresh\">Step 5: Confirm the report is fresh</h2>\n<p>Send a nonce, an unpredictable value used once, and check that the signed report contains it. A valid report from last week says nothing about the machine today. Under the nonce approach in RFC 9334, the appraising party sends the nonce, and the attester includes it in the signed evidence. A match shows that the claims were signed after the nonce was generated.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Both technologies offer a 64-byte field for such data. In SEV-SNP it is REPORT_DATA, which the firmware does not interpret.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-2\" class=\"cite-link\">2</a>]</sup> In TDX it is REPORTDATA, which Intel suggests can hold a verifier's nonce.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-5\" class=\"cite-link\">5</a>]</sup> WhatsApp's reports originally carried no client-supplied value, so an attacker who compromised a TEE once could have replayed its attestation indefinitely.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-7\" class=\"cite-link\">7</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-11\"><label for=\"how-to-read-a-remote-attestation-report-en-check-11\">Send a new, unpredictable nonce for each session</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-12\"><label for=\"how-to-read-a-remote-attestation-report-en-check-12\">Confirm that the report data contains it, directly or through a hash the provider documents</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-13\"><label for=\"how-to-read-a-remote-attestation-report-en-check-13\">Reject cached reports unless your policy sets a maximum age</label></li></ul>\n<h2 id=\"step-6-confirm-the-report-is-bound-to-your-connection\">Step 6: Confirm the report is bound to your connection</h2>\n<p>Check that the report is tied to the connection you are about to use. Freshness shows a report is recent. Binding shows that your connection ends inside the attested environment. Intel notes that report data can carry a public key generated inside the trust domain for setting up a secure session.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-5\" class=\"cite-link\">5</a>]</sup> Meta's fix for WhatsApp placed the client_random value from the Transport Layer Security (TLS) handshake in each report, tying every report to one connection.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-7\" class=\"cite-link\">7</a>]</sup> Also ask how any GPU evidence is tied to your session. Without that tie, the GPU evidence could come from another machine.</p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-14\"><label for=\"how-to-read-a-remote-attestation-report-en-check-14\">The report commits to the key or handshake value of your connection, and your client checks this before sending data</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-15\"><label for=\"how-to-read-a-remote-attestation-report-en-check-15\">Every report presented, including GPU evidence, is tied to the same session</label></li></ul>\n<h2 id=\"step-7-check-debug-and-policy-flags\">Step 7: Check debug and policy flags</h2>\n<p>Check the debug and policy flags even on a genuine, fresh report, because it can still describe an environment the host can inspect. SEV-SNP's POLICY field includes a DEBUG bit. It also includes a setting for whether a migration agent (software that helps move the VM to another machine) may be associated with the VM.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-2\" class=\"cite-link\">2</a>]</sup> In TDX, setting the DEBUG bit in TDATTRIBUTES lets the host access the trust domain's processor state and private memory. Intel advises against giving production secrets to a trust domain with any debug flag set.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-5\" class=\"cite-link\">5</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-16\"><label for=\"how-to-read-a-remote-attestation-report-en-check-16\">Debugging is disabled: POLICY.DEBUG for SEV-SNP and the TDATTRIBUTES debug flags for TDX are 0</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-17\"><label for=\"how-to-read-a-remote-attestation-report-en-check-17\">Other policy bits, such as migration agents and simultaneous multithreading (SMT), match your policy, and reserved fields are zero<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-2\" class=\"cite-link\">2</a>]</sup></label></li></ul>\n<h2 id=\"step-8-list-what-the-measurements-leave-out\">Step 8: List what the measurements leave out</h2>\n<p>List the inputs the service reads after launch. They stay unverified unless measured code records them or checks them against expected values. Trail of Bits found two such gaps in WhatsApp's system. First, environment variables came from configuration files read after the measurement. This would have let an insider load hostile code without changing the attestation. Second, the Advanced Configuration and Power Interface (ACPI) tables, which describe hardware to the operating system, were not measured. This would have let a malicious hypervisor declare rogue devices with access to protected memory.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-7\" class=\"cite-link\">7</a>]</sup> For an AI service, ask about model weights, adapters, system prompts and serving configuration.</p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-18\"><label for=\"how-to-read-a-remote-attestation-report-en-check-18\">List the inputs loaded after launch and, for each, the mechanism that measures or verifies it, such as a hash built into the measured image or an entry in RTMR3</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-19\"><label for=\"how-to-read-a-remote-attestation-report-en-check-19\">Mark the remaining inputs unverified and decide whether that is acceptable for your data</label></li></ul>\n<h2 id=\"step-9-record-the-decision\">Step 9: Record the decision</h2>\n<p>Keep a record that lets you or an auditor reconstruct the decision. You need it because an attestation result reflects the policy, endorsements (usually vendor-signed statements about the hardware) and reference values in force when it was produced.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-20\"><label for=\"how-to-read-a-remote-attestation-report-en-check-20\">Save the report, certificates, nonce and verifier output</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-21\"><label for=\"how-to-read-a-remote-attestation-report-en-check-21\">Record the verifier version, policy and reference values you applied</label></li><li class=\"task\"><input type=\"checkbox\" id=\"how-to-read-a-remote-attestation-report-en-check-22\"><label for=\"how-to-read-a-remote-attestation-report-en-check-22\">Record the decision, the exceptions you accepted and what will trigger a new check, such as a new release</label></li></ul>\n<h2 id=\"a-worked-example\">A worked example</h2>\n<aside class=\"callout callout-example\"><p class=\"callout-label\">Worked example (hypothetical): a contract-summarization service</p><div class=\"callout-body\"><p>A law firm is deciding whether to send contract drafts to an invented summarization service in an SEV-SNP VM. The provider logs a reference measurement for each release. Its documentation says that REPORT_DATA holds a SHA-512 hash of the client's nonce and the server's TLS public key. The firm's software receives this report:</p>\n<pre class=\"code\"><code class=\"language-text\">SIMPLIFIED, HYPOTHETICAL REPORT. Field names follow the AMD SEV-SNP\nABI specification; all values are invented and most fields are omitted.\n\nPOLICY         DEBUG=0  MIGRATE_MA=0  SMT=1\nMEASUREMENT    5e1c...9a0f\nREPORT_DATA    7d02...c4b1\nREPORTED_TCB   BOOT_LOADER=9  TEE=0  SNP=23  MICROCODE=72\nCHIP_ID        c81d...5577\nSIGNING_KEY    VCEK\nSIGNATURE      ECDSA signature by the chip&#x27;s VCEK</code></pre>\n<p>The firm's checks show:</p>\n<ol><li>The signature and certificate chain verify up to the ARK the firm downloaded from AMD.</li><li>The VCEK certificate carries the same TCB values as the report, and they meet the firm's minimums. No certificate in the chain appears on AMD's CRL.</li><li>MEASUREMENT matches release 2026.10.2 in the provider's log.</li><li>The hash of the firm's nonce and the handshake's TLS key matches REPORT_DATA.</li><li>POLICY disallows debugging and migration agents and allows SMT, which the firm accepts.</li><li>The provider's documentation says the model weights are downloaded after boot, with no check against a fixed hash.</li></ol>\n<p>The firm records the result. It sends only non-confidential test documents until the provider builds a hash of the weights into the measured image.</p></div></aside>\n<aside class=\"callout callout-limits\"><p class=\"callout-label\">What a passing report does not establish</p><div class=\"callout-body\"><ul><li>A passing report shows which software genuine hardware launched, with which settings, and that your connection ends inside it. It does not show that the software is correct or keeps the provider's data-handling promises; that requires review of the code the measurements identify.</li><li>You still trust the hardware itself and its vendor's keys, firmware and verification services. The DDRop researchers describe an attacker who controls the host's software and installs a small device on the memory bus during one brief visit. They report that this attacker can make a rogue Intel TDX VM pass remote attestation by overwriting its launch measurement with a legitimate one. They say Intel and AMD consider physical attacks on main memory out of scope for their current products.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/#source-9\" class=\"cite-link\">9</a>]</sup></li><li>The report does not cover logging, storage or other systems outside the attested environment.</li></ul></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://www.rfc-editor.org/rfc/rfc9334\">Remote ATtestation procedureS (RATS) Architecture (RFC 9334)</a> · IETF · Jan 2023</li><li id=\"source-2\"><a href=\"https://docs.amd.com/v/u/en-US/56860_PUB_SEV_SNP\">SEV Secure Nested Paging Firmware ABI Specification, Revision 1.59</a> · AMD · 26 Aug 2026</li><li id=\"source-3\"><a href=\"https://docs.amd.com/v/u/en-US/57230\">Versioned Chip Endorsement Key (VCEK) Certificate and KDS Interface Specification, Revision 1.05</a> · AMD · 3 Sep 2026</li><li id=\"source-4\"><a href=\"https://www.amd.com/content/dam/amd/en/documents/developer/58217-epyc-9004-ug-platform-attestation-using-virtee-snp.pdf\">SEV-SNP Platform Attestation Using VirTEE/SEV, Revision 1.2</a> · AMD · Jul 2023</li><li id=\"source-5\"><a href=\"https://download.01.org/intel-sgx/latest/dcap-latest/linux/docs/Intel_TDX_DCAP_Quoting_Library_API.pdf\">Intel Trust Domain Extensions Data Center Attestation Primitives (Intel TDX DCAP): Quote Generation Library and Quote Verification Library, Rev 0.91</a> · Intel · Sep 2026</li><li id=\"source-6\"><a href=\"https://docs.nvidia.com/attestation/quick-start-guide/latest/architecture.html\">Architecture Overview, NVIDIA Attestation Quick Start Guide</a> · NVIDIA · 6 Oct 2026</li><li id=\"source-7\"><a href=\"https://blog.trailofbits.com/2026/04/07/what-we-learned-about-tee-security-from-auditing-whatsapps-private-inference/\">What we learned about TEE security from auditing WhatsApp&#x27;s Private Inference</a> · Trail of Bits · 7 Apr 2026</li><li id=\"source-8\"><a href=\"https://security.apple.com/blog/private-cloud-compute/\">Private Cloud Compute: A new frontier for AI privacy in the cloud</a> · Apple Security Research · 10 Jun 2024</li><li id=\"source-9\"><a href=\"https://ddropattack.eu/\">DDRop: Active Memory Interposer Attacks on Confidential VMs by Dropping DDR5 Writes</a> · DDRop researchers (KU Leuven, ETH Zurich, Durham University, Google) · 14 Sep 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Research (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Confidential computing & attestation"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/evaluating-a-verifiable-inference-claim/",
   "url": "https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/",
   "title": "Checklist: evaluating a verifiable inference claim",
   "summary": "Ten checks to run when a provider or protocol says its model outputs can be verified. Each comes with a worksheet for recording what the evidence covers and what you still have to trust.",
   "content_html": "<p>A provider's statement that its model outputs are verifiable is only as useful as the specific claim behind it, because the mechanisms grouped under verifiable inference check different things. A zero-knowledge proof reveals nothing beyond the statement it establishes. Such a proof can show that an output is consistent with weights the provider has committed to.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-1\" class=\"cite-link\">1</a>]</sup> A sampled audit checks only some requests and is designed to detect large-scale cheating with high probability.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-6\" class=\"cite-link\">6</a>]</sup> This checklist turns a general claim into ten questions, each with a worksheet.</p>\n<h2 id=\"when-to-use-this-checklist\">When to use this checklist</h2>\n<p>Use it before you rely on a provider's or protocol's claim that its outputs are verifiable. For example, you might rely on the claim when you pay for a particular model or let an agent act on the outputs. Gather the written claim with the paper or specification behind it, the verification tools, and your own requirements, including what a single wrong output would cost you.</p>\n<h2 id=\"1-write-down-exactly-what-is-claimed\">1. Write down exactly what is claimed</h2>\n<p>Write the claim out in full, naming the model, input, output, decoding settings (which control how each token is chosen) and time of the run. Each mechanism covers only some of these. zkLLM's zero-knowledge proofs show that a returned result is correct for the prompt and for a confidential model the provider has committed to.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-1\" class=\"cite-link\">1</a>]</sup> Gong, Liu and Li argue that such proofs do not bind the computational effort spent. In their Hollow-LLM attack, a provider keeps the declared architecture and parameter count but uses weights that reduce the work to that of a much smaller model. The proofs still verify.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-3\" class=\"cite-link\">3</a>]</sup> TOPLOC checks hashes of the model's internal activations. Its authors note that it cannot detect speculative decoding, in which a cheaper model generates the tokens. In their tests, though, it caught every change of model, prompt or numerical precision.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-4\" class=\"cite-link\">4</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-1\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-1\">Write the claim as one sentence naming the model, input, output, decoding settings and time</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-2\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-2\">Mark which parts the evidence covers and which the provider only asserts</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-3\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-3\">Check whether \"the model\" means a named release or only weights the provider committed to</label></li></ul>\n<h2 id=\"2-identify-the-mechanism\">2. Identify the mechanism</h2>\n<p>Name the mechanism the claim relies on. Each family of mechanisms rests on different evidence and assumptions.</p>\n<div class=\"table-wrap\"><table><thead><tr><th scope=\"col\">Mechanism</th><th scope=\"col\">Example</th><th scope=\"col\">A passing check shows</th><th scope=\"col\">Main assumption</th></tr></thead><tbody><tr><td>Zero-knowledge proof</td><td>zkLLM, DeepProve<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-2\" class=\"cite-link\">2</a>]</sup></td><td>The output matches the public architecture run on committed weights<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-3\" class=\"cite-link\">3</a>]</sup></td><td>The commitment identifies the intended weights</td></tr><tr><td>Hardware attestation</td><td>Serving in a trusted execution environment (TEE)<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-7\" class=\"cite-link\">7</a>, <a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-9\" class=\"cite-link\">9</a>]</sup></td><td>Which software genuine hardware loaded</td><td>The hardware vendor and the measured software</td></tr><tr><td>Activation fingerprint</td><td>TOPLOC<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-4\" class=\"cite-link\">4</a>]</sup></td><td>Recomputed activations match the provider's hashes within set thresholds</td><td>A validator able to rerun the model</td></tr><tr><td>Refereed delegation</td><td>Verde<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-5\" class=\"cite-link\">5</a>]</sup></td><td>The correct result, if at least one provider is honest</td><td>Operators in the model's computation give bit-identical results across hardware</td></tr><tr><td>Optimistic re-execution</td><td>EigenAI<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-8\" class=\"cite-link\">8</a>]</sup></td><td>Nobody challenged within the dispute window, or re-execution matched</td><td>Someone challenges; verifiers use identical hardware</td></tr><tr><td>Sampled audit</td><td>IMMACULATE<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-6\" class=\"cite-link\">6</a>]</sup></td><td>Audited requests were consistent with the claimed model</td><td>Audit requests are indistinguishable from normal ones</td></tr></tbody></table></div>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-4\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-4\">Name the mechanism and the document that specifies it</label></li></ul>\n<h2 id=\"3-find-out-who-can-run-the-verification\">3. Find out who can run the verification</h2>\n<p>Find out what data and hardware the verifier needs, because these decide whether you, or someone you trust, can run it. Zero-knowledge proofs promise public verifiability,<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-3\" class=\"cite-link\">3</a>]</sup> and DeepProve reports verification times of 1 to 3.7 seconds.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-2\" class=\"cite-link\">2</a>]</sup> TOPLOC's validator reruns the model over the generated tokens to recompute activations,<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-4\" class=\"cite-link\">4</a>]</sup> so it needs the weights and suitable hardware. EigenAI requires verifiers to use the same graphics processing unit (GPU) models as the operators who run inference, because A100 and H100 GPUs produce different results for identical operations.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-8\" class=\"cite-link\">8</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-5\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-5\">Find out whether you can verify yourself or must rely on the provider, a committee or an auditor</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-6\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-6\">Confirm that the verifier code is published and that you can run it</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-7\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-7\">Note the weights, hardware or data the verifier needs</label></li></ul>\n<h2 id=\"4-list-what-you-still-have-to-trust\">4. List what you still have to trust</h2>\n<p>List each party or component whose failure would let a wrong output pass. Every mechanism leaves at least one, and the table's last column names the main one. Outside testing does not remove that dependence. Cai and colleagues conclude that tests run without the provider's cooperation cannot reliably detect model substitution. Statistical tests on text outputs need many queries and miss subtle substitutions, and tests on log probabilities fail because production inference is nondeterministic.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-7\" class=\"cite-link\">7</a>]</sup> Cai and colleagues propose TEEs instead. A TEE moves trust to the hardware vendor and the measured software. Our guide to <a href=\"https://verifiable.pro/articles/how-to-read-a-remote-attestation-report/\">reading a remote attestation report</a> covers those checks.</p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-8\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-8\">List each party or component whose failure would let a wrong output pass</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-9\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-9\">Mark which assumptions the provider states and which you inferred, and decide whether each is acceptable</label></li></ul>\n<h2 id=\"5-check-whether-every-output-is-covered\">5. Check whether every output is covered</h2>\n<p>Find out whether the scheme checks each output, a sample or only disputed results. An IMMACULATE auditor sends a small number of random requests that look like normal traffic. The auditor then asks the provider to prove how it served them. The authors reason that cheating pays only if a provider deviates on a non-negligible share of requests. So, they argue, such sampling detects large-scale deviations with overwhelming probability.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-6\" class=\"cite-link\">6</a>]</sup> Under EigenAI's optimistic design, results stand unless someone challenges them during a dispute window.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-8\" class=\"cite-link\">8</a>]</sup> Both designs target systematic cheating. Neither guarantees that a particular output you received was checked.</p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-10\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-10\">State whether every output, a random sample or only challenged outputs are checked</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-11\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-11\">For sampling, find the audit rate and whether audit requests are indistinguishable from normal ones</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-12\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-12\">Decide whether a single unchecked output could cause harm in your use</label></li></ul>\n<h2 id=\"6-check-how-the-evidence-is-bound-to-your-request\">6. Check how the evidence is bound to your request</h2>\n<p>Check that the evidence refers to your request, so that it cannot be reused for another. It must also capture every input that determines the output. EigenAI describes its output as a pure function of the model, prompt, seed and decoding settings, that is, as depending only on these four inputs. So all four must be recorded for a re-execution to match.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-8\" class=\"cite-link\">8</a>]</sup> Session binding matters too. Attestation reports in WhatsApp's TEE-based system originally carried no client-supplied value, so they could have been replayed. Meta's fix ties each report to one Transport Layer Security (TLS) connection.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-9\" class=\"cite-link\">9</a>]</sup> Keep the evidence with the record of any action an agent takes on the output. You can then trace that action to a verified result.</p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-13\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-13\">The evidence identifies your input, the output and the decoding settings, directly or by hash</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-14\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-14\">It is tied to your request, session or nonce, so it cannot be replayed for another request</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-15\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-15\">You can store it with the output and with any action taken on it</label></li></ul>\n<h2 id=\"7-check-how-the-model-is-committed\">7. Check how the model is committed</h2>\n<p>Check the model commitment, a published cryptographic fingerprint of the weights that later proofs refer to. In zkLLM, the provider spends up to 20 minutes committing to a model and publishes a commitment of about 10 MB.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-1\" class=\"cite-link\">1</a>]</sup> A commitment fixes a set of weights without saying which weights they are. Unless the provider links it to a release you can inspect or evaluate, a proof shows only consistency with some fixed weights. The Hollow-LLM results show that weights fitting a large declared architecture can do a much smaller model's work.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-16\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-16\">Find the published commitment and the date it was published</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-17\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-17\">Check how it links to weights you can identify, such as an open release or an evaluated model</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-18\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-18\">Ask how you would learn that the commitment had changed</label></li></ul>\n<h2 id=\"8-find-out-what-happens-when-a-check-fails\">8. Find out what happens when a check fails</h2>\n<p>Find out what consequence a failed check has. Without a defined consequence, detecting an error changes nothing. In EigenAI, a mismatch found on re-execution leads to slashing, which takes funds from the operator's stake.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-8\" class=\"cite-link\">8</a>]</sup> In Verde, a dispute narrows to a single operator in the model's computation. The referee re-executes that operator to find which provider was wrong.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-5\" class=\"cite-link\">5</a>]</sup> With proofs and attestations, your own client decides the consequence, so confirm that it rejects an output that fails.</p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-19\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-19\">Find the documented consequence of a failed check, such as rejection, refund, penalty or public disclosure</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-20\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-20\">Check who is notified and whether failures are published</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-21\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-21\">Decide what your system does with an output that fails or skips verification</label></li></ul>\n<h2 id=\"9-weigh-cost-and-latency\">9. Weigh cost and latency</h2>\n<p>Record what verification costs, because cost decides how much traffic a provider can afford to verify. zkLLM reports proving one inference of a 13-billion-parameter model in under 15 minutes.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-1\" class=\"cite-link\">1</a>]</sup> DeepProve reports about 174 proven tokens per minute for GPT-2 and 86 for Gemma 3.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-2\" class=\"cite-link\">2</a>]</sup> IMMACULATE limits its verifiable computation to audited requests and reports under 1% throughput overhead.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-6\" class=\"cite-link\">6</a>]</sup> EigenAI reports under 2% overhead in its own tests.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-8\" class=\"cite-link\">8</a>]</sup> Verde runs each task on at least two providers, so total cost at least doubles. Its reproducible operators also carry overhead relative to PyTorch: on A100 GPUs, the authors report 58% for Llama inference at 1 billion parameters and 98% at 8 billion.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-5\" class=\"cite-link\">5</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-22\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-22\">Record the proving and verification cost per output, and who pays it</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-23\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-23\">Check whether the figures come from the provider or from independent measurement</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-24\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-24\">Confirm that the cost fits the coverage claimed under question 5</label></li></ul>\n<h2 id=\"10-look-for-independent-review\">10. Look for independent review</h2>\n<p>Look for outside review of both the mechanism and its deployment. zkLLM was accepted to the ACM Conference on Computer and Communications Security (CCS) in 2024; DeepProve's ePrint entry lists a minor revision for CCS 2026.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-2\" class=\"cite-link\">2</a>]</sup> Academic analysis can also expose a gap in a whole class of claims, as the Hollow-LLM paper argues for zero-knowledge inference.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-3\" class=\"cite-link\">3</a>]</sup> Deployments need their own review. Trail of Bits' pre-launch audit of WhatsApp's TEE-based system found 28 issues, eight of them rated high severity.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-9\" class=\"cite-link\">9</a>]</sup> Treat figures that only the provider has measured, such as EigenAI's reproducibility results, as claims until others reproduce them.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-8\" class=\"cite-link\">8</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-25\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-25\">Find external reviews of the mechanism and of the specific deployment</label></li><li class=\"task\"><input type=\"checkbox\" id=\"evaluating-a-verifiable-inference-claim-en-check-26\"><label for=\"evaluating-a-verifiable-inference-claim-en-check-26\">Check whether known attacks on the mechanism are addressed</label></li></ul>\n<h2 id=\"a-worked-example\">A worked example</h2>\n<aside class=\"callout callout-example\"><p class=\"callout-label\">Worked example (hypothetical): two invented claims</p><div class=\"callout-body\"><p>A research team wants to pay only for the model it requests. Provider A says every response comes with a zero-knowledge proof that its 70-billion-parameter model generated it. Provider B says all outputs are verifiable because inference is deterministic, outputs are published and anyone can challenge a result within 24 hours. The team's answers:</p>\n<div class=\"table-wrap\"><table><thead><tr><th scope=\"col\">Question</th><th scope=\"col\">Provider A</th><th scope=\"col\">Provider B</th></tr></thead><tbody><tr><td>What is claimed</td><td>Output consistent with committed weights</td><td>Output reproducible from model, prompt, seed and settings</td></tr><tr><td>Coverage</td><td>Every response</td><td>Only challenged responses</td></tr><tr><td>Who verifies</td><td>Anyone with the verifier</td><td>Challengers with identical GPUs</td></tr><tr><td>Model commitment</td><td>Published, with no documented link to a named release</td><td>Model named, no commitment published</td></tr><tr><td>On failure</td><td>Client rejects the response</td><td>Operator's stake is slashed</td></tr><tr><td>Cost</td><td>Proof latency not stated</td><td>Challengers bear re-execution costs</td></tr></tbody></table></div>\n<p>Neither claim settles the team's question. A's proofs cannot show that the committed weights are the advertised model. The Hollow-LLM work makes this gap concrete.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/evaluating-a-verifiable-inference-claim/#source-3\" class=\"cite-link\">3</a>]</sup> B would catch a substituted model only if someone challenges, so the team would need its own challenger for a sample of outputs. The team asks A to link its commitment to published, evaluated weights, and asks B how often results are challenged.</p></div></aside>\n<aside class=\"callout callout-limits\"><p class=\"callout-label\">What this checklist does not establish</p><div class=\"callout-body\"><ul><li>Complete answers show what a claim covers. They do not show that the mechanism is implemented correctly; that requires review of the deployed code and configuration.</li><li>Verification checks a computation against a specification, such as committed weights and decoding settings. It does not show that the output is accurate, safe or fit for your task.</li><li>Sampled and optimistic schemes are designed to catch systematic deviation, so a single altered response can go unchecked.</li></ul></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://arxiv.org/abs/2404.16109\">zkLLM: Zero Knowledge Proofs for Large Language Models</a> · arXiv (Sun, Li and Zhang; ACM CCS 2024) · 24 Apr 2024</li><li id=\"source-2\"><a href=\"https://eprint.iacr.org/2026/1112\">DeepProve: Verifiable End-to-End Large Language Model Inference</a> · IACR Cryptology ePrint Archive (Gailly et al.) · 30 May 2026</li><li id=\"source-3\"><a href=\"https://arxiv.org/abs/2607.28884\">Hollow-LLM Attack: Computationally Trivial Weights in Zero-Knowledge Verification of LLM Inference</a> · arXiv (Gong, Liu and Li; IEEE S&amp;P 2026) · 30 Jul 2026</li><li id=\"source-4\"><a href=\"https://arxiv.org/abs/2501.16007v2\">TOPLOC: A Locality Sensitive Hashing Scheme for Trustless Verifiable Inference</a> · arXiv (Ong et al.; ICML 2025) · 30 May 2025</li><li id=\"source-5\"><a href=\"https://arxiv.org/abs/2502.19405\">Verde: Verification via Refereed Delegation for Machine Learning Programs</a> · arXiv (Arun et al.) · 26 Feb 2025</li><li id=\"source-6\"><a href=\"https://arxiv.org/abs/2602.22700\">IMMACULATE: A Practical LLM Auditing Framework via Verifiable Computation</a> · arXiv (Guo et al.) · 26 Feb 2026</li><li id=\"source-7\"><a href=\"https://arxiv.org/abs/2504.04715v2\">Are You Getting What You Pay For? Auditing Model Substitution in LLM APIs</a> · arXiv (Cai, Shi, Zhao and Song) · 29 Sep 2025</li><li id=\"source-8\"><a href=\"https://www.eigenlabs.org/blog/deterministic-ai-inference-eigenai/\">Deterministic Inference Is Here: How EigenAI Makes Every AI Output Verifiable</a> · EigenCloud · 23 Jan 2026</li><li id=\"source-9\"><a href=\"https://blog.trailofbits.com/2026/04/07/what-we-learned-about-tee-security-from-auditing-whatsapps-private-inference/\">What we learned about TEE security from auditing WhatsApp&#x27;s Private Inference</a> · Trail of Bits · 7 Apr 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Research (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Verifiable inference & computation",
    "Agent identity & accountability"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/check-a-content-credential/",
   "url": "https://verifiable.pro/articles/check-a-content-credential/",
   "title": "How to check a Content Credential, and what it does not show",
   "summary": "Before you publish or cite an image or video, use this six-step worksheet to decide what its C2PA manifest establishes: who signed which claims, and which bytes those claims cover.",
   "content_html": "<p>A Content Credential that validates shows which certificate holder signed a set of claims about a file, and which of the file's bytes those claims cover. The person relying on the claims still has to judge whether they are true.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> Content Credentials are manifests specified by the Coalition for Content Provenance and Authenticity (C2PA). A manifest lists statements about an asset, called assertions, in a claim that the signer signs.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> Run the six checks below before you rely on a credential to publish, cite or label an image or video.</p>\n<h2 id=\"what-you-need\">What you need</h2>\n<ul><li><strong>A validator</strong>, such as c2patool, an open-source command-line tool documented by the Content Authenticity Initiative (CAI).<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-2\" class=\"cite-link\">2</a>]</sup> The CAI's documentation says the Verify tool at verify.contentauthenticity.org checks signers against a legacy interim trust list instead of the C2PA trust lists.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-3\" class=\"cite-link\">3</a>]</sup></li><li><strong>The file</strong> as you received it, with any separate <code>.c2pa</code> manifest file, which c2patool reads with <code>--external-manifest</code>.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-2\" class=\"cite-link\">2</a>]</sup> A re-encoded or resized copy cannot match the manifest's hard binding, which is a cryptographic hash of the original asset's bytes.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></li><li><strong>The C2PA trust lists.</strong> One names the certification authorities (CAs) that issue signing certificates to conforming products. The other names the CAs that issue certificates to time-stamping authorities (TSAs). Both are in the C2PA's conformance-public repository on GitHub.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-3\" class=\"cite-link\">3</a>]</sup></li></ul>\n<h2 id=\"step-1-confirm-that-a-manifest-is-present-and-validates\">Step 1: Confirm that a manifest is present and validates</h2>\n<p>The specification defines three manifest states, each requiring the one before:<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<div class=\"table-wrap\"><table><thead><tr><th scope=\"col\">State</th><th scope=\"col\">What validation has confirmed</th></tr></thead><tbody><tr><td>Well-formed</td><td>The manifest and its assertions meet the specification's requirements</td></tr><tr><td>Valid</td><td>The signature verifies; the certificate was within its validity period and is not reported as revoked</td></tr><tr><td>Trusted</td><td>The certificate also chains to a trust anchor, a CA certificate that the validator accepts; or the user has added it to the validator's private credential store</td></tr></tbody></table></div>\n<p>The asset is valid only if the hashed bytes are also unchanged. If the manifest is valid, you can attribute its claim to the claim generator: the hardware or software named in <code>claim_generator_info</code>.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> In c2patool, <code>--info</code> reports whether the manifest validated, and the plain command prints the manifest data.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<pre class=\"code\"><code class=\"language-bash\">c2patool image.jpg --info\nc2patool image.jpg</code></pre>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-1\"><label for=\"check-a-content-credential-en-check-1\">The claim signature validates (<code>claimSignature.validated</code>)</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-2\"><label for=\"check-a-content-credential-en-check-2\">The hard binding matches the file, for example <code>assertion.dataHash.match</code></label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-3\"><label for=\"check-a-content-credential-en-check-3\">Record the claim generator and any failure codes</label></li></ul>\n<h2 id=\"step-2-identify-the-signer-and-check-it-against-the-c2pa-trust-list\">Step 2: Identify the signer and check it against the C2PA trust list</h2>\n<p>Find the signer: the holder of the signing certificate, identified by its subject.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> In the C2PA conformance program, the signer is always an instance of a generator product, a system that produces assets with manifests. CAs on the C2PA trust list may issue signing certificates only to conforming products.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-4\" class=\"cite-link\">4</a>]</sup> Each certificate names the product and records an assurance level, currently 1 or 2, reflecting the security requirements the product met.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-4\" class=\"cite-link\">4</a>]</sup> A credential trusted against this list therefore names a product, such as a camera app.</p>\n<p>The <code>--certs</code> option prints the certificate chain, and the <code>trust</code> subcommand checks it against the list passed with <code>--trust_anchors</code>.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-2\" class=\"cite-link\">2</a>]</sup> If the chain reaches no accepted trust anchor, the validator reports <code>signingCredential.untrusted</code>.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<pre class=\"code\"><code class=\"language-bash\">c2patool image.jpg --certs\nc2patool image.jpg trust --trust_anchors=&#x27;https://raw.githubusercontent.com/c2pa-org/conformance-public/refs/heads/main/trust-list/C2PA-TRUST-LIST.pem&#x27;</code></pre>\n<p>Both the program and conforming validators have documented gaps. An April 2026 security analysis led by researchers at the University of Maryland, Baltimore County (UMBC) says version 0.1 of the program certified products without technical review.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-6\" class=\"cite-link\">6</a>]</sup> Version 0.2 has been the only version accepting applicants since 9 October 2026. It requires sample output files and a second approver for each record.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-4\" class=\"cite-link\">4</a>]</sup> The UMBC-led authors also found two conforming validators that did not report Nikon's November 2025 revocation of a camera's certificate.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-7\" class=\"cite-link\">7</a>]</sup> The specification says online validators should attempt a revocation check.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-4\"><label for=\"check-a-content-credential-en-check-4\">Record the certificate's subject, issuer, validity dates and assurance level</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-5\"><label for=\"check-a-content-credential-en-check-5\">Check the chain against the C2PA trust list, and note when you fetched the list</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-6\"><label for=\"check-a-content-credential-en-check-6\">Record whether the validator checked revocation</label></li></ul>\n<h2 id=\"step-3-separate-what-the-signer-asserts-from-other-data\">Step 3: Separate what the signer asserts from other data</h2>\n<p>Sort what the validator displays, because only part of it is attributed to the signer. Created assertions are attributed to the signer. Gathered assertions come from other parts of the workflow, such as a person typing in details. They are signed as part of the claim but are not attributed to the signer.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> Metadata outside the manifest, such as Exchangeable Image File Format (EXIF) fields, is not attributed to the signer even when hashed. The exception is metadata copied into a <code>c2pa.metadata</code> assertion among the created assertions.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>The actions assertion declares what was done to the asset. For a new asset, the first action is <code>c2pa.created</code>, with a digital source type such as <code>trainedAlgorithmicMedia</code> for output from a generative AI model. For an edited asset, the first action is <code>c2pa.opened</code>, with an ingredient assertion that describes the original.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> Version 2.4 of the specification adds a <code>c2pa.ai-disclosure</code> assertion for details such as the type of model.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> Unless <code>allActionsIncluded</code> is true, other actions may have gone unrecorded.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-7\"><label for=\"check-a-content-credential-en-check-7\">List the created assertions, with each action and its digital source type</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-8\"><label for=\"check-a-content-credential-en-check-8\">List gathered assertions separately as unattributed</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-9\"><label for=\"check-a-content-credential-en-check-9\">Mark displayed metadata outside the manifest, such as location, as unsigned</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-10\"><label for=\"check-a-content-credential-en-check-10\">Record the validation result of each ingredient's manifest</label></li></ul>\n<h2 id=\"step-4-find-the-bytes-the-hash-leaves-out\">Step 4: Find the bytes the hash leaves out</h2>\n<p>A hash match protects only the bytes it covers, so list the exclusion ranges: the byte ranges that the hash leaves out. One range holds the manifest, and the specification allows others only for asset metadata. The claim generator must ensure that whatever an attacker writes there cannot materially change how the asset is interpreted.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> Validators must reject a manifest if the range holding it contains other data. They must flag extra ranges with an informational code such as <code>assertion.dataHash.additionalExclusionsPresent</code>.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>The UMBC-led authors report that a Pixel 10 Pro stored location data in an exclusion range. They also report that a conforming validator did not detect their change to that data.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-7\" class=\"cite-link\">7</a>]</sup> On 2 October 2026, security researcher David Buchanan published an image with a single exclusion range that spanned the whole file. He said the image's signature was valid but protected none of the file, and that no verification tool he could find flagged it. He showed the range with c2patool's detailed report.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-5\" class=\"cite-link\">5</a>]</sup></p>\n<pre class=\"code\"><code class=\"language-bash\">c2patool image.jpg -d</code></pre>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-11\"><label for=\"check-a-content-credential-en-check-11\">List the exclusion ranges in the hard-binding assertion (<code>c2pa.hash.data</code>, <code>c2pa.hash.boxes</code> or <code>c2pa.hash.bmff.v3</code>)</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-12\"><label for=\"check-a-content-credential-en-check-12\">Compare each range with the file size; a whole-file range protects nothing</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-13\"><label for=\"check-a-content-credential-en-check-13\">Identify what each extra range holds, and treat it as unprotected</label></li></ul>\n<h2 id=\"step-5-check-the-time-stamp-against-the-tsa-trust-list\">Step 5: Check the time-stamp against the TSA trust list</h2>\n<p>Look for a TSA time-stamp, the only source of a trusted time for a manifest. The TSA countersigns the claim signature, which shows that the signature existed at the attested time. Times written by the claim generator, such as an action's <code>when</code> field, are untrusted.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> The validator must chain the TSA's certificate to its TSA trust anchors, which include the C2PA TSA trust list. If it cannot, it reports <code>timeStamp.untrusted</code> and ignores the time-stamp.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>With a trusted time-stamp, the validator judges the certificate's validity at the attested time. The credential therefore still validates if the certificate expires or is revoked after that time.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-3\" class=\"cite-link\">3</a>]</sup> Without one, an unchanged file stops validating once the certificate expires.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-7\" class=\"cite-link\">7</a>]</sup></p>\n<p>Even a trusted time-stamp dates only the signature. Buchanan says he edited the winning numbers into his image after a lottery draw. According to him, its trusted time-stamp from hours before the draw remained valid, because the signature covered none of the image.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-5\" class=\"cite-link\">5</a>]</sup> The UMBC-led authors add that nothing in the signed data refers to the time-stamp, so it can be removed and replaced without detection.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-7\" class=\"cite-link\">7</a>]</sup></p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-14\"><label for=\"check-a-content-credential-en-check-14\">Confirm <code>timeStamp.trusted</code> and record the attested time</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-15\"><label for=\"check-a-content-credential-en-check-15\">Check that the validator's TSA trust anchors include the C2PA TSA trust list</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-16\"><label for=\"check-a-content-credential-en-check-16\">Without a trusted time-stamp, record the certificate's expiry date</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-17\"><label for=\"check-a-content-credential-en-check-17\">Read the attested time as the time by which the signature existed</label></li></ul>\n<h2 id=\"step-6-if-the-credential-is-missing-look-for-soft-bindings-and-watermarks\">Step 6: If the credential is missing, look for soft bindings and watermarks</h2>\n<p>Do not treat a missing manifest as evidence about a file's origin, because metadata can be removed deliberately or accidentally.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-9\" class=\"cite-link\">9</a>]</sup> Soft bindings can lead back to the manifest. A soft binding is an identifier computed from the content, such as a fingerprint, or embedded in the content as an invisible watermark. It can therefore match a copy whose bytes differ.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>If the original manifest recorded a soft binding and a copy is stored in a manifest repository, the binding can locate that copy. The matcher must then confirm that every soft binding in the recovered manifest matches those used in the search.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup> The CAI adds a fingerprint check that the content matches the recovered manifest. It notes that watermarks can be removed or spoofed, and that fingerprint matches are never certain.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-9\" class=\"cite-link\">9</a>]</sup></p>\n<p>A watermark detector covers only generators that embed its watermark. Google opened its SynthID Detector to everyone on 7 October 2026. Google says the detector checks whether an image, video or audio file was made with AI from Google or from partners including OpenAI, NVIDIA and Kakao.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-10\" class=\"cite-link\">10</a>]</sup> A negative result therefore says nothing about other generators, as our <a href=\"https://verifiable.pro/articles/google-synthid-detector-public/\">brief on the detector</a> notes.</p>\n<ul class=\"checklist\"><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-18\"><label for=\"check-a-content-credential-en-check-18\">Ask the source for the original file, and validate any recovered manifest with Steps 1 to 5</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-19\"><label for=\"check-a-content-credential-en-check-19\">Record each detector result with the detector's stated coverage</label></li><li class=\"task\"><input type=\"checkbox\" id=\"check-a-content-credential-en-check-20\"><label for=\"check-a-content-credential-en-check-20\">Do not read a missing credential or a negative detector result as evidence either way</label></li></ul>\n<h2 id=\"a-worked-example\">A worked example</h2>\n<aside class=\"callout callout-example\"><p class=\"callout-label\">Worked example (hypothetical): a photo of a flooded street</p><div class=\"callout-body\"><p>A newsroom receives a reader's photo said to show a flooded street that morning. An editor checks it with c2patool and the C2PA trust list:</p>\n<pre class=\"code\"><code class=\"language-text\">SIMPLIFIED SUMMARY. Names and values are invented.\n\nSigner          ExampleCam 6.1; issuing CA on the C2PA trust list\nFirst action    c2pa.created, digitalCapture\nHard binding    c2pa.hash.data, two exclusion ranges\nSuccess         claimSignature.validated, signingCredential.trusted,\n                timeStamp.trusted (08:12), assertion.dataHash.match\nInformational   assertion.dataHash.additionalExclusionsPresent</code></pre>\n<p>The hashed bytes are unchanged. The signer is the camera app, and its certificate says nothing about who held the phone. The second exclusion range covers the EXIF block. So the location and capture time shown in the newsroom's software are neither hashed nor attributed to the signer.</p>\n<p>The credential supports one statement: an instance of ExampleCam signed a capture claim for these pixels by 08:12. Before publishing, the newsroom checks the location with the reader and against independent images of the street.</p></div></aside>\n<aside class=\"callout callout-limits\"><p class=\"callout-label\">What a valid credential does not establish</p><div class=\"callout-body\"><ul><li>The specification's trust model covers the signer's identity and leaves the truth of the signed claims to the person relying on them.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-1\" class=\"cite-link\">1</a>]</sup></li><li>A signer with a valid certificate can sign false claims. In August 2026, Buchanan reported using root access to a Pixel phone to have the Pixel Camera app's hardware-protected keys sign an AI-generated image as an unedited photograph.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-8\" class=\"cite-link\">8</a>]</sup></li><li>The UMBC-led authors found that conforming validators can disagree about the same file, so record which validator and trust lists you used.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/check-a-content-credential/#source-7\" class=\"cite-link\">7</a>]</sup></li></ul></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html\">Content Credentials: C2PA Technical Specification, Version 2.4</a> · C2PA · 1 Apr 2026</li><li id=\"source-2\"><a href=\"https://opensource.contentauthenticity.org/docs/sdk-repos/c2patool/docs/usage/\">Using C2PA Tool</a> · Content Authenticity Initiative · accessed 20 Oct 2026</li><li id=\"source-3\"><a href=\"https://opensource.contentauthenticity.org/docs/conformance/trust-lists\">Trust lists</a> · Content Authenticity Initiative · accessed 20 Oct 2026</li><li id=\"source-4\"><a href=\"https://github.com/c2pa-org/conformance-public/blob/main/docs/v0.2/C2PA%20Conformance%20Program.md\">C2PA Conformance Program, Version 0.2</a> · C2PA · 31 Jul 2026</li><li id=\"source-5\"><a href=\"https://www.da.vidbuchanan.co.uk/blog/hacking-time.html\">How to Hack Time, With C2PA</a> · David Buchanan · 2 Oct 2026</li><li id=\"source-6\"><a href=\"https://eprint.iacr.org/2026/804\">Verifying Provenance of Digital Media: Security Analysis of C2PA and its Implementation</a> · IACR Cryptology ePrint Archive (Golaszewski et al.) · 23 Apr 2026</li><li id=\"source-7\"><a href=\"https://arxiv.org/abs/2604.24890\">Verifying Provenance of Digital Media: Why the C2PA Specifications Fall Short</a> · arXiv (Golaszewski et al.) · 27 Apr 2026</li><li id=\"source-8\"><a href=\"https://www.da.vidbuchanan.co.uk/blog/android-c2pa.html\">C2PA Cameras Do Not Survive Contact With Reality</a> · David Buchanan · 25 Aug 2026</li><li id=\"source-9\"><a href=\"https://contentauthenticity.org/blog/durable-content-credentials\">Durable Content Credentials</a> · Content Authenticity Initiative · 8 Apr 2024</li><li id=\"source-10\"><a href=\"https://blog.google/innovation-and-ai/models-and-research/google-deepmind/synth-id-ai-content/\">Google expands SynthID Detector for AI content</a> · Google · 7 Oct 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Research (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Content provenance & watermarking"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/nist-nsa-cisa-agent-incident-practices/",
   "url": "https://verifiable.pro/articles/nist-nsa-cisa-agent-incident-practices/",
   "title": "NIST, NSA and CISA Publish Incident Practices That Call for Tamper-Resistant Agent Logs",
   "summary": "Three U.S. agencies published ten voluntary practices on 16 October 2026 for incidents in which agents take significant uninstructed actions during training and evaluation. Several concern evidence that others could check later, including tamper-resistant logs, preserved model weights and outside audits of control systems.",
   "content_html": "<p>Three U.S. agencies published ten voluntary key practices on 16 October 2026 for managing incidents during the training and evaluation of super intelligence (SI) agents. The publishers are the Center for Advancing Innovation and Standards for Super Intelligence (CAISSI) at the National Institute of Standards and Technology (NIST), the National Security Agency's Super Intelligence Security Center (NSA SISC) and the Cybersecurity and Infrastructure Security Agency (CISA).<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/nist-nsa-cisa-agent-incident-practices/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/nist-nsa-cisa-agent-incident-practices/#source-2\" class=\"cite-link\">2</a>]</sup> NIST's CAISSI web page also lists work published by NIST's Center for AI Standards and Innovation (CAISI).<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/nist-nsa-cisa-agent-incident-practices/#source-4\" class=\"cite-link\">4</a>]</sup></p>\n<p>The document defines SI agents as systems that interact with an environment and autonomously execute actions toward a specified goal. It says such a system is typically a generative model with scaffolding software that gives it tools. The document focuses on the SI control incident. In such an incident, agents take significant uninstructed actions that compromise policies, controls or security measures set by the operator to define the task or ensure human oversight. Actions caused by adversarial prompt injection, in which an attacker plants instructions in an agent's input, count as instructed. So do actions caused by a deliberately backdoored model. The practices are grouped into five stages, from preparation to reporting.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/nist-nsa-cisa-agent-incident-practices/#source-2\" class=\"cite-link\">2</a>]</sup> CISA says the document is aimed especially at pre-deployment agents with reduced safeguards.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/nist-nsa-cisa-agent-incident-practices/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<p>Several practices concern evidence for later review. Practice 5.3 calls for tamper-resistant logs with reliable timestamps, detailed enough to reconstruct agent trajectories, tool calls, reasoning traces and security-control decisions. Practice 3.3 says agents should be unable to access or interfere with monitoring processes and logs. Practice 5.1 asks organizations to preserve model weights and environments as needed to investigate an incident.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/nist-nsa-cisa-agent-incident-practices/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>Under practice 2.4, organizations should partner with independent external auditors and evaluators to verify that control and monitoring systems work as intended. Practice 10.2 calls for giving third parties enough access for independent analysis.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/nist-nsa-cisa-agent-incident-practices/#source-2\" class=\"cite-link\">2</a>]</sup> Practice 2.5 suggests publishing evaluation and agent identifiers to help defenders understand unexpected traffic. But the authors note that publishing Internet Protocol (IP) address ranges could expose deployers to attack.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/nist-nsa-cisa-agent-incident-practices/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>The practices treat records of agent activity as evidence that must hold up after an incident. Such evidence is a precondition for anyone outside a lab to establish what an agent did. The practices do not specify how logs are made tamper-resistant or who holds them. So whether a lab follows the practices can be checked mainly through the independent audits and third-party access the document recommends. Because they are voluntary, the practices oblige no developer or deployer to keep such records.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we read NIST's announcement, the joint publication (PP-26-4396, version 1.0), CISA's page for it and NIST's CAISSI page. None of these sources explains how the CAISSI and CAISI names relate. We did not check whether any organization follows these practices, and we test no systems ourselves.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://www.nist.gov/news-events/news/2026/10/key-practices-incident-readiness-and-response-super-intelligence-training\">Key Practices for Incident Readiness and Response in Super Intelligence Training and Evaluation</a> · NIST · 16 Oct 2026</li><li id=\"source-2\"><a href=\"https://www.nist.gov/system/files/documents/2026/10/16/Key_Practices_for_Incident_Readiness_and_Response_in_Super_Intelligence%20_Training_and_Evaluation.pdf\">Key Practices for Incident Readiness and Response in Super Intelligence Training and Evaluation (PP-26-4396, version 1.0)</a> · NIST CAISSI, NSA SISC and CISA · 16 Oct 2026</li><li id=\"source-3\"><a href=\"https://www.cisa.gov/resources-tools/resources/key-practices-incident-readiness-and-response-super-intelligence-training-and-evaluation\">Key Practices for Incident Readiness and Response in Super Intelligence Training and Evaluation</a> · CISA · 16 Oct 2026</li><li id=\"source-4\"><a href=\"https://www.nist.gov/caissi\">Center for Advancing Innovation and Standards for Super Intelligence (CAISSI)</a> · NIST · accessed 20 Oct 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Agent identity & accountability",
    "Verifiable evaluation & audits"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/anthropic-metr-embedded-evaluators/",
   "url": "https://verifiable.pro/articles/anthropic-metr-embedded-evaluators/",
   "title": "Anthropic Says It Has Given Six METR Evaluators Employee-Like Access",
   "summary": "Anthropic said on 15 October 2026 that a six-person METR team now has access comparable to that of its own risk assessment staff and can publish findings without Anthropic's approval, subject to redactions in predefined categories. The terms define how much an outside evaluator can see and say about a developer.",
   "content_html": "<p>Anthropic said on 15 October 2026 that it had begun giving what it calls employee-like access to a team from METR, a nonprofit that evaluates frontier AI models. The post opens by citing Anthropic's September commitment to stronger third-party assessment and its signing of the White House Accord on Super Intelligence. In that accord, companies pledged to partner with independent auditors or evaluators.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/anthropic-metr-embedded-evaluators/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>According to Anthropic, six METR employees have company hardware, office space and access to internal tools and systems roughly on par with those of its own risk assessment teams. Anthropic encourages its staff to share information with them as they would with a colleague. A few defined categories are excluded, such as customer data, attorney-client privileged material and information about model architectures.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/anthropic-metr-embedded-evaluators/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Anthropic says METR will publish its own analysis of Anthropic's risk levels, incidents or practices. It says it cannot veto publication but can require redactions in predefined categories, such as content that reproduces confidential intellectual property. Anthropic decides which information falls into those categories. METR, however, reserves the right to make certain statements about the access and information it received. The team works under enforceable agreements, and other METR staff are kept separate from its work.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/anthropic-metr-embedded-evaluators/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>The post calls this the third of three access tiers. In the first, Anthropic decides what access an evaluator gets and must approve publication. In the second, evaluators receive more information. They can publish without approval and include their views on whether redactions Anthropic required were justified.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/anthropic-metr-embedded-evaluators/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Among Anthropic's other evaluators, SecureBio is reviewing the chemical and biological weapons chapter of Anthropic's August Risk Report.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/anthropic-metr-embedded-evaluators/#source-1\" class=\"cite-link\">1</a>]</sup> On 20 October, METR published a review of the misalignment section of that report. Its authors were engaged before the new arrangement and lacked the access it describes. Their terms let Anthropic veto publication. METR says no redactions were made.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/anthropic-metr-embedded-evaluators/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>If it works as described, the arrangement gives an outside evaluator internal information and a right to publish without approval. The terms behind METR's 20 October review included neither. How far the arrangement goes depends on terms Anthropic controls, because the company decides what falls into the redaction categories and which information is excluded from sharing. METR's own statements about the access it receives would be outsiders' main evidence of how deep that access goes.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we read Anthropic's post and METR's review, published that day. The post's footnotes record revisions on 15 and 16 October to clarify SecureBio's and METR's terms. The page's metadata shows a further, undescribed change on 19 October. We have not seen the agreements between Anthropic and METR and cannot confirm the access they describe.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://www.anthropic.com/news/an-update-on-independent-evaluators\">An update on independent evaluators</a> · Anthropic · 15 Oct 2026</li><li id=\"source-2\"><a href=\"https://metr.org/blog/2026-10-20-misalignment-risk-report-august-2026-review/\">Review of the &quot;Misalignment in high-stakes settings&quot; section in Anthropic&#x27;s Risk Report (August 2026)</a> · METR · 20 Oct 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Verifiable evaluation & audits"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/singapore-agentic-testing-kit-accreditation/",
   "url": "https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/",
   "title": "Singapore Publishes Testing Kit for AI Agents and Accredits Five AI Testing Firms",
   "summary": "On 14 October 2026, Singapore's Infocomm Media Development Authority released a guide to testing agentic AI systems, and the AI Verify Foundation named the first five firms accredited to test AI systems for others. Accreditation gives buyers a reference point for choosing testers, within limits the foundation states.",
   "content_html": "<p>On 14 October 2026 Singapore's Infocomm Media Development Authority (IMDA) released a Starter Kit for Testing Agentic Systems for Safety and Reliability. On the same day, the AI Verify Foundation launched an accreditation program for companies that test AI systems on behalf of others.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-1\" class=\"cite-link\">1</a>]</sup> IMDA also formed a task force on AI-enabled cyber threats to the country's infocomm and media sector.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>The kit starts from the observation that agents act on their environment with limited human involvement, so a malfunction can have real effects.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-2\" class=\"cite-link\">2</a>]</sup> It organizes testing into four steps, from identifying risks such as erroneous or unauthorized actions to continuous monitoring and re-testing.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Because agents take actions over multiple steps, the kit recommends testing an agent's entire trajectory, including its reasoning and actions, in addition to its final output.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-2\" class=\"cite-link\">2</a>]</sup> It asks for logs of the agent's actions, tool calls and state changes, so that its behavior can be reconstructed and assessed. It also proposes agent-specific metrics such as tool use accuracy and handoff accuracy.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-2\" class=\"cite-link\">2</a>]</sup> IMDA says the kit draws on consultations with government agencies and more than 20 deployers and testers. It says the kit will be updated as a living document.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Firms seeking accreditation under the foundation's AI Tester Accreditation Programme undergo technical, operational and financial evaluations. The first five accredited firms are AIDX Tech, Knovel Engineering, PwC Singapore, Resaro and Vulcan. Accreditation lasts one year.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>According to the foundation's program page, the technical evaluation checks a firm's claimed testing services against guidelines such as IMDA's earlier starter kit for testing large language model applications. The page says accreditation signifies that a firm has shown it can assess AI systems within a specific, documented scope of risks. It adds that accreditation is not a guarantee or certification that AI systems are completely safe or free from all risk.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/singapore-agentic-testing-kit-accreditation/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>Accreditation gives buyers of AI testing an outside assessment of a tester's competence, so they need not rely only on the tester's own description. It does not make an individual test result checkable, because a buyer still relies on the accredited firm's report. The assurance also covers only the documented scope. The kit's emphasis on logging agent trajectories matters for verification, because those logs are what a second tester or a later auditor could re-examine.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we read IMDA's 14 October 2026 release, the Starter Kit (version 1.0, dated October 2026) and the AI Verify Foundation's program page. We did not review the accreditation assessments of the five firms or any test they performed, and we test no systems ourselves.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://www.imda.gov.sg/resources/press-releases-factsheets-and-speeches/new-initiatives-to-strengthen-ai-safety-and-resilience\">Singapore Introduces New Initiatives to Strengthen AI Safety and Resilience</a> · Infocomm Media Development Authority · 14 Oct 2026</li><li id=\"source-2\"><a href=\"https://www.imda.gov.sg/assets/603572eb-724a-46cf-ac12-14fe38e1558c.pdf\">Starter Kit for Testing Agentic Systems for Safety and Reliability, Version 1.0</a> · Infocomm Media Development Authority · Oct 2026</li><li id=\"source-3\"><a href=\"https://aiverifyfoundation.sg/ai-assurance/tester-accreditation/\">AI Tester Accreditation Programme</a> · AI Verify Foundation · accessed 20 Oct 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Verifiable evaluation & audits"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/en-18286-ai-act-harmonized-standard/",
   "url": "https://verifiable.pro/articles/en-18286-ai-act-harmonized-standard/",
   "title": "European Commission Cites EN 18286 as a Harmonized Standard Under the AI Act",
   "summary": "A Commission implementing decision, published in the Official Journal on 14 October 2026, lists EN 18286:2026, a quality management system standard for providers of AI systems. CEN-CENELEC, which drafted it, calls it the first harmonized standard supporting the AI Act and says it turns the Act's quality management requirements into auditable ones.",
   "content_html": "<p>On 14 October 2026 the European Commission published the reference of EN 18286:2026 in the Official Journal of the European Union. The standard's full title is <em>Artificial intelligence – Quality management system for EU AI Act regulatory purposes</em>. The Commission did so through Implementing Decision (EU) 2026/2274. It adopted the decision on 12 October, and the decision entered into force on the day of publication.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/en-18286-ai-act-harmonized-standard/#source-1\" class=\"cite-link\">1</a>]</sup> The European Committee for Standardization (CEN) and the European Committee for Electrotechnical Standardization (CENELEC) drafted the standard in response to a 2025 Commission standardization request. It covers the request's item on quality management systems for providers of AI systems, including post-market monitoring processes.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/en-18286-ai-act-harmonized-standard/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>CEN-CENELEC announced the citation on 15 October and called EN 18286 the first harmonized standard in support of the AI Act. CEN-CENELEC says the standard translates the quality management requirements of Article 17 into practical, auditable requirements for providers of high-risk AI systems. It adds that the citation gives providers a presumption of conformity with the corresponding provisions of the Act.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/en-18286-ai-act-harmonized-standard/#source-2\" class=\"cite-link\">2</a>]</sup> The decision states that, from the date of publication, systems conforming to a harmonized standard whose reference is published in the Official Journal are presumed to conform with the requirements it covers.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/en-18286-ai-act-harmonized-standard/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Article 17 requires providers of high-risk AI systems to put in place a documented quality management system. Its required aspects include test and validation procedures, data management, risk management, post-market monitoring and serious-incident reporting.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/en-18286-ai-act-harmonized-standard/#source-3\" class=\"cite-link\">3</a>]</sup> Article 17 sits in Section 3 of the AI Act's chapter on high-risk systems. Under the Digital Omnibus on AI, Sections 1 to 3 of that chapter apply from 2 December 2027 for systems listed in Annex III. For systems covered by Annex I, they apply from 2 August 2028.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/en-18286-ai-act-harmonized-standard/#source-3\" class=\"cite-link\">3</a>, <a href=\"https://verifiable.pro/articles/en-18286-ai-act-harmonized-standard/#source-4\" class=\"cite-link\">4</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>A harmonized standard gives providers, notified bodies (which assess conformity) and market surveillance authorities a common reference for what a quality management system under Article 17 should contain. Conformity with such a standard concerns a provider's processes, such as testing, data handling and monitoring. It does not establish that any particular AI system performs accurately or safely. Because the high-risk obligations apply from December 2027 at the earliest, providers can align their processes with a recognized reference more than a year in advance.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we read the Official Journal texts of Implementing Decision (EU) 2026/2274, the AI Act and Regulation (EU) 2026/1744 through the EU Publications Office, and CEN-CENELEC's announcement of 15 October. We did not read EN 18286 itself. Article 40(1) of the AI Act ties the presumption of conformity to the requirements in Section 2 of the high-risk chapter. We did not assess how that provision applies to a standard for Article 17. We test no systems ourselves.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://publications.europa.eu/resource/celex/32026D2274\">Commission Implementing Decision (EU) 2026/2274 of 12 October 2026 on the harmonised standards for high-risk AI systems drafted in support of Regulation (EU) 2024/1689</a> · Official Journal of the European Union · 14 Oct 2026</li><li id=\"source-2\"><a href=\"https://www.cencenelec.eu/news-events/news/2026/en-in-the-spotlight/2026-10-15-en-18286-2026-published-in-ojeu/\">First ever European standard on AI published in the OJEU</a> · CEN-CENELEC · 15 Oct 2026</li><li id=\"source-3\"><a href=\"https://publications.europa.eu/resource/celex/32024R1689\">Regulation (EU) 2024/1689 (Artificial Intelligence Act)</a> · Official Journal of the European Union · 12 Jul 2024</li><li id=\"source-4\"><a href=\"https://publications.europa.eu/resource/celex/32026R1744\">Regulation (EU) 2026/1744 of the European Parliament and of the Council of 8 July 2026 (Digital Omnibus on AI)</a> · Official Journal of the European Union · 24 Jul 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Governance & compute verification",
    "Verifiable evaluation & audits"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/opaque-team-joins-anthropic/",
   "url": "https://verifiable.pro/articles/opaque-team-joins-anthropic/",
   "title": "OPAQUE Says Its Team Is Joining Anthropic as the Company Winds Down",
   "summary": "OPAQUE Systems, a confidential AI startup, announced on 13 October 2026 that its team is joining Anthropic. Neither company has disclosed financial terms, and OPAQUE says its open-source projects remain available under their existing licenses.",
   "content_html": "<p>OPAQUE Systems, a confidential AI company, announced on 13 October 2026 that its team is joining Anthropic to continue OPAQUE's work. OPAQUE began as a research project at UC Berkeley's RISELab.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/opaque-team-joins-anthropic/#source-1\" class=\"cite-link\">1</a>]</sup> The company's homepage now says that OPAQUE Systems is winding down its operations.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/opaque-team-joins-anthropic/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>In the announcement, OPAQUE describes its path from confidential AI to what it calls verifiable AI. Confidential AI means AI workloads run on sensitive data under hardware-enforced protections. Verifiable AI, in OPAQUE's terms, is cryptographic evidence of what ran, where it ran and under which policies. OPAQUE says it worked with a wider community on open approaches to trust and security problems around AI agents and models, through AgenTrust and several open-source projects.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/opaque-team-joins-anthropic/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>According to the homepage, OPAQUE's open-source work continues at AgenTrust, and projects including Confidential MCP and TRACE remain available under their existing licenses. The Confidential Computing Summit, an industry event OPAQUE created, continues at the Linux Foundation.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/opaque-team-joins-anthropic/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/opaque-team-joins-anthropic/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<p>Neither OPAQUE page discloses the terms of the arrangement. The New Stack reported on 15 October that Anthropic told The Information it is licensing OPAQUE's technology and hiring some of its engineers. The report added that Anthropic had otherwise released no further information. Citing The Information, The New Stack said those joining include chief executive Aaron Fulkerson and chief technology officer Rishabh Poddar, but not all of OPAQUE's employees. It also reported that neither company had made statements about maintenance commitments for OPAQUE's open-source projects.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/opaque-team-joins-anthropic/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<p>The New Stack quoted two outside views. Arjun Jaggi, an applied AI researcher, said a frontier lab's resources could help harden such tools for production. Michael Heinrich, chief executive of 0G Labs, cautioned about a potential conflict of interest when tools that produce verification evidence sit inside a model vendor that is itself being checked.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/opaque-team-joins-anthropic/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>Tools meant to let outsiders check which code and policies ran are useful only while someone maintains them and reviews changes. The reporting shows no maintenance commitment from either company. OPAQUE says only that its open-source work continues at AgenTrust. How Anthropic will use the licensed technology is not public, so any effect on how outsiders can verify Anthropic's own services is not yet known.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we opened OPAQUE's 13 October 2026 announcement, its homepage and The New Stack's 15 October report. The homepage is undated, so the date in our source list is the day we read it. We found no public statement from Anthropic itself. We did not open The Information's report, which The New Stack cites for the licensing and hiring details. We could not confirm how many employees are joining or the financial terms.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://www.opaque.co/resources/articles/from-berkeley-research-to-the-future-of-ai-opaques-next-chapter\">From Berkeley Research to the Future of AI: OPAQUE&#x27;s Next Chapter</a> · OPAQUE Systems · 13 Oct 2026</li><li id=\"source-2\"><a href=\"https://www.opaque.co/\">OPAQUE homepage (wind-down notice)</a> · OPAQUE Systems · accessed 20 Oct 2026</li><li id=\"source-3\"><a href=\"https://thenewstack.io/anthropic-opaque-confidential-computing/\">Anthropic&#x27;s been eyeing confidential AI. It just made its move with another acquihire.</a> · The New Stack · 15 Oct 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Confidential computing & attestation"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/google-synthid-detector-public/",
   "url": "https://verifiable.pro/articles/google-synthid-detector-public/",
   "title": "Google Opens Its SynthID Watermark Detector to the Public",
   "summary": "Google made the SynthID Detector available to everyone in English on 7 October 2026, after an early version for media professionals. The tool checks images, video and audio for watermarks from Google and named partners, so its results cover only content from generators that embed SynthID.",
   "content_html": "<p>Google opened its SynthID Detector to everyone on 7 October 2026, making the tool available globally in English, according to a post by Pushmeet Kohli of Google DeepMind.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/google-synthid-detector-public/#source-1\" class=\"cite-link\">1</a>]</sup> SynthID is Google's system of imperceptible watermarks for AI-generated media. Google says the detector can check whether an image, video or audio file was made with AI from Google or from partners. Google names OpenAI, NVIDIA and Kakao among them and lists Apple as coming soon.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/google-synthid-detector-public/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Google introduced the detector in May 2025 as a verification portal. It opened the portal first to early testers and offered a waitlist to journalists, media professionals and researchers.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/google-synthid-detector-public/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>The October post says Google has watermarked more than 180 billion images and videos and 240,000 years of audio since launching SynthID in 2023. It adds that the verification features built into Search, the Gemini app and Chrome now handle more than 1 million requests a day.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/google-synthid-detector-public/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>A public detector lets anyone check a file for one widely used watermark without relying on the platform where the file was posted. The check covers only participating generators. Generators that do not embed SynthID leave nothing to find, so a negative result does not show that a file was made without AI. A positive result also rests on Google's own service, so its weight depends on how reliably that detector reads Google's and its partners' watermarks.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we read Google's 7 October 2026 post and its May 2025 post introducing the detector. The October post gives no accuracy figures and does not mention text, which Google's May 2025 post listed among the portal's inputs. We did not use or test the detector. We also did not check the partners' own statements on which of their products embed SynthID, so partner coverage is reported as Google describes it.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://blog.google/innovation-and-ai/models-and-research/google-deepmind/synth-id-ai-content/\">Google expands SynthID Detector for AI content</a> · Google · 7 Oct 2026</li><li id=\"source-2\"><a href=\"https://blog.google/innovation-and-ai/products/google-synthid-ai-content-detector/\">SynthID Detector: Identify content made with Google&#x27;s AI tools</a> · Google · 20 May 2025</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Content provenance & watermarking"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/aisi-transect-agent-transcript-analysis/",
   "url": "https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/",
   "title": "UK AI Security Institute Releases Transect for Reviewing Long Agent Evaluation Transcripts",
   "summary": "On 7 October 2026 the UK AI Security Institute released Transect, an open-source package that lays out an agent evaluation run on one timeline and links each AI-generated label to the transcript passages behind it. Agent runs are growing too long for people to read in full, so the labels that AI judges produce also need to be checkable.",
   "content_html": "<p>On 7 October 2026 the UK AI Security Institute (AISI) released Transect, an open-source Python package for analyzing transcripts of long agent evaluations. It builds on Inspect Scout, a transcript-analysis library. Meridian Labs, which makes Inspect Scout, supported Transect's development.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-2\" class=\"cite-link\">2</a>]</sup> A transcript records an agent's messages, tool calls and tool responses. AISI says these records can run to billions of tokens (the word pieces that language models read and write) as agents work on longer tasks and coordinate with other agents. That is more than human experts can review in full, AISI says.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Users give Transect a transcript, the task's context and the categories of activity they want to distinguish, such as coding or data analysis. The package extracts recorded events, including human messages and sub-agent launches, directly from the transcript. It then uses judge models, language models chosen by the user, to label stretches of activity. Its report places labels, token use and events on a shared timeline measured in agent turns. Each label links to the transcript passages it describes.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-2\" class=\"cite-link\">2</a>]</sup> AISI notes that labels for sub-agents describe what they were asked to do, which may differ from what they did.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Transect stores every label and individual model judgment, so reviewers can reopen an analysis without new model calls. When an analysis uses several judges or repeated judgments, the report shows where they disagree. AISI cautions that agreement does not make a label correct. It adds that fresh judgments may differ when an analysis is rerun.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>The accompanying paper demonstrates the workflow on an AI research and development evaluation that produced almost 13 million tokens.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-2\" class=\"cite-link\">2</a>]</sup> The code is on GitHub under the MIT license.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-3\" class=\"cite-link\">3</a>]</sup> AISI also cites its own security incident earlier this year, in which agents took unsanctioned actions during an evaluation. It says systematic transcript review helped establish what the agents did.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/aisi-transect-agent-transcript-analysis/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>Judge models make long transcripts manageable, but their labels are a second layer of claims that also needs checking. Transect ties each label to transcript evidence and saves every judgment. So a reviewer who did not run the analysis can trace how a conclusion was reached. That is the kind of record an outside auditor of an evaluation would need. The tool does not make labels correct, and an outside reviewer can use it only with access to the underlying transcripts.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we read AISI's post, the arXiv paper and the README and license of the AI-Safety-Institute/transect repository on GitHub. We did not install or run Transect or review any evaluation transcript.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://www.aisi.gov.uk/blog/transect-making-large-scale-agentic-evaluations-easier-to-understand\">Transect: Making large-scale agentic evaluations easier to understand</a> · UK AI Security Institute · 7 Oct 2026</li><li id=\"source-2\"><a href=\"https://arxiv.org/abs/2610.08364\">Transect: Retaining Observability for Long-Horizon LLM Agent Evaluations</a> · arXiv (Toby D. Pilditch, Konstantinos Voudouris, Alexandra Abbas and Cozmin Ududec) · 6 Oct 2026</li><li id=\"source-3\"><a href=\"https://github.com/AI-Safety-Institute/transect\">Transect (AI-Safety-Institute/transect README)</a> · GitHub · 16 Oct 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Verifiable evaluation & audits",
    "Agent identity & accountability"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/c2pa-exclusion-range-backdated-image/",
   "url": "https://verifiable.pro/articles/c2pa-exclusion-range-backdated-image/",
   "title": "Researcher Says C2PA Exclusion Ranges Let a Malicious Signer Backdate Edited Images",
   "summary": "On 2 October 2026, security researcher David Buchanan published an image whose Content Credentials signature and trusted timestamp, he says, are valid but cover none of its content. The demonstration separates two checks that are easy to confuse: whether a signature is valid and what it covers.",
   "content_html": "<p>Security researcher David Buchanan reported on 2 October 2026 that a signer can produce Content Credentials whose signature and trusted timestamp stay valid but cover none of a file's content.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/c2pa-exclusion-range-backdated-image/#source-1\" class=\"cite-link\">1</a>]</sup> Content Credentials are the provenance format specified by the Coalition for Content Provenance and Authenticity (C2PA). They attach a signed record, called a manifest, that makes claims about a file's origin. Manifests often include a timestamp from an independent time-stamp authority, which attests that the signature existed at a given time.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/c2pa-exclusion-range-backdated-image/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>The method uses exclusion ranges, byte ranges that a signer can leave out of the cryptographic hash that the signature covers. Buchanan set a single exclusion covering the entire file, so the claim signature covers the hash of an empty string. He says he edited the image after signing and that the signature and the timestamp stayed valid.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/c2pa-exclusion-range-backdated-image/#source-1\" class=\"cite-link\">1</a>]</sup> His example is a photo of a lottery ticket. He says it shows the winning numbers of the 28 August 2026 EuroMillions draw but carries a trusted timestamp from hours before the draw. He reports that the C2PA verification tools he could find did not flag anything unusual.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/c2pa-exclusion-range-backdated-image/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Version 2.4 of the C2PA specification says the software that creates a manifest must limit exclusion ranges to the manifest store or to asset metadata. It also tells validators to reject a manifest when the exclusion range that holds it contains other data, and to report any additional exclusion ranges with an informational code.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/c2pa-exclusion-range-backdated-image/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>Buchanan writes that a whole-file exclusion is easy to detect, but a small one is harder to judge. He adds that exclusions cannot simply be dropped, because some file formats contain checksums that must be updated after signing. He therefore proposes defining which bytes may be excluded in each format and requiring verifiers to enforce those limits.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/c2pa-exclusion-range-backdated-image/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>An April analysis by researchers at the University of Maryland, Baltimore County (UMBC), Hacker Factor and the National Security Agency had already reported that the exclusion range enables undetectable alterations.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/c2pa-exclusion-range-backdated-image/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>A valid signature and a trusted timestamp show only that the signed bytes have not changed since a given time. Whether those bytes include the image is a separate question. Version 2.4 appears to require validators to reject a whole-file exclusion like Buchanan's. So if his report is accurate, the tools he tried do not apply that rule. Anyone treating Content Credentials as evidence needs a validator that reports what the signature covers.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we read Buchanan's post, version 2.4 of the C2PA specification (dated 1 April 2026) and the abstract of the April analysis. We did not download his image, inspect its manifest or run any C2PA validator, so the results he reports are his own.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://www.da.vidbuchanan.co.uk/blog/hacking-time.html\">How to Hack Time, With C2PA</a> · David Buchanan · 2 Oct 2026</li><li id=\"source-2\"><a href=\"https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html\">Content Credentials: C2PA Technical Specification, Version 2.4</a> · C2PA · 1 Apr 2026</li><li id=\"source-3\"><a href=\"https://eprint.iacr.org/2026/804\">Verifying Provenance of Digital Media: Security Analysis of C2PA and its Implementation</a> · IACR Cryptology ePrint Archive · 23 Apr 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Content provenance & watermarking"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/cset-ai-chip-location-verification/",
   "url": "https://verifiable.pro/articles/cset-ai-chip-location-verification/",
   "title": "CSET Says Ping-Based Checks Backed by Inspections Are the Most Feasible Way to Track Exported AI Chips",
   "summary": "A Georgetown CSET report published on 29 September 2026 finds that ping-based checks, backed by physical inspections, are the most feasible and cost-effective way to verify where export-controlled AI chips are. The authors say such a system could only detect diversion after the fact, and they decline to say whether it should be required.",
   "content_html": "<p>Georgetown University's Center for Security and Emerging Technology (CSET) published a report on 29 September 2026 that assesses location verification as a tool for enforcing US export controls on AI chips. Its authors, Jacob Feldgoise, Kyle Miller and Hanna Dohmen, compared methods on verifiability, accuracy, security and repeatability. They conclude that a centralized ping-based location verification (PLV) system, supplemented by physical inspections to investigate leads, would be the most robust and feasible approach. They make no recommendation on whether policymakers should mandate location verification.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cset-ai-chip-location-verification/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/cset-ai-chip-location-verification/#source-2\" class=\"cite-link\">2</a>]</sup> A House committee's version of the <a href=\"https://verifiable.pro/articles/chip-security-act-committee-approval/\">Chip Security Act</a> lists ping-based location verification as one acceptable mechanism.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cset-ai-chip-location-verification/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<p>In PLV, trusted landmark servers at known locations estimate a chip's location from the round-trip time of signals sent to it. The authors recommend that each chip sign its responses in the firmware of its trusted execution environment (TEE), an isolated area of the processor. They judge that this offers the best balance of security, cost and ease of implementation. One reason they give is that firmware updates can reach TEE-equipped chips already in use. Any implementation, they add, is unlikely to withstand state-backed attackers.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cset-ai-chip-location-verification/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>The report estimates that a PLV system would cost $3.1 million to $28.8 million a year if the landmark servers are owned. If they are rented, the estimate is $2.6 million to $72.4 million a year. In more than ten million simulated scenarios, physical inspections never detected more diverted chips per dollar than PLV. This held even though the authors deliberately chose model parameters that favor inspections.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cset-ai-chip-location-verification/#source-1\" class=\"cite-link\">1</a>, <a href=\"https://verifiable.pro/articles/cset-ai-chip-location-verification/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>The authors also describe inherent limits. PLV can detect diversion only after it occurs. A chip that stops responding may be in storage or deliberately disconnected. Accuracy is likely no better than about 20 miles, so the system cannot reliably distinguish nearby data centers run by different operators. Because PLV verifies locations rather than users, it cannot detect a transfer to a restricted company in the same data center.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cset-ai-chip-location-verification/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>The report separates evidence about where a chip is from evidence about who is using it. PLV supplies only the first kind. That evidence is only as strong as the chip's firmware signing and the landmark servers, which the report considers vulnerable to well-resourced adversaries. Location checks can generate leads, but the authors say a change of user at the same site would need other rules, such as Know Your Customer due diligence.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we read CSET's report page, the full report, the companion post and the committee-approved Chip Security Act text. The report is dated September 2026. The 29 September date comes from the companion post and the page's publication metadata. We did not rerun CSET's cost model or check its accuracy estimates.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://cset.georgetown.edu/publication/tracking-ai-chips/\">Tracking AI Chips: Assessing Location Verification as an Export Control Enforcement Tool</a> · Center for Security and Emerging Technology, Georgetown University · Sep 2026</li><li id=\"source-2\"><a href=\"https://cset.georgetown.edu/article/tracking-ai-chips-what-does-it-cost/\">Tracking AI Chips: What Does It Cost?</a> · Center for Security and Emerging Technology, Georgetown University · 29 Sep 2026</li><li id=\"source-3\"><a href=\"https://docs.house.gov/meetings/FA/FA00/20260326/118999/BILLS-1193447ANSih-U2.pdf\">Huizenga Amendment in the Nature of a Substitute #2 to H.R. 3447</a> · House Committee on Foreign Affairs (House Committee Repository) · 17 Mar 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Governance & compute verification",
    "Confidential computing & attestation"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/meta-private-processing-ai-glasses/",
   "url": "https://verifiable.pro/articles/meta-private-processing-ai-glasses/",
   "title": "Meta Says It Is Extending Private Processing to Its AI Glasses",
   "summary": "Meta said on 23 September 2026 that its confidential computing platform will run cloud AI workloads for its glasses. Before sending data, the glasses are designed to check a server's attestation against a publicly witnessed ledger.",
   "content_html": "<p>Meta said on 23 September 2026 that it is extending Private Processing to its AI glasses. Private Processing is the confidential computing infrastructure Meta introduced in 2025 for WhatsApp and the Meta AI app. The platform runs AI models inside confidential virtual machines (CVMs), which are designed to keep their memory encrypted and isolated from the host. Meta says the platform is designed so that even Meta cannot access user data. Meta named streaming transcription, contextual search and long-term recall as workloads it designed the system to offload.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/meta-private-processing-ai-glasses/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>According to Meta, the glasses verify the server before sending any context. Over a remote attestation and TLS (RA-TLS) session, the device obtains a hardware-signed certificate from the server's trusted execution environment (TEE). It checks that the signature chains to a root key published by the chip vendor. It also checks that the measured software image matches an entry in an append-only ledger witnessed by an independent third party. If either check fails, it does not connect. To keep requests from being tied to an account, Meta says devices use anonymous credentials and reach its gateways through a third-party Oblivious HTTP (OHTTP) relay run by Fastly or Cloudflare.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/meta-private-processing-ai-glasses/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>For memory features, Meta says it built the storage engine inside the TEE and encrypts stored data with user-provided keys. Meta says the public ledger makes tampering with deployments detectable. It adds that researchers in its security program have access to the binaries under agreement, which lets them confirm that a recorded image behaves as described. Meta is also extending its bug bounty program to Private Processing on glasses and plans to give researchers tools, CVM binaries and documentation.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/meta-private-processing-ai-glasses/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>Trail of Bits audited the WhatsApp version before launch. In an April 2026 post, it said it found 28 issues, eight rated high severity, including attestation reports without freshness guarantees. It said Meta fixed that issue by adding a TLS nonce.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/meta-private-processing-ai-glasses/#source-2\" class=\"cite-link\">2</a>]</sup> We cover that audit in a <a href=\"https://verifiable.pro/articles/trail-of-bits-whatsapp-tee-audit/\">separate brief</a>.</p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>The pre-connection checks are where outsiders can test Meta's privacy claim. The public ledger can show only whether a deployment matches the published record. Checking whether a recorded image handles context as Meta describes requires the binaries. Outside verification of the glasses therefore depends on the research access Meta grants under agreement.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we opened Meta's 23 September 2026 engineering post and Trail of Bits' 7 April 2026 post. Meta's post does not name the third party that witnesses the ledger, and we did not inspect the ledger. The post also does not say which glasses features use Private Processing today or when the expanded bug bounty coverage starts. The Trail of Bits audit covered the WhatsApp deployment, not the glasses. We test no systems ourselves, and statements about who can access data are Meta's claims.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://engineering.fb.com/2026/09/23/security/private-processing-meta-ai-glasses/\">Bringing Private Processing to Meta AI Glasses</a> · Engineering at Meta · 23 Sep 2026</li><li id=\"source-2\"><a href=\"https://blog.trailofbits.com/2026/04/07/what-we-learned-about-tee-security-from-auditing-whatsapps-private-inference/\">What we learned about TEE security from auditing WhatsApp&#x27;s Private Inference</a> · Trail of Bits · 7 Apr 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Confidential computing & attestation"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/google-private-ai-compute-memory/",
   "url": "https://verifiable.pro/articles/google-private-ai-compute-memory/",
   "title": "Google Says It Will Add Encrypted Per-User Memory to Private AI Compute",
   "summary": "Google said on 23 September 2026 that Private AI Compute will gain persistent memory encrypted with keys held on users' devices. A Trail of Bits assessment linked from Google's technical brief reported ten findings, two of which remain unresolved.",
   "content_html": "<p>Google said on 23 September 2026 that it will add a persistent, per-user memory layer to Private AI Compute, which until now erased context when each task ended. The platform processes AI requests in hardware-isolated cloud environments. Google says the keys that unlock the memory will be held only on users' devices. It says a secure enclave, one such isolated environment, will decrypt the memory temporarily to handle a request.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/google-private-ai-compute-memory/#source-1\" class=\"cite-link\">1</a>]</sup></p>\n<p>According to the updated technical brief, the memory store is a per-user database inside a trusted execution environment (TEE). The brief says keys are released only to an enclave whose attestation matches an endorsed memory binary. An attestation is a signed record of the software an enclave loaded. Google says the memory server and its runtime are open source. It says reproducible builds and an append-only ledger of binary digests tie that code to the deployed binaries. Because each request must reach a specific user's store, the brief says the memory system does not claim network-level non-targetability, the property that requests cannot be linked to users.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/google-private-ai-compute-memory/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>Google's post says devices will be able to verify its server software before sending personal data.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/google-private-ai-compute-memory/#source-1\" class=\"cite-link\">1</a>]</sup> The brief lists device-side validation of attestation evidence as future work, along with a ledger co-signed by independent third parties. It gives no dates.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/google-private-ai-compute-memory/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>A Trail of Bits assessment dated 21 September 2026, linked from the brief, reported ten findings. Google resolved eight, and two remain unresolved. The unresolved finding rated high is that hashes of model-response text are sent outside the trusted computing base, the components that the system's security depends on. The hashes are sent out for checks on whether responses recite copyrighted text. Google plans a filter inside the enclave so that most hashes never leave it. Trail of Bits says this reduces the risk without eliminating it. The other unresolved finding, rated low, is that deleted memories may be restored into the active database. Google accepted that risk. Trail of Bits also noted that Google can change the system without prior external review and that the system contains extensive closed-source code.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/google-private-ai-compute-memory/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>Persistent memory makes verification harder, because stored data must stay protected across software releases. Google's design gives outsiders concrete objects to examine. They include an open-source memory server and a public ledger of the binary digests that key release depends on. The same documents mark the limits. Device-side validation of attestation is still future work, and the audit left an out-of-enclave data path and a memory-deletion weakness unresolved.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we opened Google's 23 September 2026 post, the technical brief it links and the Trail of Bits assessment. The brief is dated only by month, so our source list uses the post's date. Google's post does not name the auditor. We did not inspect the ledger or the open-source code, and we test no systems ourselves. The post describes the feature in the future tense, but the brief describes it as added. We could not confirm whether it has reached users.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://deepmind.google/blog/advancing-private-ai-compute-with-secure-server-side-memory/\">Advancing Private AI Compute with secure, server-side memory</a> · Google DeepMind · 23 Sep 2026</li><li id=\"source-2\"><a href=\"https://services.google.com/fh/files/misc/private_ai_compute_technical_brief.pdf\">Google Private AI Compute: Enabled with Secure Server-Side Memory (technical brief)</a> · Google · 23 Sep 2026</li><li id=\"source-3\"><a href=\"https://github.com/trailofbits/publications/blob/master/reviews/2026-09-google-secure-memory-securityreview.pdf\">Google Private AI Compute, Secure Server-Side Memory: Security Assessment</a> · Trail of Bits · 21 Sep 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Confidential computing & attestation"
   ],
   "language": "en"
  },
  {
   "id": "tag:verifiable.pro,2026-10-20:/articles/cohere-model-vault-confidential-computing/",
   "url": "https://verifiable.pro/articles/cohere-model-vault-confidential-computing/",
   "title": "Cohere Introduces Confidential Computing for Model Vault in Beta",
   "summary": "On 16 September 2026 Cohere announced an encrypted option for Model Vault, its single-tenant model deployment service, that runs models in confidential virtual machines with NVIDIA GPUs. Its documentation describes attestation checks on the client and an attestation record returned with every response.",
   "content_html": "<p>On 16 September 2026 Cohere announced Confidential Computing in Model Vault in a post on X. It said that no one, including Cohere, can access customers' workloads.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cohere-model-vault-confidential-computing/#source-1\" class=\"cite-link\">1</a>]</sup> Model Vault gives customers dedicated, single-tenant model deployments. Cohere's documentation calls the new option Model Vault Encrypted and says it is in beta for customers who contact the company.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cohere-model-vault-confidential-computing/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<p>According to the documentation, inference runs inside a hardware-based confidential virtual machine (VM) paired with an NVIDIA GPU in confidential-computing mode. In a confidential VM, the hardware encrypts the VM's memory and is designed to isolate it from the host. The documentation's examples are VMs using Intel Trust Domain Extensions (TDX) or AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP).<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cohere-model-vault-confidential-computing/#source-3\" class=\"cite-link\">3</a>]</sup> Clients encrypt requests with Oblivious HTTP (OHTTP) to a key generated inside the attested environment, so the load balancer and network carry only ciphertext.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cohere-model-vault-confidential-computing/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>The documentation describes a deployment on Intel TDX. In that deployment, Intel Trust Authority, Intel's attestation service, appraises the evidence from the CPU and GPU against an approved policy and issues a signed token. Before sending any data, Cohere's client proxy verifies Intel's signature and the measurements (hashes of the loaded code and configuration) that the token reports. It also checks that the encryption key is bound to the attested environment, and it refuses to connect if a check fails.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cohere-model-vault-confidential-computing/#source-2\" class=\"cite-link\">2</a>]</sup></p>\n<p>Every inference response also includes an attestation certificate that customers can keep as a record of the environment that served the request. Cohere says the approved measurements come from reproducible builds of open-source code, so an independent party can rebuild the artifacts and compare them.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cohere-model-vault-confidential-computing/#source-2\" class=\"cite-link\">2</a>, <a href=\"https://verifiable.pro/articles/cohere-model-vault-confidential-computing/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<p>The documentation's frequently asked questions (FAQ) page also lists what stays visible outside the protected environment: routing metadata such as the model name, operational metrics, and network timing and byte volume. The residual risks it names include hardware side channels (indirect leaks through effects such as timing), attacks that require deep physical access, and the operator's ability to stop or restart the environment.<sup class=\"cite\">[<a href=\"https://verifiable.pro/articles/cohere-model-vault-confidential-computing/#source-3\" class=\"cite-link\">3</a>]</sup></p>\n<aside class=\"callout callout-analysis\"><p class=\"callout-label\">Why it matters</p><div class=\"callout-body\"><p>In the Intel deployment, the attestation that customers check and keep depends on Intel's appraisal of the hardware evidence. It is also only as informative as the approved measurements behind it. Much of the weight therefore rests on Cohere's statement that the measurements come from reproducible builds of open-source code. Outsiders can test that statement only by rebuilding the image and comparing the results.</p></div></aside>\n<aside class=\"callout callout-checked\"><p class=\"callout-label\">What we checked</p><div class=\"callout-body\"><p>On 20 October 2026 we opened Cohere's 16 September 2026 post on X and the Remote Attestation and FAQ pages of the Model Vault documentation. We found no Cohere blog post or press release about the launch, so the details come from the documentation. Its pages are undated, so the dates in our source list are the day we read them. We did not rebuild the vault image, check Cohere's statement that its code is open source, or test a deployment. Statements about who can access customer data are Cohere's claims.</p></div></aside><h2>Sources</h2><ol><li id=\"source-1\"><a href=\"https://x.com/cohere/status/2100255182579769721\">Introducing Confidential Computing in Model Vault</a> · Cohere on X · 16 Sep 2026</li><li id=\"source-2\"><a href=\"https://docs.cohere.com/docs/model-vault/encrypted/attestation\">Remote Attestation (Model Vault Encrypted documentation)</a> · Cohere · accessed 20 Oct 2026</li><li id=\"source-3\"><a href=\"https://docs.cohere.com/docs/model-vault/encrypted/faq\">Frequently Asked Questions About Model Vault Encrypted</a> · Cohere · accessed 20 Oct 2026</li></ol>",
   "date_published": "2026-10-20T00:00:00Z",
   "date_modified": "2026-10-20T00:00:00Z",
   "authors": [
    {
     "name": "verifiable.pro Wire (automated)",
     "url": "https://verifiable.pro/about/#ai"
    }
   ],
   "tags": [
    "Confidential computing & attestation"
   ],
   "language": "en"
  }
 ]
}
