{
  "schema_version": "1.3",
  "url": "https://trustbutveri.fyi/explorer/?mechanisms=M-0004,M-0022,M-0014&hide=io",
  "data_generated": "2026-10-09",
  "definitions": {
    "methodology": "https://trustbutveri.fyi/about/methodology/",
    "readiness": "https://trustbutveri.fyi/about/readiness/",
    "filters": [
      {
        "id": "prover",
        "label": "Prover",
        "question": "How far can the party being checked be trusted?",
        "options": [
          {
            "value": "cooperative",
            "label": "Cooperative"
          },
          {
            "value": "semi-trusted",
            "label": "Semi-trusted"
          },
          {
            "value": "adversarial",
            "label": "Adversarial"
          }
        ],
        "rule": "Keeps mechanisms whose threat model holds against at least this prover. Adversarial is the strongest assumption.",
        "about": "The prover is the party being checked. Semi-trusted designs rely on part of its stack: usually the chip vendor's hardware root of trust, its firmware or counters, or its supply-chain records. Adversarial designs aim to hold even if it cheats wherever the checks allow, within their stated assumptions."
      },
      {
        "id": "onsite",
        "label": "Verifier devices on site",
        "question": "May the verifier install its own hardware at the prover's sites?",
        "options": [
          {
            "value": "no",
            "label": "Not allowed"
          }
        ],
        "rule": "\"Not allowed\" removes mechanisms that need a retrofit device, such as a network tap or a sealed sensor.",
        "about": "Some mechanisms need a device the verifier owns or trusts at the prover's facility, such as a network tap, a bandwidth limiter or a sealed sensor. Choose Not allowed when the setting rules that out. Inspectors are not covered."
      },
      {
        "id": "coop",
        "label": "Prover cooperation",
        "question": "How much must the prover take part?",
        "options": [
          {
            "value": "partial",
            "label": "Partial at most"
          },
          {
            "value": "none",
            "label": "Not required"
          }
        ],
        "rule": "\"Partial at most\" removes mechanisms that need the prover's active participation. \"Not required\" keeps only those that work without it.",
        "about": "Required: the prover takes part, for example by logging requests, producing proofs or opening records. Partial: some access, such as installing a device. Not required: works from outside, such as satellite imagery."
      },
      {
        "id": "chips",
        "label": "Chips",
        "question": "May the proposal depend on new chip designs?",
        "options": [
          {
            "value": "existing",
            "label": "Existing chips only"
          }
        ],
        "rule": "\"Existing chips only\" removes mechanisms that need changes to future chip designs.",
        "about": "New chip features take years to reach a deployed fleet and cover only chips made after they ship. Mechanisms that use shipping features, such as trusted execution environments or performance counters, stay."
      },
      {
        "id": "ready",
        "label": "Minimum development status",
        "question": "Development status",
        "options": [
          {
            "value": "R1",
            "label": "Proposed"
          },
          {
            "value": "R2",
            "label": "Research demonstration"
          },
          {
            "value": "R3",
            "label": "Operational use"
          },
          {
            "value": "R4",
            "label": "Legacy independent-evaluation filter",
            "legacy": true
          }
        ],
        "rule": "Keeps mechanisms whose readiness level is at least this one.",
        "about": "A level describes the public evidence for a mechanism's stated use, not its cost or feasibility. R3 can still have open critical flaws."
      },
      {
        "id": "tested",
        "label": "Attack testing",
        "question": "How hard has each mechanism been attacked in public?",
        "options": [
          {
            "value": "analysis",
            "label": "Published analysis"
          },
          {
            "value": "red-teamed",
            "label": "Red-teamed"
          },
          {
            "value": "independent-red-team",
            "label": "Independent red-team"
          }
        ],
        "rule": "Keeps mechanisms whose strongest published attack testing is at least this.",
        "about": "The strongest published attempt to break the mechanism for its verification use: a security analysis, red-teaming by its developers or collaborators, or a red team independent of them."
      },
      {
        "id": "hide",
        "label": "Keep hidden from the verifier",
        "question": "What must the verifier never see?",
        "options": [
          {
            "value": "weights",
            "label": "Model weights"
          },
          {
            "value": "io",
            "label": "Inputs and outputs"
          },
          {
            "value": "training",
            "label": "Training data"
          }
        ],
        "rule": "Removes mechanisms that show the asset to the verifier. Conditional or unspecified exposure stays with a note and needs checking against the privacy requirement.",
        "about": "Model weights: the checked model's parameters. Inputs and outputs: the requests a deployed model serves and its responses. Training data: what a model was trained on. Each mechanism's exposure is the editors' reading of its record: shown, depends on the design (kept, with a note), hidden, not involved, or unspecified for a selected implementation. Code and configuration are not covered yet."
      }
    ],
    "exposure": "For model weights, inputs and outputs, and training data. This is the editors' reading of each mechanism's record (its threat model, how it works and its limitations), not a field of the record. Shown: the verifier sees it. Depends: on the design or variant, or the verifier sees only samples. Hidden: the verifier sees only commitments, hashes, proofs or results. Not involved: the record does not handle it. Unspecified: the selected implementation has no asset-specific assessment here.",
    "claim_status": {
      "addressed": "A mechanism in the proposal is aimed at this claim and is not excluded by the filters.",
      "partly-addressed": "Only supporting mechanisms, or mechanisms aimed at it that the filters exclude.",
      "unaddressed": "No mechanism in the proposal addresses this claim."
    },
    "finding_classification": {
      "failure": {
        "label": "Known failures",
        "singular": "Known failure",
        "anchor": "known-flaws"
      },
      "scope-limitation": {
        "label": "Scope limitations",
        "singular": "Scope limitation",
        "anchor": "scope-limitations"
      },
      "open-question": {
        "label": "Open questions",
        "singular": "Open question",
        "anchor": "open-questions"
      }
    },
    "finding_scope": "Evidence scope describes where a finding was demonstrated; it does not establish applicability to every implementation in the mechanism family.",
    "claim_finding_scope": "open_critical_findings names active failures on the assessed records; open_critical_context names conditional family failures whose implementation applicability is unassessed.",
    "legacy_status": "The status field retains covered/partial/none for compatibility. It names claim links, never successful verification. Use claim_status and status_label for presentation."
  },
  "filters": {
    "prover": "",
    "onsite": "",
    "coop": "",
    "chips": "",
    "ready": "",
    "tested": "",
    "hide": [
      "io"
    ]
  },
  "mechanisms_passing_filters": 24,
  "claims": [],
  "mechanisms": [
    {
      "id": "M-0004",
      "title": "Zero-knowledge proofs of inference",
      "url": "https://trustbutveri.fyi/mechanisms/zk-proofs-of-inference/",
      "assessment_record": {
        "id": "M-0004",
        "title": "Zero-knowledge proofs of inference",
        "url": "https://trustbutveri.fyi/mechanisms/zk-proofs-of-inference/"
      },
      "finding_counts": {
        "failure": 0,
        "scope_limitation": 4,
        "open_question": 0,
        "open_failures": {
          "critical": 0,
          "significant": 0,
          "minor": 0
        }
      },
      "selected_implementation": null,
      "readiness": {
        "level": "R2",
        "scope": "proving a language model's output follows from committed weights, against a cheating prover",
        "confidence": "medium",
        "evidence": [
          "S-0023",
          "S-1108",
          "S-0021",
          "S-0068",
          "S-1101",
          "S-0024",
          "S-0070",
          "S-1807",
          "S-1808",
          "S-1112"
        ]
      },
      "development_status": {
        "code": "R2",
        "label": "Research demonstration",
        "short": "Research demo",
        "rank": 2,
        "legacy_code": "R2"
      },
      "security_evidence": {
        "attack_testing": {
          "status": "independent-red-team",
          "label": "Published attack testing",
          "kind": "practical",
          "attribution": "Independent team"
        },
        "independent_evaluation": {
          "status": "unassessed"
        },
        "formal_proof": {
          "status": "unassessed"
        },
        "deployment_assurance": {
          "status": "unassessed"
        },
        "legacy_evaluation_code": null,
        "scoped_findings": [],
        "open_failures": {
          "critical": 0,
          "significant": 0,
          "minor": 0
        }
      },
      "assessed_properties": {
        "threat_model": "adversarial",
        "hardware_requirement": "none",
        "prover_cooperation": "required",
        "adversarial_evaluation": "independent-red-team"
      },
      "claims": [],
      "exposure": {
        "weights": "hidden",
        "io": "shown",
        "training": "none",
        "note": "The weights stay committed and hidden; the verifier knows each input and output it checks."
      },
      "family_finding_context": [],
      "filter_issues": [
        {
          "filter": "hide",
          "level": "exclude",
          "short": "shows inputs and outputs",
          "text": "Shows inputs and outputs to the verifier. The weights stay committed and hidden; the verifier knows each input and output it checks."
        }
      ]
    },
    {
      "id": "M-0022",
      "title": "Side-channel suppression for isolated facilities",
      "url": "https://trustbutveri.fyi/mechanisms/side-channel-suppression/",
      "assessment_record": {
        "id": "M-0022",
        "title": "Side-channel suppression for isolated facilities",
        "url": "https://trustbutveri.fyi/mechanisms/side-channel-suppression/"
      },
      "finding_counts": {
        "failure": 0,
        "scope_limitation": 1,
        "open_question": 2,
        "open_failures": {
          "critical": 0,
          "significant": 0,
          "minor": 0
        }
      },
      "selected_implementation": null,
      "readiness": {
        "level": "R1",
        "scope": "bounding physical covert channels out of a verified enclosure",
        "confidence": "medium",
        "evidence": [
          "S-0038"
        ]
      },
      "development_status": {
        "code": "R1",
        "label": "Proposed",
        "short": "Proposed",
        "rank": 1,
        "legacy_code": "R1"
      },
      "security_evidence": {
        "attack_testing": {
          "status": "analysis",
          "label": "Published security analysis",
          "kind": "analysis"
        },
        "independent_evaluation": {
          "status": "unassessed"
        },
        "formal_proof": {
          "status": "unassessed"
        },
        "deployment_assurance": {
          "status": "unassessed"
        },
        "legacy_evaluation_code": null,
        "scoped_findings": [],
        "open_failures": {
          "critical": 0,
          "significant": 0,
          "minor": 0
        }
      },
      "assessed_properties": {
        "threat_model": "adversarial",
        "hardware_requirement": "retrofit-device",
        "prover_cooperation": "partial",
        "adversarial_evaluation": "analysis"
      },
      "claims": [],
      "exposure": {
        "weights": "none",
        "io": "none",
        "training": "none",
        "note": "Shields and filters a facility; it does not handle model data."
      },
      "family_finding_context": [],
      "filter_issues": []
    },
    {
      "id": "M-0014",
      "title": "Bandwidth limits and compartmentalization",
      "url": "https://trustbutveri.fyi/mechanisms/bandwidth-limits-and-compartmentalization/",
      "assessment_record": {
        "id": "M-0014",
        "title": "Bandwidth limits and compartmentalization",
        "url": "https://trustbutveri.fyi/mechanisms/bandwidth-limits-and-compartmentalization/"
      },
      "finding_counts": {
        "failure": 2,
        "scope_limitation": 2,
        "open_question": 1,
        "open_failures": {
          "critical": 0,
          "significant": 2,
          "minor": 0
        }
      },
      "selected_implementation": null,
      "readiness": {
        "level": "R2",
        "scope": "monitoring inter-node traffic with operator-run software on four GPUs",
        "confidence": "low",
        "evidence": [
          "S-0067",
          "S-1301",
          "S-0018",
          "S-3220",
          "S-1313"
        ]
      },
      "development_status": {
        "code": "R2",
        "label": "Research demonstration",
        "short": "Research demo",
        "rank": 2,
        "legacy_code": "R2"
      },
      "security_evidence": {
        "attack_testing": {
          "status": "analysis",
          "label": "Published security analysis",
          "kind": "analysis"
        },
        "independent_evaluation": {
          "status": "unassessed"
        },
        "formal_proof": {
          "status": "unassessed"
        },
        "deployment_assurance": {
          "status": "unassessed"
        },
        "legacy_evaluation_code": null,
        "scoped_findings": [
          {
            "n": 2,
            "severity": "significant",
            "status": "open",
            "evidence_scope": "unassessed",
            "sources": [
              "S-1301"
            ]
          },
          {
            "n": 5,
            "severity": "significant",
            "status": "open",
            "evidence_scope": "unassessed",
            "sources": [
              "S-1313"
            ]
          }
        ],
        "open_failures": {
          "critical": 0,
          "significant": 2,
          "minor": 0
        }
      },
      "assessed_properties": {
        "threat_model": "adversarial",
        "hardware_requirement": "retrofit-device",
        "prover_cooperation": "required",
        "adversarial_evaluation": "analysis"
      },
      "claims": [],
      "exposure": {
        "weights": "none",
        "io": "none",
        "training": "none",
        "note": "Caps traffic between groups of chips; it does not read the traffic's content."
      },
      "family_finding_context": [],
      "filter_issues": []
    }
  ],
  "strengths": {
    "covered": [],
    "production": [],
    "operationalUse": [],
    "adversarial": [
      "M-0022",
      "M-0014"
    ],
    "noNewHardware": [],
    "mitigated": [],
    "notCounted": [
      "M-0004"
    ]
  },
  "properties": {
    "covered": [],
    "production": [],
    "operationalUse": [],
    "adversarial": [
      "M-0022",
      "M-0014"
    ],
    "noNewHardware": [],
    "mitigated": [],
    "notCounted": [
      "M-0004"
    ]
  },
  "attack_testing": [
    {
      "id": "M-0004",
      "record": "M-0004",
      "evaluation": "independent-red-team",
      "in_setting": false
    },
    {
      "id": "M-0022",
      "record": "M-0022",
      "evaluation": "analysis",
      "in_setting": true
    },
    {
      "id": "M-0014",
      "record": "M-0014",
      "evaluation": "analysis",
      "in_setting": true
    }
  ],
  "selected_implementations": {},
  "weaknesses": {
    "gaps": [],
    "excluded": [
      {
        "id": "M-0004",
        "issues": [
          {
            "filter": "hide",
            "level": "exclude",
            "short": "shows inputs and outputs",
            "text": "Shows inputs and outputs to the verifier. The weights stay committed and hidden; the verifier knows each input and output it checks."
          }
        ]
      }
    ],
    "unlinked": [],
    "critical": [],
    "significant": [
      {
        "mech": "M-0014",
        "n": 2,
        "historical": false,
        "title": "Operator control of pod routing collapses the bound",
        "classification": "failure",
        "kind": "theoretical-argument",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "Lucid's analysis finds that if the operator can freely assign pods to routers, it could dedicate a whole cell of 100 or more pods to one pipeline stage. The bound then falls to about 90–220x uncompressed and as low as about 25x with compression. The proposed mitigation, auditor-controlled random assignment that is periodically re-randomized, has not been implemented.",
        "response": null,
        "sources": [
          "S-1301"
        ]
      },
      {
        "mech": "M-0014",
        "n": 5,
        "historical": false,
        "title": "Parallel scale-up switches are hard enforcement points",
        "classification": "failure",
        "kind": "theoretical-argument",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "In GB200 topologies, GPUs reach GPUs in other nodes through NVSwitches without a NIC on the path. Amodo notes that limits are hard to enforce there because many switches work in parallel, so compromising one or two would bypass the limit.",
        "response": null,
        "sources": [
          "S-1313"
        ]
      }
    ],
    "criticalMechanisms": [],
    "significantMechanisms": [
      "M-0014"
    ],
    "familyContext": [],
    "scopeLimitations": [
      {
        "mech": "M-0004",
        "n": 1,
        "historical": false,
        "title": "The proof covers a fixed-point approximation, not the floating-point model",
        "classification": "scope-limitation",
        "kind": "open-question",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "Current ZK inference systems prove a quantised version of the network. zkLLM scales values by 2^16 and reports small perplexity changes. Attestable reports quantising matrix multiplications to 8-bit integers while proving other operations in floating point. A verifier therefore learns about the proof-friendly variant, and must separately accept that this variant is the declared model. Trail of Bits built a ResNet-18 backdoor that is dormant in the full-precision model and active after ezkl's quantisation; whether it persists through proving was left for further investigation. A verification system design notes that ZKPs can emulate floating-point operations. Rounding makes floating-point results depend on summation order, so bit-for-bit replay of an accelerator's results needs its original reduction tree. The report calls emulating that tree inside a ZKP an open, intricate problem and asks what it would cost.",
        "response": null,
        "sources": [
          "S-0023",
          "S-1101",
          "S-0070",
          "S-0018"
        ]
      },
      {
        "mech": "M-0004",
        "n": 2,
        "historical": false,
        "title": "A proof speaks only for the computations that were proven",
        "classification": "scope-limitation",
        "kind": "theoretical-argument",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "Attestable writes that \"a proof of some computation is not a proof of all computation\", and that a proof cannot discover a datacenter that was never declared. Proofs of inference do not by themselves show that no other workload ran on the same or other hardware.",
        "response": null,
        "sources": [
          "S-1102"
        ],
        "helps": [
          {
            "by": "M-0007",
            "how": "The record names proof-of-work accounting as the kind of compute accounting needed to show that proven inference was the only work done."
          }
        ]
      },
      {
        "mech": "M-0004",
        "n": 3,
        "historical": false,
        "title": "The model architecture is disclosed",
        "classification": "scope-limitation",
        "kind": "theoretical-argument",
        "severity": "minor",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "ZKML \"requires that the model architecture (but not weights) is revealed\", and zkLLM assumes a publicly known model structure. Architecture can be commercially sensitive.",
        "response": null,
        "sources": [
          "S-0021",
          "S-0023"
        ]
      },
      {
        "mech": "M-0004",
        "n": 4,
        "historical": false,
        "title": "Proofs do not bind computational effort (Hollow-LLM)",
        "classification": "scope-limitation",
        "kind": "demonstrated-attack",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "Researchers at the University of Southern California show that a proof of inference certifies that an output is consistent with committed weights under the declared architecture, but not how much computation produced it. In their Hollow-LLM attack, a provider keeps the declared architecture and parameter count but commits to \"ghost weights\". Some layers pass their inputs through unchanged, and wide layers carry the signal in a small subspace, so a much smaller inner model does the real work. The ghost weights satisfy the verification circuit and yield valid proofs.\nThe authors ran the attack with the proof procedure of zkGPT, a separate ZK inference system, on a 6-layer, 512-dimensional transformer declared as up to 12 layers and 1,024 dimensions. Outputs were identical to the inner model's, and serving cost stayed at the inner model's level. An honest model of the declared size cost 2.4 times as much to prefill and 3.1 times as much to decode. Proving cost still grew with the declared architecture.\nThe authors note that results may be served before any proof, with the provider building the witness only when a call is selected for audit. They describe their constructions as \"compatible with state-of-the-art zkLLM pipelines\", and state that the attack does not imply a flaw in the proof system itself. They propose challenge-based audits and ablation tests, which raise the cost of cheating but give no guarantee.",
        "response": null,
        "sources": [
          "S-1112"
        ]
      },
      {
        "mech": "M-0022",
        "n": 2,
        "historical": false,
        "title": "Openings for airflow, power and optics weaken shielding",
        "classification": "scope-limitation",
        "kind": "theoretical-argument",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "Cankaya notes that keeping attenuation high while passing high-power airflow, cabling and optical links adds complexity beyond existing shielded-enclosure specifications.",
        "response": null,
        "sources": [
          "S-0038"
        ]
      },
      {
        "mech": "M-0014",
        "n": 3,
        "historical": false,
        "title": "Undeclared local storage raises per-pod capacity",
        "classification": "scope-limitation",
        "kind": "theoretical-argument",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "More memory or storage per pod helps an adversary. Lucid requires per-pod storage to be declared, capped and physically inspected.",
        "response": null,
        "sources": [
          "S-1301"
        ]
      },
      {
        "mech": "M-0014",
        "n": 4,
        "historical": false,
        "title": "Training within one pod is not covered",
        "classification": "scope-limitation",
        "kind": "open-question",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "Lucid's bounds concern pre-training models larger than the pods are sized for. Training models that fit in one pod, fine-tuning and reinforcement-learning post-training within one pod are outside the modelled threat.",
        "response": null,
        "sources": [
          "S-1301"
        ]
      }
    ],
    "openQuestions": [
      {
        "mech": "M-0022",
        "n": 1,
        "historical": false,
        "title": "Supply-chain implants may evade inspection",
        "classification": "open-question",
        "kind": "theoretical-argument",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "Cankaya identifies malicious hardware embedded deep in purchased components as a residual risk that visual inspection and disassembly may not catch. He notes that radiographic examination under high-security standards could mitigate it.",
        "response": null,
        "sources": [
          "S-0038"
        ]
      },
      {
        "mech": "M-0022",
        "n": 3,
        "historical": false,
        "title": "Inspection assumptions may not hold",
        "classification": "open-question",
        "kind": "open-question",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "The design's statistical argument assumes that visual or disassembly inspection catches every flaw that is present in a sampled unit. Cankaya is unsure whether destructive teardowns are defence-dominant or offence-dominant.",
        "response": null,
        "sources": [
          "S-0038"
        ]
      },
      {
        "mech": "M-0014",
        "n": 1,
        "historical": false,
        "title": "Low-communication training reduces the bandwidth training needs",
        "classification": "open-question",
        "kind": "theoretical-argument",
        "severity": "significant",
        "status": "open",
        "evidence_scope": null,
        "scope_note": null,
        "related_finding": null,
        "description": "DiLoCo matched fully synchronous training on 8 workers while communicating 500 times less. Rahman writes that this family of methods theoretically allows large-scale training with less than 100 Mbps. Lucid includes these methods in its bounds, but notes that extreme activation compression, architectures with unusually small inter-layer widths, or modular paradigms could erode the margin.",
        "response": null,
        "sources": [
          "S-1314",
          "S-0060",
          "S-1301"
        ]
      }
    ],
    "minor": 0,
    "minorFindings": [],
    "minorBy": [],
    "notDemonstrated": [
      "M-0022"
    ],
    "newChip": []
  },
  "findings": [
    {
      "mech": "M-0004",
      "record": "M-0004",
      "n": 1,
      "historical": false,
      "title": "The proof covers a fixed-point approximation, not the floating-point model",
      "classification": "scope-limitation",
      "kind": "open-question",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "Current ZK inference systems prove a quantised version of the network. zkLLM scales values by 2^16 and reports small perplexity changes. Attestable reports quantising matrix multiplications to 8-bit integers while proving other operations in floating point. A verifier therefore learns about the proof-friendly variant, and must separately accept that this variant is the declared model. Trail of Bits built a ResNet-18 backdoor that is dormant in the full-precision model and active after ezkl's quantisation; whether it persists through proving was left for further investigation. A verification system design notes that ZKPs can emulate floating-point operations. Rounding makes floating-point results depend on summation order, so bit-for-bit replay of an accelerator's results needs its original reduction tree. The report calls emulating that tree inside a ZKP an open, intricate problem and asks what it would cost.",
      "response": null,
      "sources": [
        "S-0023",
        "S-1101",
        "S-0070",
        "S-0018"
      ]
    },
    {
      "mech": "M-0004",
      "record": "M-0004",
      "n": 2,
      "historical": false,
      "title": "A proof speaks only for the computations that were proven",
      "classification": "scope-limitation",
      "kind": "theoretical-argument",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "Attestable writes that \"a proof of some computation is not a proof of all computation\", and that a proof cannot discover a datacenter that was never declared. Proofs of inference do not by themselves show that no other workload ran on the same or other hardware.",
      "response": null,
      "sources": [
        "S-1102"
      ],
      "helps": [
        {
          "by": "M-0007",
          "how": "The record names proof-of-work accounting as the kind of compute accounting needed to show that proven inference was the only work done."
        }
      ]
    },
    {
      "mech": "M-0004",
      "record": "M-0004",
      "n": 3,
      "historical": false,
      "title": "The model architecture is disclosed",
      "classification": "scope-limitation",
      "kind": "theoretical-argument",
      "severity": "minor",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "ZKML \"requires that the model architecture (but not weights) is revealed\", and zkLLM assumes a publicly known model structure. Architecture can be commercially sensitive.",
      "response": null,
      "sources": [
        "S-0021",
        "S-0023"
      ]
    },
    {
      "mech": "M-0004",
      "record": "M-0004",
      "n": 4,
      "historical": false,
      "title": "Proofs do not bind computational effort (Hollow-LLM)",
      "classification": "scope-limitation",
      "kind": "demonstrated-attack",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "Researchers at the University of Southern California show that a proof of inference certifies that an output is consistent with committed weights under the declared architecture, but not how much computation produced it. In their Hollow-LLM attack, a provider keeps the declared architecture and parameter count but commits to \"ghost weights\". Some layers pass their inputs through unchanged, and wide layers carry the signal in a small subspace, so a much smaller inner model does the real work. The ghost weights satisfy the verification circuit and yield valid proofs.\nThe authors ran the attack with the proof procedure of zkGPT, a separate ZK inference system, on a 6-layer, 512-dimensional transformer declared as up to 12 layers and 1,024 dimensions. Outputs were identical to the inner model's, and serving cost stayed at the inner model's level. An honest model of the declared size cost 2.4 times as much to prefill and 3.1 times as much to decode. Proving cost still grew with the declared architecture.\nThe authors note that results may be served before any proof, with the provider building the witness only when a call is selected for audit. They describe their constructions as \"compatible with state-of-the-art zkLLM pipelines\", and state that the attack does not imply a flaw in the proof system itself. They propose challenge-based audits and ablation tests, which raise the cost of cheating but give no guarantee.",
      "response": null,
      "sources": [
        "S-1112"
      ]
    },
    {
      "mech": "M-0022",
      "record": "M-0022",
      "n": 1,
      "historical": false,
      "title": "Supply-chain implants may evade inspection",
      "classification": "open-question",
      "kind": "theoretical-argument",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "Cankaya identifies malicious hardware embedded deep in purchased components as a residual risk that visual inspection and disassembly may not catch. He notes that radiographic examination under high-security standards could mitigate it.",
      "response": null,
      "sources": [
        "S-0038"
      ]
    },
    {
      "mech": "M-0022",
      "record": "M-0022",
      "n": 2,
      "historical": false,
      "title": "Openings for airflow, power and optics weaken shielding",
      "classification": "scope-limitation",
      "kind": "theoretical-argument",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "Cankaya notes that keeping attenuation high while passing high-power airflow, cabling and optical links adds complexity beyond existing shielded-enclosure specifications.",
      "response": null,
      "sources": [
        "S-0038"
      ]
    },
    {
      "mech": "M-0022",
      "record": "M-0022",
      "n": 3,
      "historical": false,
      "title": "Inspection assumptions may not hold",
      "classification": "open-question",
      "kind": "open-question",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "The design's statistical argument assumes that visual or disassembly inspection catches every flaw that is present in a sampled unit. Cankaya is unsure whether destructive teardowns are defence-dominant or offence-dominant.",
      "response": null,
      "sources": [
        "S-0038"
      ]
    },
    {
      "mech": "M-0014",
      "record": "M-0014",
      "n": 1,
      "historical": false,
      "title": "Low-communication training reduces the bandwidth training needs",
      "classification": "open-question",
      "kind": "theoretical-argument",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "DiLoCo matched fully synchronous training on 8 workers while communicating 500 times less. Rahman writes that this family of methods theoretically allows large-scale training with less than 100 Mbps. Lucid includes these methods in its bounds, but notes that extreme activation compression, architectures with unusually small inter-layer widths, or modular paradigms could erode the margin.",
      "response": null,
      "sources": [
        "S-1314",
        "S-0060",
        "S-1301"
      ]
    },
    {
      "mech": "M-0014",
      "record": "M-0014",
      "n": 2,
      "historical": false,
      "title": "Operator control of pod routing collapses the bound",
      "classification": "failure",
      "kind": "theoretical-argument",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "Lucid's analysis finds that if the operator can freely assign pods to routers, it could dedicate a whole cell of 100 or more pods to one pipeline stage. The bound then falls to about 90–220x uncompressed and as low as about 25x with compression. The proposed mitigation, auditor-controlled random assignment that is periodically re-randomized, has not been implemented.",
      "response": null,
      "sources": [
        "S-1301"
      ]
    },
    {
      "mech": "M-0014",
      "record": "M-0014",
      "n": 3,
      "historical": false,
      "title": "Undeclared local storage raises per-pod capacity",
      "classification": "scope-limitation",
      "kind": "theoretical-argument",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "More memory or storage per pod helps an adversary. Lucid requires per-pod storage to be declared, capped and physically inspected.",
      "response": null,
      "sources": [
        "S-1301"
      ]
    },
    {
      "mech": "M-0014",
      "record": "M-0014",
      "n": 4,
      "historical": false,
      "title": "Training within one pod is not covered",
      "classification": "scope-limitation",
      "kind": "open-question",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "Lucid's bounds concern pre-training models larger than the pods are sized for. Training models that fit in one pod, fine-tuning and reinforcement-learning post-training within one pod are outside the modelled threat.",
      "response": null,
      "sources": [
        "S-1301"
      ]
    },
    {
      "mech": "M-0014",
      "record": "M-0014",
      "n": 5,
      "historical": false,
      "title": "Parallel scale-up switches are hard enforcement points",
      "classification": "failure",
      "kind": "theoretical-argument",
      "severity": "significant",
      "status": "open",
      "evidence_scope": null,
      "scope_note": null,
      "related_finding": null,
      "description": "In GB200 topologies, GPUs reach GPUs in other nodes through NVSwitches without a NIC on the path. Amodo notes that limits are hard to enforce there because many switches work in parallel, so compromising one or two would bypass the limit.",
      "response": null,
      "sources": [
        "S-1313"
      ]
    }
  ],
  "possible_additions": [
    {
      "id": "M-0017",
      "title": "Tamper evidence for verifier devices",
      "url": "https://trustbutveri.fyi/mechanisms/tamper-evidence-for-verifier-devices/",
      "readiness": "R2",
      "development_status": {
        "code": "R2",
        "label": "Research demonstration",
        "short": "Research demo",
        "rank": 2,
        "legacy_code": "R2"
      },
      "security_evidence": {
        "attack_testing": {
          "status": "analysis",
          "label": "Published security analysis",
          "kind": "analysis"
        },
        "independent_evaluation": {
          "status": "unassessed"
        },
        "formal_proof": {
          "status": "unassessed"
        },
        "deployment_assurance": {
          "status": "unassessed"
        },
        "legacy_evaluation_code": null,
        "scoped_findings": [
          {
            "n": 1,
            "severity": "significant",
            "status": "open",
            "evidence_scope": "mechanism",
            "sources": [
              "S-1317",
              "S-1318"
            ]
          },
          {
            "n": 3,
            "severity": "significant",
            "status": "open",
            "evidence_scope": "mechanism",
            "sources": [
              "S-1315",
              "S-0052",
              "S-3261"
            ]
          }
        ],
        "open_failures": {
          "critical": 0,
          "significant": 2,
          "minor": 0
        }
      },
      "fits_filters": true,
      "filter_issues": [],
      "reasons": [
        {
          "kind": "blocker",
          "mech": "M-0014",
          "text": "Shaping devices and routing assignments must be trusted by both parties; Amodo has not yet fully analysed resilience to a compromised DPU."
        }
      ]
    },
    {
      "id": "M-0013",
      "title": "Network taps and certifiers",
      "url": "https://trustbutveri.fyi/mechanisms/network-taps-and-certifiers/",
      "readiness": "R1",
      "development_status": {
        "code": "R1",
        "label": "Proposed",
        "short": "Proposed",
        "rank": 1,
        "legacy_code": "R1"
      },
      "security_evidence": {
        "attack_testing": {
          "status": "analysis",
          "label": "Published security analysis",
          "kind": "analysis"
        },
        "independent_evaluation": {
          "status": "unassessed"
        },
        "formal_proof": {
          "status": "unassessed"
        },
        "deployment_assurance": {
          "status": "unassessed"
        },
        "legacy_evaluation_code": null,
        "scoped_findings": [
          {
            "n": 1,
            "severity": "significant",
            "status": "open",
            "evidence_scope": "unassessed",
            "sources": [
              "S-1300",
              "S-1507"
            ]
          },
          {
            "n": 4,
            "severity": "significant",
            "status": "open",
            "evidence_scope": "unassessed",
            "sources": [
              "S-1312"
            ]
          },
          {
            "n": 6,
            "severity": "minor",
            "status": "mitigated",
            "evidence_scope": "unassessed",
            "sources": [
              "S-1300"
            ]
          }
        ],
        "open_failures": {
          "critical": 0,
          "significant": 2,
          "minor": 0
        }
      },
      "fits_filters": true,
      "filter_issues": [],
      "reasons": [
        {
          "kind": "blocker",
          "mech": "M-0014",
          "text": "The verifier must know that all traffic leaving a pod crosses the capped, monitored links."
        }
      ]
    },
    {
      "id": "M-0007",
      "title": "Proofs of useful work for capacity accounting",
      "url": "https://trustbutveri.fyi/mechanisms/proofs-of-useful-work/",
      "readiness": "R1",
      "development_status": {
        "code": "R1",
        "label": "Proposed",
        "short": "Proposed",
        "rank": 1,
        "legacy_code": "R1"
      },
      "security_evidence": {
        "attack_testing": {
          "status": "analysis",
          "label": "Published security analysis",
          "kind": "analysis"
        },
        "independent_evaluation": {
          "status": "unassessed"
        },
        "formal_proof": {
          "status": "unassessed"
        },
        "deployment_assurance": {
          "status": "unassessed"
        },
        "legacy_evaluation_code": null,
        "scoped_findings": [
          {
            "n": 3,
            "severity": "significant",
            "status": "open",
            "evidence_scope": "unassessed",
            "sources": [
              "S-1105"
            ]
          }
        ],
        "open_failures": {
          "critical": 0,
          "significant": 1,
          "minor": 0
        }
      },
      "fits_filters": true,
      "filter_issues": [],
      "reasons": [
        {
          "kind": "blocker",
          "mech": "M-0004",
          "text": "Showing that proven inference was the only work done needs a compute-accounting mechanism such as proof-of-work accounting, which is only proposed."
        }
      ]
    }
  ],
  "goal": null,
  "design": null,
  "dependencies": {
    "prerequisites": [
      {
        "id": "M-0017",
        "neededBy": [
          "M-0014"
        ]
      }
    ],
    "shared": [],
    "blockers": [
      {
        "mech": "M-0004",
        "n": 1,
        "historical": false,
        "text": "Proving takes about 13 minutes (803 seconds) per 2,048-token forward pass of a 13B model on one A100, and a verification system design calls the overhead heavy.",
        "theme": "performance-compatibility",
        "blocked_by": null,
        "sources": [
          "S-0023",
          "S-0018"
        ],
        "inProposal": null
      },
      {
        "mech": "M-0004",
        "n": 2,
        "historical": false,
        "text": "ZKML and zkLLM prove fixed-point arithmetic, and a verification system design calls emulating an accelerator's original floating-point reduction tree inside a zero-knowledge proof, which bit-for-bit replay needs, an open and intricate problem whose cost is also unsettled.",
        "theme": "performance-compatibility",
        "blocked_by": null,
        "sources": [
          "S-0021",
          "S-0023",
          "S-0018"
        ],
        "inProposal": null
      },
      {
        "mech": "M-0004",
        "n": 3,
        "historical": false,
        "text": "zkLLM's code is unaudited, interactive and archived; the one audited ZK inference library, ezkl, had high-severity circuit soundness bugs before its fixes.",
        "theme": "adversarial-validation",
        "blocked_by": null,
        "sources": [
          "S-1108",
          "S-0070"
        ],
        "inProposal": null
      },
      {
        "mech": "M-0004",
        "n": 4,
        "historical": false,
        "text": "Showing that proven inference was the only work done needs a compute-accounting mechanism such as proof-of-work accounting, which is only proposed.",
        "theme": "coverage-hidden-compute",
        "blocked_by": "M-0007",
        "sources": [
          "S-1102"
        ],
        "inProposal": false
      },
      {
        "mech": "M-0022",
        "n": 1,
        "historical": false,
        "text": "No prototype or red-team exists; the design is a first-pass viability study.",
        "theme": "adversarial-validation",
        "blocked_by": null,
        "sources": [
          "S-0038"
        ],
        "inProposal": null
      },
      {
        "mech": "M-0022",
        "n": 2,
        "historical": false,
        "text": "Volume costs of TEMPEST-grade power-line filters are uncertain, because existing products are mostly made to order.",
        "theme": "performance-compatibility",
        "blocked_by": null,
        "sources": [
          "S-0038"
        ],
        "inProposal": null
      },
      {
        "mech": "M-0014",
        "n": 1,
        "historical": false,
        "text": "No cap that a verifier can check has been implemented or red-teamed.",
        "theme": "adversarial-validation",
        "blocked_by": null,
        "sources": [
          "S-1301"
        ],
        "inProposal": null
      },
      {
        "mech": "M-0014",
        "n": 2,
        "historical": false,
        "text": "The verifier must know that all traffic leaving a pod crosses the capped, monitored links.",
        "theme": "coverage-hidden-compute",
        "blocked_by": "M-0013",
        "sources": [
          "S-0018"
        ],
        "inProposal": false
      },
      {
        "mech": "M-0014",
        "n": 3,
        "historical": false,
        "text": "Shaping devices and routing assignments must be trusted by both parties; Amodo has not yet fully analysed resilience to a compromised DPU.",
        "theme": "hardware-trust",
        "blocked_by": "M-0017",
        "sources": [
          "S-1301",
          "S-1313"
        ],
        "inProposal": false
      },
      {
        "mech": "M-0014",
        "n": 4,
        "historical": false,
        "text": "Advances in low-communication training could shrink the margin that the cap enforces.",
        "theme": "capacity-bounds",
        "blocked_by": null,
        "sources": [
          "S-1314",
          "S-0060",
          "S-1301"
        ],
        "inProposal": null
      }
    ]
  },
  "exposure": {
    "weights": {
      "shown": [],
      "partial": [],
      "hidden": [
        "M-0004"
      ],
      "none": [
        "M-0022",
        "M-0014"
      ],
      "unknown": []
    },
    "io": {
      "shown": [
        "M-0004"
      ],
      "partial": [],
      "hidden": [],
      "none": [
        "M-0022",
        "M-0014"
      ],
      "unknown": []
    },
    "training": {
      "shown": [],
      "partial": [],
      "hidden": [],
      "none": [
        "M-0004",
        "M-0022",
        "M-0014"
      ],
      "unknown": []
    }
  },
  "implementations": [
    {
      "mechanism": "M-0004",
      "selected": null,
      "implementations": [
        {
          "id": "I-0005",
          "title": "Attestable zero-knowledge inference prover",
          "url": "https://trustbutveri.fyi/implementations/attestable-zk-inference/"
        },
        {
          "id": "I-0014",
          "title": "EZKL",
          "url": "https://trustbutveri.fyi/implementations/ezkl/"
        },
        {
          "id": "I-0012",
          "title": "Low-trust AI compute verification system overview",
          "url": "https://trustbutveri.fyi/implementations/low-trust-compute-verification-system-overview/"
        },
        {
          "id": "I-0003",
          "title": "zkLLM",
          "url": "https://trustbutveri.fyi/implementations/zkllm/"
        }
      ]
    },
    {
      "mechanism": "M-0022",
      "selected": null,
      "implementations": [
        {
          "id": "I-0011",
          "title": "AI 2040 inference-only verification stack",
          "url": "https://trustbutveri.fyi/implementations/ai-2040-inference-only-verification-plan/"
        },
        {
          "id": "I-0012",
          "title": "Low-trust AI compute verification system overview",
          "url": "https://trustbutveri.fyi/implementations/low-trust-compute-verification-system-overview/"
        },
        {
          "id": "I-0010",
          "title": "RAND secure inference data center (SIDC) design",
          "url": "https://trustbutveri.fyi/implementations/rand-secure-inference-data-centers/"
        }
      ]
    },
    {
      "mechanism": "M-0014",
      "selected": null,
      "implementations": [
        {
          "id": "I-0011",
          "title": "AI 2040 inference-only verification stack",
          "url": "https://trustbutveri.fyi/implementations/ai-2040-inference-only-verification-plan/"
        },
        {
          "id": "I-0010",
          "title": "RAND secure inference data center (SIDC) design",
          "url": "https://trustbutveri.fyi/implementations/rand-secure-inference-data-centers/"
        }
      ]
    }
  ],
  "sources": [
    {
      "id": "S-0023",
      "title": "zkLLM: Zero Knowledge Proofs for Large Language Models",
      "authors": "H. Sun et al.",
      "year": 2024,
      "url": "https://doi.org/10.1145/3658644.3670334",
      "path": "/sources/sun-zkllm/"
    },
    {
      "id": "S-1108",
      "title": "zkllm-ccs2024: code for zkLLM: Zero Knowledge Proofs for Large Language Models",
      "authors": "H. Sun",
      "year": 2024,
      "url": "https://github.com/jvhs0706/zkllm-ccs2024",
      "path": "/sources/sun-zkllm-code/"
    },
    {
      "id": "S-0021",
      "title": "ZKML: An Optimizing System for ML Inference in Zero-Knowledge Proofs",
      "authors": "B.-J. Chen et al.",
      "year": 2024,
      "url": "https://doi.org/10.1145/3627703.3650088",
      "path": "/sources/chen-zkml/"
    },
    {
      "id": "S-0068",
      "title": "NanoZK: Privacy-Preserving Verifiable Inference for Large Language Models via Layerwise Zero-Knowledge Proofs",
      "authors": "Z. Wang",
      "year": 2026,
      "url": "https://arxiv.org/abs/2603.18046",
      "path": "/sources/wang-nanozk/"
    },
    {
      "id": "S-1101",
      "title": "Proving LLMs at Scale",
      "authors": "Attestable",
      "year": 2026,
      "url": "https://attestable.com/blog/proving-llms-scale",
      "path": "/sources/attestable-proving-llms-at-scale/"
    },
    {
      "id": "S-0024",
      "title": "Verifiable evaluations of machine learning models using zkSNARKs",
      "authors": "T. South et al.",
      "year": 2024,
      "url": "https://arxiv.org/abs/2402.02675",
      "path": "/sources/south-verifiable-evaluations-zksnarks/"
    },
    {
      "id": "S-0070",
      "title": "Zkonduit EZKL Security Assessment",
      "authors": "F. Casal et al.",
      "year": 2025,
      "url": "https://github.com/trailofbits/publications/blob/master/reviews/2025-03-zkonduit-ezkl-securityreview.pdf",
      "path": "/sources/trailofbits-ezkl-security-assessment/"
    },
    {
      "id": "S-1807",
      "title": "DeepProve-1: The First zkML System to Prove a Full LLM Inference",
      "authors": "Lagrange Labs",
      "year": 2025,
      "url": "https://lagrange.dev/blog/deepprove-1",
      "path": "/sources/lagrange-deepprove-1/"
    },
    {
      "id": "S-1808",
      "title": "Lagrange-Labs/deep-prove (GitHub repository)",
      "authors": "Lagrange Labs",
      "year": 2026,
      "url": "https://github.com/Lagrange-Labs/deep-prove",
      "path": "/sources/lagrange-deep-prove-code/"
    },
    {
      "id": "S-1112",
      "title": "Hollow-LLM Attack: Computationally Trivial Weights in Zero-Knowledge Verification of LLM Inference",
      "authors": "C. Gong et al.",
      "year": 2026,
      "url": "https://arxiv.org/abs/2607.28884",
      "path": "/sources/gong-hollow-llm-attack/"
    },
    {
      "id": "S-0018",
      "title": "A System Overview for Near-Term, Low-Trust AI Compute Verification",
      "authors": "N. Cankaya",
      "year": 2026,
      "url": "https://intelligence.org/wp-content/uploads/2026/06/A-system-overview-for-near-term-low-trust-AI-compute-verification.pdf",
      "path": "/sources/cankaya-system-overview-low-trust-compute-verification/"
    },
    {
      "id": "S-1102",
      "title": "Pacing AI Requires Proof",
      "authors": "Attestable",
      "year": 2026,
      "url": "https://attestable.com/blog/pacing-ai-requires-proof",
      "path": "/sources/attestable-pacing-ai-requires-proof/"
    },
    {
      "id": "S-0038",
      "title": "Suppressing Side Channels in an Untrusted Data Center via Retrofitted Defenses",
      "authors": "N. Cankaya",
      "year": 2026,
      "url": "https://techgov.intelligence.org/blog/suppressing-side-channels-in-an-untrusted-data-center-via-retrofitted-defenses",
      "path": "/sources/cankaya-suppressing-side-channels/"
    },
    {
      "id": "S-0067",
      "title": "Verification Plan",
      "authors": "R. Dean",
      "year": 2026,
      "url": "https://ai-2040.com/supplements/verification-plan",
      "path": "/sources/dean-verification-plan/"
    },
    {
      "id": "S-1301",
      "title": "Traffic Shaping for Workload Classification",
      "authors": "Lucid Computing",
      "year": 2026,
      "url": "https://lucidcomputing.substack.com/p/traffic-shaping-for-workload-classification",
      "path": "/sources/lucid-traffic-shaping-workload-classification/"
    },
    {
      "id": "S-3220",
      "title": "De-risking Interconnect Limits for AI Verification",
      "authors": "A. Scher et al.",
      "year": 2026,
      "url": "https://techgov.intelligence.org/blog/de-risking-interconnect-limits-for-ai-verification",
      "path": "/sources/scher-derisking-interconnect-limits/"
    },
    {
      "id": "S-1313",
      "title": "The Tray as a Bandwidth Boundary",
      "authors": "Amodo Design",
      "year": 2026,
      "url": "https://amododesign.com/notes/2026-03-16-dpu-bandwidth-limiter/",
      "path": "/sources/amodo-tray-bandwidth-boundary/"
    },
    {
      "id": "S-1314",
      "title": "DiLoCo: Distributed Low-Communication Training of Language Models",
      "authors": "A. Douillard et al.",
      "year": 2024,
      "url": "https://arxiv.org/abs/2311.08105",
      "path": "/sources/douillard-diloco/"
    },
    {
      "id": "S-0060",
      "title": "Does Distributed Training Undermine Compute Governance?",
      "authors": "R. Rahman",
      "year": 2026,
      "url": "https://arxiv.org/abs/2605.29359",
      "path": "/sources/rahman-distributed-training-compute-governance/"
    }
  ]
}