Skip to main content
Version: v6 (Hypercube)

Main Trace Commitment

The computation trace consists of tables T1,,TT_1,\dots,T_\ell, which we also refer to as chips. Each table is associated with some operation (typically a RISC V instruction). Each table has a set of constraints associated with it, which are known as AIRs (Arithmetic Intermediate Representation). Every row in the table needs to satisfy the given set of constraints, till some cutoff point specified by the prover (for sake of padding). In addition, there are interactions (defined below) between the different tables which enable to check cross-table consistency.

To commit to the computation trace, the prover serializes all of the real data in the tables as one long array. It then chops the trace into equal size chunks, each of size 2log_stacking_height2^\mathrm{log\_stacking\_height}, where log_stacking_height\mathrm{log\_stacking\_height} is a parameter (typically 2121 or 2222) and encodes each chunk using the Reed-Solomon code (i.e. via an FFT). This is sent, as an oracle to the verifier. (We remark that the IOP is converted into a succinct argument, by committing to oracles as usual, by employing Merkle hashing.)

In addition, the prover reports the real height for the data in each table. The above commitment together with the table height data defined a trace. Later, in the Jagged PCS section we show how to decommit to claims about this trace.