Summary of Bug
The short-Weierstrass ProjectiveVar accepts (x, y, z) = (0, 0, 0).
value() decodes any z = 0 value as the group identity, but gadget equality only
checks homogeneous cross-products. The all-zero value therefore compares equal to every
finite projective point, including the generator.
Expected behavior is equality of the decoded native group values. The canonical gadget
identity (0, 1, 0) and native projective equality both distinguish the identity from
a finite point.
Open PR #211 changes the fallback
subgroup check in the same file; it does not validate the all-zero representation or
change projective equality.
Version
Steps to Reproduce
-
Check out the isolated
reproduction commit.
-
Run:
cd reproductions/curve-relation-binding
cargo +1.85.1 test --locked --test projective_relation_binding -- --nocapture
-
The test shows that public coordinates [0, 0, 0] decode as identity while
satisfying equality with the finite generator. A Groth16 proof verifies; canonical
identity, native equality, corrected-rule, and valid-point controls behave as expected.
CI: run 29424343134,
job 87382727104.
Summary of Bug
The short-Weierstrass
ProjectiveVaraccepts(x, y, z) = (0, 0, 0).value()decodes anyz = 0value as the group identity, but gadget equality onlychecks homogeneous cross-products. The all-zero value therefore compares equal to every
finite projective point, including the generator.
Expected behavior is equality of the decoded native group values. The canonical gadget
identity
(0, 1, 0)and native projective equality both distinguish the identity froma finite point.
Open PR #211 changes the fallback
subgroup check in the same file; it does not validate the all-zero representation or
change projective equality.
Version
ark-r1cs-stdcommit45e4e2697626a9f9481fe57e70ed29c687194102ark-r1cs-stdfeatures(
std).Steps to Reproduce
Check out the isolated
reproduction commit.
Run:
The test shows that public coordinates
[0, 0, 0]decode as identity whilesatisfying equality with the finite generator. A Groth16 proof verifies; canonical
identity, native equality, corrected-rule, and valid-point controls behave as expected.
CI: run 29424343134,
job 87382727104.