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:


1

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).