Non-native EC addition should constrain x1 != x2
mitschabaude opened this issue · comments
Currently, our foreign EC add gadget allows the case that the two input points are equal, and that case leaves the output entirely unconstrained and tweak-able by the prover. This was on purpose, to save constraints, with the thinking being that we can navigate around that case when using the gadget.
For scalar multiplication, we use an "initial aggregator point", which was thought to make sure intermediate scalar mul results can't exhibit the degenerate case. However, the reasoning for why this prevents the degenerate case was never tight and essentially circular.
The solution is simple: just assert that
TODO: for doubling, do we need to prove that the denominator