HorizenOfficial / ginger-lib

Ginger-lib is a general purpose zk-SNARK library that supports recursive proof composition
Apache License 2.0
84 stars 17 forks source link

Endomorphism-based Pippenger #182

Open UlrichHaboeck75 opened 2 years ago

UlrichHaboeck75 commented 2 years ago

Aztek has implemented a GLV-variant of Pippenger. In short, the GLV method makes use of the endomorphism (having equivalent scalar lambda) by decomposing a scalar k into k = k1 * lambda + k2, with k1 and k2 of half the size of the modulus. (See Gallant, Lambert, Vanstone 2001 or the corrected analyis of Quisquater, et al 2002 for a detailed description on the decomposition.) With this decomposition one can replace the initial instance for a multi-scalar multiplication by one having the double number of base points (the original ones plus their endomorphism image) but scalars of half the size.

@DDT92 Let us estimate the performance improvement using this technique.

Ashrafafnan commented 2 years ago

Nice