I propose changing the verification equation from "Let *R = sG - eP*" to
Let *R = sG + eP* This allows faster verification by avoiding negating a point (or a coefficient). If, instead of directly following the literal verification specification, one is instead reconstructing R from r by finding a y coordinate that is a quadratic residue, under the existing scheme one would verify *sG - eP = R* which is effectively verifying 0 = *sG - eP* - R or 0 = R - *sG + eP* Either way one needs to negate at least one point (or one coefficient) because of the opposite signs between sG and eP. Under my proposed revised verification scheme, one would instead verify 0 = sG + eP + (-R). While it seems that this requires negating R, it does not. Rather (-R) can be directly constructed from r by finding a y coordinate that is *not* a quadratic residue, which is precisely the same amount of work that construction R from r was. In either verification procedure, changing the verification equation to my proposal removes one negation operation from the cost of doing verification.
_______________________________________________ bitcoin-dev mailing list email@example.com https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev