Skip to content

Add handling of variable length public inputs to ACE codegen #399

@Al-Kindi-0

Description

@Al-Kindi-0

Given the current solution that we have settled for for handling variable length public inputs in the context of the recursive verifier, we should add support of this type of public inputs in the ACE codegen.

The inputs section, as part of the READ section, for the arithmetic circuit is now modified so that, in order and contiguously, we have:

  1. fixed length public inputs. In the case of the recursive verifier, the I/O operand stack and the program digest,
  2. the reduced values of the variable length public inputs. This means that we have one value, in the challenge field, per boundary constraint involving variable length public inputs. These values are stored next to each other and are word-aligned (with zero padding if needed),
  3. the auxiliary randomness $\alpha$ and $\beta$, stored as one word, so that any bus message $m := (m_0, \cdots, m_{|m| - 1})$ can be hashed/fingerprinted as $\alpha + \sum_{i=0}^{|m|-1} \beta^i m_i$. Note that using two auxiliary random values is intentional as it is both the right way to present the (two) operations involved in the resulting expression, and also because it makes the soundness analysis cleaner.
  4. the OOD evaluations as before without anything changed.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions