Raw and compressed payload realizations
Raw mode sends the semantic commitments themselves. Compressed mode binds those same commitments to smaller public payloads through additional private digits and ring equations. Both modes preserve the four semantic relation families.
This chapter explains which witness values, public targets, and physical rows each payload mode needs. A physical row is one coordinate equation in its stated ring. We first compare the two payloads, then derive the compression chains that connect them to the semantic commitments.
Compression here concerns public commitment payloads, not the complete next-level witness. Smaller payloads require additional private digits to prove their compression chains. The complete recursive witness also includes response, opening, and inner-commitment digits, plus any quotients required by the relation mode. A shorter folded response therefore does not guarantee a smaller complete witness; the root may expand it while reducing the relations to one recursive witness opening claim.
The output is a set of ring equations. Checking ring relations over a field explains the next step: use either quotient lifting or quotient-free checking to turn those equations into field claims for Stage 2. The opening method remains a separate choice. It determines the partial-evaluation geometry in either payload mode.
Contents
- From semantic relations to physical realizations
- Commitment compression realization
- From physical rows to field checks
- The scalar opening claim is a method-dependent virtual row
- Code reference
From semantic relations to physical realizations
The four relations derived on the previous page are semantic: they state which algebraic constraints a valid fold must satisfy, without prescribing which commitment values are sent in the proof. A physical realization turns those constraints into the native-ring matrix equations used by a particular payload mode. It determines the public payload, any additional compression witness, and the right-hand side of each equation.
When these equations are assembled as a matrix, each coordinate equation is a physical row. For example, the vector equation contributes physical rows, one for each coordinate of . A physical row is therefore an individual native-ring equation implementing a semantic relation, not a new semantic claim.
Only the two commitment relations depend on the payload-mode choice. Their semantic values are
The fold-evaluation and inner-commitment relations have the same physical form in raw and compressed payload modes. Their form may still differ between the two opening methods.
Raw realization
In raw mode, the public payload is the semantic commitment. The prover computes and and transmits their complete ring vectors. They appear directly as the right-hand sides of the ordinary and rows:
The logical witness contains only the three segments already used by the four semantic relations:
For the basic EvaluationTrace geometry, writing the four row families as one
conceptual matrix gives
Let , , and denote the row counts of , , and . In that one-group layout, the raw realization has physical rows:
| Physical rows | Count | Meaning | Right-hand side |
|---|---|---|---|
consistency | Equation (12a) | ||
| rows | Equation (13) | ||
| rows | Equation (14) | ||
| rows | Equation (15) |
Consequently,
The verifier therefore receives the values defined by the semantic relations and places them directly in the raw relation instance. No compression digits or rows are present. The matrix need not be materialized densely: its entries are generated from the fold challenges, opening weights, gadget weights, and the setup matrices , , and .
With SubringCoefficientPacking, raw mode still transmits the same semantic
and commitments, but Equation (12b) is realized by
the packed coordinate-plane
relation.
It therefore does not reuse the single ordinary consistency row counted in this example.
Equation (17) is still a relation in the native cyclotomic ring; it is not yet the exact field identity consumed by sumcheck. The next chapter, Checking ring relations over a field, explains the two schedule-selected ways to obtain that field claim. We first finish defining the physical rows for compressed payloads.
Compressed realization
In compressed mode, the prover still computes the same semantic commitments, but does not transmit or . Instead, it decomposes each one, recommits the resulting blocks through a two-map chain, and sends one fixed 128-byte terminal payload for each chain. In the illustrative q128 example developed below, this replaces a 1024-byte semantic outer commitment by the 128-byte payload . The two commitment relations follow parallel chains:
The prover stores the two layers of and compression digits as additional private witness coordinates. These arrows are not a decoding procedure: the verifier does not recover from or from . Instead, additional equations, represented by physical rows, prove that the hidden semantic commitments recompose from the first digit layer and that the two compression maps lead to the transmitted terminal payloads. The and right-hand sides are therefore zero in compressed mode; and appear only on the terminal and rows.
From the verifier's perspective, the schedule already determines the payload mode. For a raw level, it assembles the ordinary relation right-hand side from and . For a compressed level, it assembles the larger row layout from and and verifies the compression chains together with the ordinary relations. The proof does not carry a separate mode tag.
| View | Raw realization | Compressed realization |
|---|---|---|
| Public payload | ||
| Compression-digit witness | none | |
| right-hand sides | zero | |
| Additional compression rows | none | |
| What binds the payload | the ordinary commitment equations directly | the ordinary equations followed by the compression chains |
Planner-selected realization transition
Compression saves public payload bytes but adds digit witnesses, relation rows, and restricted range-check work. With quotient lifting, its additional rows also add quotient witnesses. The planner prices both sides of this tradeoff for the complete recursive schedule; it does not choose a mode from the payload size alone.
Commitment groups created separately before recursive proving—for example, groups later supplied as precommitted root inputs—always use compressed payloads and are not part of the recursive mode choice. The protocol also requires compressed payloads for the root fold and the first recursive fold, when that fold exists. Any later fold that consumes a setup prefix must likewise remain compressed. At a later level that does not consume a setup prefix, the planner may either continue the compressed prefix or begin a raw suffix. Once it selects raw mode, every later recursive level remains raw:
The prefix length is schedule-dependent. Some current generated schedules cut over immediately after the required first recursive fold, whereas deeper recursive schedules keep several early recursive levels compressed. Thus "root and early folds are compressed" describes a planner-selected prefix, not a globally fixed transition point.
The next section expands the two commitment relations into their compressed physical rows.
Commitment compression realization
The outer-commitment and opening-commitment semantic relations, Equations (14) and (15), have the same structure: a commitment matrix maps a short witness to a semantic commitment consisting of a vector of ring elements. The raw realization places that complete commitment in the proof. The compressed realization instead recommits it using rank-one matrices over progressively smaller rings, producing a commitment chain whose terminal payload is exactly 128 bytes.
Why recommit?
The serialized size of an uncompressed semantic outer commitment is
where is the ring dimension and is the canonical byte width of one field element. In the q128 profile, one field element occupies 16 bytes. For a simple rank-one example, take and . Its uncompressed payload then occupies
The goal of commitment compression is to recommit this value in a smaller ring and repeat the process until the public payload has the desired size. This reduces the bytes occupied by the public commitment payload, but it also introduces new witness coordinates and relation rows. The planner accounts for both effects when it chooses between compressed and raw recursive payloads.
One recommitment step
At a high level, one step does not map a large-ring element directly into a smaller quotient ring. It first applies the balanced decomposition introduced above with base , whose digit range is . It then groups those digits into short coefficient blocks, each representing an element of the smaller ring. A rank-one setup matrix over that same smaller ring commits the resulting vector to one new ring element. The recomposition identity is the bridge from these smaller-ring blocks back to the original large-ring element.
For intuition, first suppose that the semantic commitment is a single ring element
The first operation is a coefficientwise balanced base- decomposition. For each , choose digits such that
where is the field-modulus bit width. Put the -th digit of every coefficient into one digit polynomial
Then
so every coefficient of every decomposed polynomial is either or .
The second operation repacks these digits into a smaller ring. Choose and divide the length- coefficient vector of each into consecutive blocks of length . The -th block becomes the coefficient vector of
Equivalently, if denotes the canonical degree-less-than- representative of this small-ring element, then
Collect all of the small-ring blocks into a vector
Akita uses bit-major order: all coefficient blocks for one bit position are contiguous before the blocks for the next bit position. In this unpadded single-element example, the vector has width over .
The fixed recomposition map restores both the coefficient positions and the powers of two:
This is the bridge between and . It is a fixed -linear coefficient-recomposition map, not a ring embedding or a homomorphism between the two quotient rings.
Finally, a rank-one matrix over the smaller ring recommits the packed blocks:
Together, the two equalities
link the original commitment in to a new commitment in through the shared digit vector . Conceptually, one recommitment step therefore performs three operations: decompose the source coefficients, repack the digits as small-ring elements, and commit those elements to one small-ring image.
The two-map commitment chains
The smaller ring cannot be chosen solely to minimize the payload. Decreasing its dimension makes the output shorter, but it also increases the number of input columns presented to the rank-one compression matrix. The pair consisting of the ring dimension and input width must remain within Akita's Module-SIS security bounds.
The current protocol therefore uses a fixed, profile-specific ladder of exactly two certified rank-one maps. The ladder accepts a complete source of at most 8 KiB and terminates at exactly 128 bytes.
For the semantic commitment , flatten its ring coordinates into field coefficients. Balanced base- decomposition produces digits in . Pack these digits in bit-major order into elements of , filling any unused coefficients of the last element with zero. These smaller-ring elements form . The first rank-one map commits this vector to ; the second layer repeats the same decomposition, repacking, and recommitment at dimension :
From the prover's perspective, the chain consists of five concrete steps:
- Compute the semantic commitment
- Decompose and repack into so that
- Apply the first rank-one map:
- Decompose and repack into so that
- Apply the terminal rank-one map:
Only is transmitted. The semantic commitment is computed but omitted from the compressed payload. The intermediate image is also not transmitted and is not stored as an independent witness segment; the two digit vectors and are the additional witness material. The physical relations in the next subsection bind this private chain all the way back to . The opening-side chain applies the same five steps to and terminates at .
The production compression dimensions are fixed by the modulus profile:
| Profile | First ring | First image | Terminal ring | Terminal payload |
|---|---|---|---|---|
| q128 | 256 bytes | 128 bytes | ||
| q64 | 256 bytes | 128 bytes | ||
| q32 | 256 bytes | 128 bytes |
For the q128 example above, the complete chain is
The widths count the small-ring elements needed to hold all balanced base- digits: and .
The schedule's payload mode determines whether these chains are present at a particular recursive level, according to the planner-selected transition described above.
Additional physical relations and witness
The equalities in a compression chain do not all live in the same ring. Each physical row is interpreted in the native ring displayed beside it, and each is the fixed linear coefficient-recomposition map defined above. Suppressing component indices inside that map, the outer chain gives three physical relation equations. Their labels extend Equation (14) to emphasize that the entire chain realizes that one semantic commitment relation:
The first equation is the compressed realization of the existing rows; the latter two add the rank-one and rows. The semantic opening commitment follows the same construction, with an chain:
For the basic one-group EvaluationTrace case, compressed mode therefore has
physical rows:
| Physical rows | Count | Right-hand side |
|---|---|---|
consistency | ||
For packing, the payload-mode suffix is identical, but the method-specific
coordinate-plane relations replace the ordinary consistency row just as in
raw mode.
Before adding quotient digits and alignment, the logical compressed witness has the following layer order:
The restricted check on the compression digits is described with the Stage 2 sumcheck. It is separate from the physical ring equations above.
From physical rows to field checks
Both payload modes now supply physical ring equations. Raw mode uses the public and as targets. Compressed mode uses zero targets for the intermediate relations and the public for the final compression rows. Each row keeps the native ring defined above.
The next step is to check those equations over a field. The schedule selects one of two methods:
- Quotient lifting adds private quotient digits that record reduction by each row's ring modulus.
- Reduced evaluation includes that reduction in public coefficient weights and adds no quotient digits.
The next chapter derives both methods from one ring equation. Only then does it combine them with raw and compressed payloads to give the complete witness layouts. This keeps the payload choice separate from the method used to check its rows.
The scalar opening claim is a method-dependent virtual row
Two different statements involve , and they should not be conflated:
| Statement | Form | Physical ring row? | Ring-switch quotient? |
|---|---|---|---|
| opening commitment | yes | only in QuotientLift | |
| evaluation correctness | no | no |
The scheduled opening method prepares the second statement. EvaluationTrace
uses the trace weight derived in Field-to-ring evaluation
reduction.
SubringCoefficientPacking uses the direct packed scalar
row.
The direct scalar opening in either method reuses the same row-batching
challenge . It is absent from the physical ring-row layout and its
public right-hand side. Thus it needs no ring-switch quotient in either
relation mode. Coefficient packing also has a physical source-consistency
relation, derived in Root fold and ring
switching.
After the physical ring rows become field claims, Stage 2 fuses them with this scalar opening and the range-image binding in one sumcheck.
Code reference
The implementation follows the same semantic relations in both payload modes, then selects different public right-hand sides and witness suffixes. The functions below also support multiple groups, chunks, and role-specific ring dimensions; in the basic setting they reduce to the construction on this page.
Prover flow
- Create and retain the commitment-side material. The standalone/root
commitment paths in
commitment APIcompute the semantic outer commitment and compress it. The recursivecommit_witnesscomputes the same semantic value, then follows the payload mode selected for that level. A raw recursive level exposes directly. A compressed commitment passes it toexecute_compression_chains, exposes only , and retains the two packed digit layers in the commitment hint. It retains their quotient rows when the consuming fold uses quotient lifting. - Build the fold-side objects.
RingRelationProver::preparecoordinates public opening payloads and fold challenges. The CPU backend decomposes the position-folded values into , computes , and retains the accepted response behind a fold handle. In compressed mode,materialize_compression_witnesscombines the retained material with a newly computed chain for , producing the terminal payload and storing both chains asCompressionWitnessMaterialization. - Assemble the mode-selected public statement. Raw mode calls
assemble_relation_rhswith and . Compressed mode instead callsassemble_compressed_relation_rhswith and . The latter emits zero ordinary and first-map right-hand sides, followed by the terminal payloads on the rows. - Construct the committed relation witness.
cpu_recursive_witness_buildderives from the semantic inner rows stored in the hint, and emits , , and . In quotient-lift mode it invokescompute_multi_group_relation_quotientto compute one quotient in every physical row's native ring. In compressed mode it also emits the two digit layers. In reduced mode it dispatches before quotient construction and uses negacyclic-only D and compression products.WitnessLayoutdetermines which ranges and alignment are live. - Prepare the Stage 2 relation evaluators. Quotient lifting uses the
factored
build_relation_lane_weightspath for theconsistency, , , and contributions. It accumulates one weight per relation coefficient lane; the shared low alpha factor stays implicit. Reduced evaluation builds one dense Stage-2 weight oracle instead. Both paths take their relation addresses from the semantic compiler inopaque/relation_weights/compiler.rs. Compressed mode additionally usesbuild_compression_relation_weightsor its reduced counterpart for the recomposition, , and mode-selected compression-quotient contributions, whileNegativeBinarySupportrestricts the separate check to the compression-digit spans. The scheduled opening method contributes separate -weighted Stage-2 terms after the payload-mode relation terms.
The mode split can be summarized as follows:
semantic inner rows
|
v
derive t_hat and u = B t_hat
|
+---------------- raw ----------------> public u
|
`-- compressed --> F chain ----------> public p_F
|
`--> retained F digits
position-folded values E_b
|
v
e_hat and v_D = D e_hat
|
+---------------- raw ----------------> public v_D
|
`-- compressed --> H chain ----------> public p_H
raw: assemble_relation_rhs(u, v_D)
compressed: assemble_compressed_relation_rhs(p_F, p_H)
|
v
RingRelationInstance + prover witness
|
v
cpu_recursive_witness_build
| |
quotient lift reduced evaluation
add R digits no R digits
|
v
factored or dense relation evaluator
+ optional compression evaluator
+ optional {-1, 0} support evaluator
+ method-selected opening terms
|
v
Stage 2
Public statement: RingRelationInstance
RingRelationInstance
is the common relation-statement carrier constructed independently by the
prover and verifier. Its public fields are verifier-reconstructible. In
compressed mode, private commitment intermediates remain inside the CPU backend:
| Field or accessor | Mathematical meaning |
|---|---|
group_ambient_a_challenges(0) | fold challenges in the A ring; embedded from the challenge subring for packing |
group_ring_multiplier_point(0) | ring multipliers used by the physical consistency row |
opening_batch() | authenticated group and claim geometry |
role_dims() | native ring dimensions |
rhs() in raw mode | in the basic setting |
rhs() in compressed mode | zero ordinary and first-map targets, followed by terminal targets |
Raw replay includes the public in rhs(). Compressed replay
uses instead; the privately computed remains in the CPU
witness-build state and is not a field of the public relation instance.
Full opening points are not owned by RingRelationInstance. They are prepared
separately by the scheduled opening method. The verifier consumes evaluation
trace points through
evaluation_trace.rs
and coefficient-packing points through its compact packing relation path. Only
the projections needed by the physical consistency relation remain in this
instance.
CPU-private relation witness state
The CPU consumer's private
RingRelationWitness
is the aggregate used while constructing an opaque CpuWitnessHandle; protocol
orchestration cannot inspect or transport it. In the basic setting, its private
groups vector contains one RingRelationGroupWitness:
| Field | Mathematical meaning |
|---|---|
fold | accepted CPU fold handle retaining the centered response coefficients and its challenges |
folded_opening | method-selected opening state: the rings for evaluation trace, or the packed fold product for coefficient packing |
e_hat | opening digits |
inner_relation | retained semantic inner rows used to reconstruct |
role_dims | native A, B, and D dimensions for the group |
The
PortableCommitmentHandle
does not store a materialized or a separate copy of
. cpu_recursive_witness_build derives from its semantic
inner rows. At the aggregate level, RingRelationWitness::compression holds
the optional materialized chains used by this fold.
RingRelationWitness::d_quotients records whether the shared D relation has
quotient data. Quotient-lift assembly includes ordinary and compression
quotient digits. Reduced evaluation places only the ordinary and optional
compression digits. WitnessLayout defines their exact ranges.
Verifier reconstruction
The verifier does not receive a serialized RingRelationInstance or any
RingRelationWitness. In
verify_fold,
it reconstructs the public instance from the schedule-selected payload and
transcript data, then calls
ring_switch_verifier:
schedule-selected payload mode
|
+------+------+
| |
raw compressed
u, v_D p_F, p_H
| |
assemble_relation_rhs
assemble_compressed_relation_rhs
| |
+------+------+
|
RingRelationInstance::new
|
authenticated relation mode
| |
quotient lift reduced evaluation
quotient tail terminal residue kernels
common alpha fused direct setup scan
| |
+----------+----------+
|
optional compact F/H evaluator
+ optional {-1, 0} support evaluator
|
Stage 2 verifier
Compressed replay deliberately sets RingRelationInstance::v() to an empty
carrier: the zero rows and terminal row are already encoded
in the compressed right-hand side. The separate method-selected opening
preparation retains the full point data needed to bind the claimed evaluation.
Opening points and digit-innermost
layout describes the canonical
physical source and witness order.