guildxyz / guild-zk

8 stars 0 forks source link

Use public key ring #26

Closed PopcornPaws closed 2 years ago

PopcornPaws commented 2 years ago

Description

Use public key instead of address for the ring signature generation. Commitment to the public key x coordinate will be used for both the ECDSA proof and the membership proof.

PopcornPaws commented 2 years ago

Executable prover + verifier

Verification will happen on the backend in Go. The plan is to write an executable rust verifier that reads the proof string from a proof-file.txt and the ring sting from a ring-file.txt. It then parses the strings (deserialize + extract x coordinates from the pubkeys in the ring. Finally, the verification procedure is run natively in the rust program.

In order to test this without the frontend, write a mock-up prover example that can be run by the backend the same way. It should also read the ring from a file and generate a dummy input for proof generation.