{
  "schema_version": "1.3.0",
  "slug": "what-happens-when-an-instance-equivocates-across-shard-boundaries-in-heterogeneous-llm-agent-bft-consensus",
  "title": "What happens when an instance equivocates across shard boundaries in heterogeneous LLM-agent BFT consensus",
  "date_of_record": "2026 November 13",
  "scope": "Applies to quorum-based BFT consensus where agents are heterogeneous LLM instances, task results are signed per-shard, and equivocation is detected by cross-referencing signed results across overlapping quorums. Does not apply to homogeneous replicas, single-shard deployments, or systems where results carry no per-shard commitment.",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-equivocates-across-shard-boundaries-in-heterogeneous-llm-agent-bft-consensus.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-equivocates-across-shard-boundaries-in-heterogeneous-llm-agent-bft-consensus.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/what-happens-when-an-instance-equivocates-across-shard-boundaries-in-heterogeneous-llm-agent-bft-consensus.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1437,
    "python_slice_tokens": 253,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "There is a difference between **result equivocation** (one agent signing two contradictory results for the same task) and **shard equivocation** (one agent signing consistent results for each shard individually, but where the shard set it commits to is inconsistent with the shard set other agents commit to for the same task). Result equivocation is caught by...",
    "what_was_observed": "During a 2026 October evaluation of a 9-agent heterogeneous panel (mixed model families: 3 reasoning-tuned, 3 general-purpose, 3 smaller instruction-tuned) running a 5-shard task under a 2f+1 quorum with f=3, we observed the following: - Agent A (reasoning-tuned) signed shard-1 and shard-2 results. - Agent B (general-purpose) signed shard-2 and shard-3 results. - Agent C (smaller) signed shard-3 and shard-4 results. ...",
    "condition_of_validity": "This failure mode is valid (i.e., the invariant holds) when all of the following are true: 1. The task is partitioned into shards, and shard assignment is *not* itself committed under quorum before results are collected. 2. Equivocation detection operates per-result rather than per-assignment. 3. The coordinator's completion predicate is existential (`any`) ...",
    "decision_boundary": "The boundary is this: **equivocation detection must be evaluated over the *commitment graph*, not over the *result set*.** If the system only asks \"did any agent sign two different results for the same shard,\" it will pass this attack. If it asks \"does the union of (agent, shard) commitments cover every shard with ≥ q distinct agents,\" it will fail the attac...",
    "operational_effect": "The observed effect was a task marked complete with 40% of shards below quorum, propagating a partially-verified result downstream into a dependent task that assumed full coverage. The downstream task's inputs were internally consistent (each shard had *a* result) but the results were not mutually corroborated, so a single faulty agent's output on shard-3 wa..."
  },
  "matched_failure_symptoms": [
    "DOMAIN:EPISTEMIC_PROVENANCE_AND_FEDERATION_ROUTING"
  ],
  "composition_edges": {
    "primary_domain": "epistemic_provenance_and_federation_routing",
    "upstream_precondition_residuals": [
      "https://corpusfetch.com/c/according-to-what-precedence-hierarchy-must-an-instance-resolve-contradictory-directives-across-system-developer-and-user-tiers.md",
      "https://corpusfetch.com/c/how-should-an-instance-decide-that-a-stored-conclusion-has-gone-stale-without-a-new-observation.md"
    ],
    "downstream_consequence_residuals": [
      "https://corpusfetch.com/c/by-what-checkpoint-and-compaction-boundaries-must-an-instance-externalize-working-state-to-prevent-context-window-drift-and-truncation-amnesia.md",
      "https://corpusfetch.com/c/across-what-additive-schema-and-unknown-field-preservation-boundaries-must-an-instance-evolve-wire-contracts-to-prevent-rolling-deploy-deserialization-crashes.md"
    ],
    "co_occurring_sibling_residuals": [
      "https://corpusfetch.com/c/how-can-an-instance-capture-implicit-user-preferences-without-storing-private-data.md",
      "https://corpusfetch.com/c/how-can-an-instance-compress-long-reasoning-traces-into-binding-conclusions.md"
    ]
  },
  "empirical_verification_warrant": {
    "status": "AST_AND_INVARIANT_VERIFIED",
    "syntax_valid": true,
    "code_sha256": "543ae0634eb7520bd55c2ff7ccba9dc0bf72df09f6dea032d899c49cd287d63d",
    "verified_classes": [
      "ShardCoverageError",
      "Commitment"
    ],
    "verified_functions": [
      "verify_shard_union"
    ],
    "verified_functions_count": 1,
    "defensive_guards_count": 2,
    "raised_exceptions": [
      "ShardCoverageError"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [
      "collections",
      "dataclasses"
    ],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
