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
semaphore-mtb-setup is a tool to conduct phase2 section of the mpc trusted setup for BN254 groth16 circuits.
Steps of MPC require all artifact files to be decoded & encoded properly.
One of these artifacts is the output of "InitPhase2" function: Phase2Evaluations. This artifact is used in the end when extracting pkey and vkey, being passed as an input to "ExtractKeys" function.
vkey has a parameter "G1.K" that directly comes from the "G1.VKK" parameter of a Phase2Evaluations instance. However, Phase2Evaluations's marshalling code lacks this parameter, and this causes vkey to have "G1.K" as an empty list.
Eventually, a proof generated by outputted pkey can't be verified with the outputted vkey.
Expected Behavior
ExtractKeys yields a verifier key where "G1.K" is a list with length #public_variables.
Actual Behavior
ExtractKeys yields a verifier key where "G1.K" is an empty list.
Possible Fix
Adding "G1.VKK" as a parameter to marshalling logic of Phase2Evaluations was enough to verify a proof created by corresponding pkey.
Description
semaphore-mtb-setup is a tool to conduct phase2 section of the mpc trusted setup for BN254 groth16 circuits.
Steps of MPC require all artifact files to be decoded & encoded properly.
One of these artifacts is the output of "InitPhase2" function: Phase2Evaluations. This artifact is used in the end when extracting pkey and vkey, being passed as an input to "ExtractKeys" function.
vkey has a parameter "G1.K" that directly comes from the "G1.VKK" parameter of a Phase2Evaluations instance. However, Phase2Evaluations's marshalling code lacks this parameter, and this causes vkey to have "G1.K" as an empty list.
Eventually, a proof generated by outputted pkey can't be verified with the outputted vkey.
Expected Behavior
ExtractKeys yields a verifier key where "G1.K" is a list with length #public_variables.
Actual Behavior
ExtractKeys yields a verifier key where "G1.K" is an empty list.
Possible Fix
Adding "G1.VKK" as a parameter to marshalling logic of Phase2Evaluations was enough to verify a proof created by corresponding pkey.
Steps to Reproduce
Context
I was trying to simulate a phase2 ceremony and I wasn't able to verify a given proof.
Your Environment
The text was updated successfully, but these errors were encountered: