You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We would like to have a self-contained poseidon module that works natively with arkworks traits, so that round parameters and constants are generated directly from the field characteristic and not hard-coded as now are. This will further enable current and future zerokit modules that use it to access the same Poseidon implementation.
In order to achieve such goal, we can progressively refactor the poseidon implementation currently present in the rln module.
The main required steps should be:
Implement GrainLFSR in order to generate constants from hard-coded round parameters (i.e., the tuples (t, RF, RP)) and field characteristic;
Pass arkworks PrimeField trait to Poseidon, so that the latter can be instantiated using different curves;
Implement algorithm 1-2-3 from reference implementation to check security of randomly generated MDS matrices. Before implementing these algorithms, we hard-code the number of randomly generated unsecure matrices that should be skipped during generation (value taken from reference implementation);
Move the poseidon implementation to a separate module, e.g. under utils. This step can be done at any moment.
Acceptance Criteria
Implement all the above steps.
The text was updated successfully, but these errors were encountered:
Problem
We would like to have a self-contained
poseidon
module that works natively with arkworks traits, so that round parameters and constants are generated directly from the field characteristic and not hard-coded as now are. This will further enable current and future zerokit modules that use it to access the same Poseidon implementation.In order to achieve such goal, we can progressively refactor the poseidon implementation currently present in the
rln
module.The main required steps should be:
GrainLFSR
in order to generate constants from hard-coded round parameters (i.e., the tuples(t, RF, RP)
) and field characteristic;PrimeField
trait to Poseidon, so that the latter can be instantiated using different curves;poseidon
implementation to a separate module, e.g. underutils
. This step can be done at any moment.Acceptance Criteria
The text was updated successfully, but these errors were encountered: