Signature
For POD2 signatures, we use Schnorr signature over the EcGFp5 curve.
Older version
The previously used signature scheme was proof-based signatures using Plonky2 proofs, following https://eprint.iacr.org/2024/1553 and https://jdodinh.io/assets/files/m-thesis.pdf. This came from Polygon Miden's RPO STARK-based signatures.
This was replaced by the elliptic curve Schnorr signature presented above, keeping the description here in case it were useful in the future.
The scheme was as follows:
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).