Signature
Current signature scheme used is proof-based signatures using Plonky2 proofs, following https://eprint.iacr.org/2024/1553 and https://jdodinh.io/assets/files/m-thesis.pdf. This comes from Polygon Miden's RPO STARK-based signatures.
In future iterations we may replace it by other signature schemes (either elliptic curve based scheme on a Golilocks-prime friendly curve, or a lattice based scheme).
generate_params()
: plonky2 circuit prover params
: plonky2 circuit verifier params
return
keygen()
secret key:
public key: 1
return
sign(pp, sk, m)
return
verify(vp, sig, pk, m)
return
Plonky2 circuit
private inputs:
public inputs:
The 2024/1553 paper uses to have as input (to the hash) 8 field elements, to be able to reuse the same instance of the RPO hash as the one they use later in the signature (where it hashes 8 field elements).