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
I encountered a bug where a seemingly unnecessary dummy constraint (e.g., a == a) must be added for my circuit test to pass when using the PlonkFRI backend, even though the constraint is always true and should not affect the test result. If I do not include this constraint, the test fails. However, this issue does not occur when using other backends such as PLONK and Groth16.
Code Example
Here's a code snippet that demonstrates the issue. Uncommenting the commented line is required for the test to pass:
typetestCircuitBasicstruct {
A frontend.VariableB frontend.VariableExpected frontend.Variable
}
func (circuit*testCircuitBasic) Define(api frontend.API) error {
mulRes:=api.Mul(circuit.A, circuit.B)
api.AssertIsEqual(mulRes, circuit.Expected)
// Uncomment the following line to make the test pass// api.AssertIsEqual(circuit.A, circuit.A)returnnil
}
funcTestMainBasic(t*testing.T) {
assert:=test.NewAssert(t)
varcircuittestCircuitBasicassert.ProverSucceeded(&circuit, &testCircuitBasic{
A: "42",
B: "24",
Expected: "1008",
}, test.WithCurves(ecc.BN254))
}
Output
Running this test will result in the following error:
Error: plonkFRI(bn254): one round of interaction failed
witness:{"A":42,"B":24,"Expected":1008}
Test: TestMainBasic/bn254/plonkFRI
Uncommenting the commented line makes the test pass as expected.
The text was updated successfully, but these errors were encountered:
Just as a remark - I also encountered the same bug very recently. I checked very briefly and seems that this bug is propagated from gnark-crypto, but have to debug more closely.
Setting low priority as PLONK+FRI is very experimental right now. Are you particularly interested in PLONK+FRI?
I'm not particularly interested in PLONK+FRI, it's just that the tester by default will iterate through the various backends and will fail (because of PLONK+FRI), meaning that I have to specify some backend when testing now.
I'm not particularly interested in PLONK+FRI, it's just that the tester by default will iterate through the various backends and will fail (because of PLONK+FRI), meaning that I have to specify some backend when testing now.
The option for setting backends in testing accepts multiple backends. But I agree, it is definitely nuisance. Will propose to the team omitting PLONK+FRI as one of the default backends to test against.
Description
I encountered a bug where a seemingly unnecessary dummy constraint (e.g.,
a == a
) must be added for my circuit test to pass when using the PlonkFRI backend, even though the constraint is always true and should not affect the test result. If I do not include this constraint, the test fails. However, this issue does not occur when using other backends such as PLONK and Groth16.Code Example
Here's a code snippet that demonstrates the issue. Uncommenting the commented line is required for the test to pass:
Output
Running this test will result in the following error:
Uncommenting the commented line makes the test pass as expected.
The text was updated successfully, but these errors were encountered: