Repository navigation
[0.32][ZK/P2] Bind bounded multi-Cell transitions to complete protected state sets #44
Description
Completion evidence — 2026-10-12
Implemented in signed commit 98375e0a, published on 0.32.
Bounded 1–4-counter complete-set membership, independently owned successors and one unchanged exact proof per counter are implemented. Native/CCC/generated-SDK bytes agree; the standalone checker rejects 29 shared rebound mutations. Min/representative/max all-group execution, explicit maxima-plus-one and intended-boundary negatives, actual node conflicting-spend/replay/rebuild recovery, per-VM resource accounting and two-build lifecycle reproducibility are retained.
The final 1/2/4-Cell all-group positive/negative replay passed from a clean detached checkout of signed commit 98375e0a (tracked tree clean before and after). All 35 source-capsule entries match that commit, and the copied lifecycle/child artifacts match the retained executed artifacts byte-for-byte. The replay, full fixtures and log are archived in signed evidence commit 80d2a91d.
Acceptance record · exact evidence index.
The maintainer's explicit “不要跑CI和gates” instruction supersedes the original gate-execution acceptance item for this work. No CI/gates ran and no gate success is claimed. Setup is public deterministic test material; this is not production setup admission or public deployment.
Outcome and priority
Scoped follow-up for #42 P2, in the 0.32 workstream. Implement one versioned, explicitly bounded multi-Cell ZK transition using the existing lifecycle and exact-verifier boundaries. Keep the admitted single-state profile and its receipts intact.
Priority: after #42's complete P1 reference application establishes the statement/build/prove/sign/recovery contract. Implementer: Codex, with maintainer ownership. Boundary review disposition: Codex implementation and contract/mutation review, recorded with the evidence; no independent human review is claimed. No external collaborator is assigned work.
Duplicate check and dependencies
Reviewed the repository's open and closed issues. #7/#8 own the existing bounded consumption and output-correspondence primitives; #9/#10 own exact transaction composition and closed roles. #22 admitted the first exact ZK profile and explicitly leaves broader multi-Cell work to #42. This issue adds the ZK statement/set-completeness contract, rather than reopening those completed features. #28/#29 are not prerequisites: use exact deployments and closed roles first. The finance program #43 remains separate.
Prerequisites satisfied: #42 P1 is closed with executable evidence; the counter-set contract fixed application shape, canonical statement and numeric bounds before implementation/final measurements. This issue retains its separate acceptance scope.
Required contract
- Choose one application and explicit minimum/maximum protected-input and successor counts. Specify zero-input behavior; do not invent a generic unbounded set.
- Fix group-relative versus transaction-wide sources, canonical ordering, complete input selection, distinct identities and one-to-one successor correspondence. Explain which unrelated fee/change Cells are excluded from the protected state set while still covered by the raw-transaction commitment.
- Derive the complete protected set on chain. A witness list must not be able to omit a real protected input or insert an unrelated Cell. Reuse [Candidate][Consensus runtime] Implement executable bounded Cell-group consumption #7/[Candidate][Consensus runtime] Implement executable bounded output-plan correspondence #8 ownership rules; foreign observation grants no lifecycle authority.
- Specify replay and concurrent-spend behavior. If nullifiers are selected, define where uniqueness is enforced and how the state layout affects contention; otherwise explicitly exclude nullifier claims.
- Version every changed statement/codec/profile boundary. Retain exact circuit, VK, verifier, deployment and transaction identities, and generated-builder/adapter byte parity. Ordinary compilation must not run a prover or load proving keys.
Acceptance
- A reviewed contract fixes the application, sources, counts, ordering, ownership, replay and numeric resource ceilings before final measurement.
- Clean-checkout positive executions cover minimum, representative and maximum admitted sets, with all required Script groups accepting the same transaction.
- Insertion, omission, duplicate identity/index, substituted Cell, reordered protected sets, unmatched successors and fee/change confusion have specified executable outcomes. Negatives must reach the intended boundary.
- Same-proof replay and concurrent conflicting transactions reject under the specified application policy, with rebuild/reprove behavior exercised.
- Independent checker mutations bind selection/count/correspondence and the actual public-input derivation; compiler/checker/builder/editor/docs agree wherever the surface changes.
- Per-case cycles, memory/stack, witness bytes, full transaction bytes and deployed artifacts are published at the frozen maxima; unavailable measurements remain explicit.
- Validation disposition: the maintainer explicitly instructed no CI or gates on 2026-10-12. Direct focused VM/checker/CCC/node/resource/reproducibility/clippy checks passed on identified source; unified gates were not run or claimed. No release or deployment is authorized.
The starting implementation is the exact transition adapter and the private counter application. Their existing single-state bounds are not multi-Cell acceptance evidence.
Activity
feat(package): bind source versions into checked code policies
feat(checker): bind source policies to direct dependency snapshots
feat(checker): bind complete direct Type-group transaction snapshots
a19q3 commentedon Oct 12, 2026
Completion evidence — 2026-10-12
Implemented in signed commit
98375e0a, published on0.32.Bounded 1–4-counter complete-set membership, independently owned successors and one unchanged exact proof per counter are implemented. Native/CCC/generated-SDK bytes agree; the standalone checker rejects 29 shared rebound mutations. Min/representative/max all-group execution, explicit maxima-plus-one and intended-boundary negatives, actual node conflicting-spend/replay/rebuild recovery, per-VM resource accounting and two-build lifecycle reproducibility are retained.
The final 1/2/4-Cell all-group positive/negative replay passed from a clean detached checkout of signed commit
98375e0a(tracked tree clean before and after). All 35 source-capsule entries match that commit, and the copied lifecycle/child artifacts match the retained executed artifacts byte-for-byte. The replay, full fixtures and log are archived in signed evidence commit80d2a91d.Acceptance record · exact evidence index.
The maintainer's explicit “不要跑CI和gates” instruction supersedes the original gate-execution acceptance item for this work. No CI/gates ran and no gate success is claimed. Setup is public deterministic test material; this is not production setup admission or public deployment.
The acceptance checklist now records the evidence and the explicit no-gates validation disposition.