{
  "tool_id": "art-494-icm-quorum-forgery-classifier",
  "tool_version": "1.0.0",
  "display_name": "ICM Quorum Forgery Classifier",
  "mcp_name": "check_icm_quorum_forgery_risk",
  "mandate_type": "analytics_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-494-icm-quorum-forgery-classifier.html",
  "description": "Computes the smallest set of a source Avalanche L1's validators that could jointly sign an Interchain Messaging (ICM / Avalanche Warp Messaging) message the receiving L1 would accept: sorts the caller-transcribed stake weights descending, prefix-sums them, and returns the count at which the receiving chain's accepted stake-weight quorum is first satisfied, alongside that group's cumulative share, an HHI-style stake concentration figure, and a verdict against a caller-declared minimum-colluding floor. Quorum semantics follow avalanchego's Warp signature check (signed weight times 100 greater than or equal to total weight times the quorum percentage), evaluated cross-multiplied so no division rounding moves the boundary. The accepted quorum is a caller input with no baked-in default threshold, because it is the receiving chain's own acceptance policy for that source rather than a statutory number, following the precedent art-445 sets by refusing to bake in a concentration limit. Avalanche finality is sub-second with no reorg window, so the challenge-window arithmetic that applies to optimistic bridges does not transfer; this node picks up where that risk relocates, namely who signed the cross-chain message. Borrows only the art-445 helper pattern (fixed-point 2dp rounding, share-of-total, finite gate, NaN-safe coercion); art-445 computes top-N and per-sector rollups and does not compute a minimum-colluding set. Observes no chain: no RPC call and no P-Chain query, with the validator set transcribed by the caller as opaque identifiers. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-494-icm-quorum-forgery-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5d1204c5f516f5975687ac3d86c9f9325f1fbac2071cfebf14f55f33094d7c7f",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-31"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FYts+/eAlu1QE3ssKmU/JK4zHK2yfs4wmaHDUS1Q+40tJaK95kCK2EHa/oZ399U9KoJ4EHRCqtmym64jSj8z8QA/NNH/yfKXLgx0z6RuEodMvFj6NUyCSZwVQ1JoeqKDC19WE3O1gDk3XnLPGiHoZSct8z0cf4OaXQ13qEaO7lMmLKLlsjtk1BCMuXeB1Hl7qemsvuG6elfOYvEpT9O0lB0eApSUCzkxuugu6bBHOD2a6LjNpXLYv1tzhOmCrQB6KnEN0Ov5IEuKlSakVj5+qhCM/F7OYvcM0D3hyVzXKZAAH+yhDADiO6yDgD3BWWTlwAPb95oZiH29vi0wbcFyZg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5d1204c5f516f5975687ac3d86c9f9325f1fbac2071cfebf14f55f33094d7c7f",
      "output": {
        "colluding_share_pct": 77,
        "colluding_stake_weight": 7700,
        "meets_floor": false,
        "message_class": "token-transfer",
        "min_colluding_floor": 4,
        "min_colluding_validators": 3,
        "quorum_pct": 67,
        "quorum_pct_valid": true,
        "quorum_reachable": true,
        "rationale": [
          "The 3 largest of 7 transcribed validators hold 77 percent of stake, which satisfies the accepting quorum of 67 percent. That is the smallest group able to sign a message Source L1 Alpha could have the receiver accept.",
          "The declared floor requires at least 4 validators to be needed for quorum. Only 3 are needed."
        ],
        "source_l1_label": "Source L1 Alpha",
        "stake_hhi": 2524,
        "total_stake_weight": 10000,
        "total_validators": 7
      }
    }
  }
}
