Skip to content
This repository was archived by the owner on Sep 9, 2025. It is now read-only.
This repository was archived by the owner on Sep 9, 2025. It is now read-only.

Reduce verifier computation in ring switch ind evaluation #41

@ghost

Description

This is a verifier-side performance optimization affecting the binius_core::ring_switch and binius_core::piop modules.

When proving a constraint system, the sequence of reductions constructs one ring switch indicator polynomial for each tower-height / n_vars pair, which can be shared among all committed multilinear oracles matching that specification. However, because the row-batching operation in ring switching doesn't commute with taking a batch linear combination of tensor algebra elements, the ring-switch indicators must be scaled with a random scaling factor before row-batching. The way that the modules are decoupled, the ring_switch module provides descriptions of the scaled ring switch indicators to the piop module as MultivariatePoly trait objects. When the verifier evaluates all of the scaled ring switch indicators, it duplicates the computation of the unscaled ring switch indicator, which is relatively expensive. This adds significant cost to the verifier when there are lots of multilinear oracles.

To fix this, the ring switch module should retain and convey the structure of which transparent polynomials are different scalings of the same underlying ring switch indicator, and somehow provide a way for the piop module to verify them more efficiently in a batch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions