`PublicParams` Struct
New Default Public Params
Let us consider the simple case presented in Quickstart
This is where the public parameters for bn256\grumpkin pairwise curves are created. All constants are taken by default, except for the main ones
ARITY
- Input and output size (z_in
,z_out
) for the corresponding step-circuitk_circuit_table_size
- the size of the table the circuit should use. It must start with 17, otherwise there is not enough table size for IVC needs. Otherwise determined by the logic of your `StepCircuit` trait.&commitment_key
- the key that will be used by the scheme to commit metadata. Its size strongly depends on the step-circuit, its calculation is not trivial. It is recommended to choose the minimum key by selection method or for testing purposes generate a large key once and reuse it every time.&step_circuit
It will be synthesized internally, to collect data about the PLONKish struct and reuse it later. The calling party retains possession of it, as further modification of the circuit is implied.
Constructor
If you need other curves or want to pick other parameters for IVC, you can create public params directly
You can learn about the parameters ARITY
& k_table_size
& commitment_key
& step_circuit
- in the New Default Public Params
RandomOracle
- you can specify the on-circuit\off-circuit random oracle to be used for the IVC circuit. Currently, only the poseidon variant is available from the box at the pathsirius::poseidon::PoseidonRO
.random_oracle_constant
- according to theRandomOracle
type, you must provide constants that will be used to initialize the random oracle. For poseidon it will besirius::poseidon::Spec
.limbs_count_limit
&limb_width
- during the execution of the IVC scheme in each of the two circuits, pairwise curve calculations will be performed on-circuit. These parameters determine the efficiency of these calculations.
Last updated