LatticeFold+ Batch Verification (deprecated)¶
Status: deprecated
LatticeFold+ batch verification (OP_CHECKFOLDPROOF, witness v3) is deprecated. The opcode remains in the tree behind a deployment that does not activate on any network. It was reviewed in the April 2026 external extension audit. Its successor for confidential assets and succinct proofs is SoquObscura, a lattice-based confidential-asset system in research, whose deployment is not scheduled on any network and which is subject to the second external audit phase before any activation. The rest of this page is a historical record of the research direction and describes nothing that can be built on.
LatticeFold+ was a recursive proof composition scheme that aimed to compress multiple Dilithium signature verifications into a single constant-size proof. The goal was to let a verifier check a large batch of signatures with a single proof rather than checking each signature individually. Patent pending, Soqucoin Labs Inc. (SOQ-P004).
The problem it targeted¶
Even with PAT's compact commitment, full verification still requires checking each individual Dilithium signature (O(n) work). For blocks with thousands of transactions, that is a bottleneck. LatticeFold+ explored whether recursive lattice folding could reduce the verifier's work to O(1).
How the scheme worked¶
LatticeFold+ used structured lattice folding to recursively combine verification equations:
flowchart TD
A["Sig 1 + Sig 2"] --> B["Fold to Proof 1"]
C["Sig 3 + Sig 4"] --> D["Fold to Proof 2"]
B --> E["Fold to Proof 3"]
D --> E
E --> F["Final proof (constant size)"]
- Pair signatures and fold their verification equations
- Recursively fold intermediate proofs
- Produce a single constant-size proof
- The verifier checks one proof instead of N signatures
The verification hardness rested on Module-LWE, the same assumption family as ML-DSA-44.
Research targets¶
The figures below were design targets from the research prototype, not measured production results. No prover was ever shipped, so they are goals rather than guarantees.
| Metric | Design target |
|---|---|
| Batch size | Up to 512 signatures |
| Proof size | Constant (independent of batch size) |
| Hardness | Module-LWE (same family as ML-DSA-44) |
Why it was not shipped¶
A batch-verification scheme is only safe to activate once a sound prover exists and the verifier has been audited to reject invalid proofs. Neither condition was met, and the deployment was deprecated. SoquObscura supersedes it for confidential assets and succinct proofs.
Relationship to PAT¶
PAT (shipped and active from genesis) and LatticeFold+ (deprecated) targeted different halves of the same problem:
| PAT | LatticeFold+ | |
|---|---|---|
| What it does | Commits to N signatures | Aimed to verify N signatures in O(1) |
| Status | Active from genesis | Deprecated, not active |
| Consensus surface | Block-level coinbase attestation (OP_CHECKPATAGG retained, non-load-bearing) |
OP_CHECKFOLDPROOF (v3), deprecated; the deployment does not activate on any network |
For the current, active batch-attestation mechanism, see PAT.