---
title: "Cross-table lookup and multiplicity bugs"
description: "In multi-table designs — zkVM chips, bus architectures — soundness depends on sends and receives balancing across tables and on multiplicity columns being…"
type: "failure-mode"
url: "https://zkpick.com/audit/failure-modes/cross-table-lookup-and-multiplicity-bugs/"
section: "03 Auditing a ZK protocol"
authors:
  - "MarketComp"
publisher: "MarketComp"
version: "1.3"
updated: "2026-09-12"
license: "CC-BY-4.0"
json: "https://zkpick.com/data/audit/failure-modes/cross-table-lookup-and-multiplicity-bugs.json"
---

*By MarketComp. Updated 2026-09-12. Version 1.3. CC BY 4.0.*

# Cross-table lookup and multiplicity bugs

In multi-table designs — zkVM chips, bus architectures — soundness depends on sends and receives balancing across tables and on multiplicity columns being correctly constrained. An unbalanced bus, an unconstrained multiplicity, or a permutation argument over the wrong tuple silently admits executions that never happened. This is a dominant recurring class in zkVM codebases and has no analogue in single-circuit review.

**Mitigation:** Review the bus or cross-table argument as its own artefact: enumerate every send and receive, check they balance, and confirm multiplicity columns are range-constrained and cannot be chosen freely by the prover.
