-
dangerousfreedomHello everyone,
-
dangerousfreedomI have implemented a Borromean verifier but it is taking too long to verify the signatures as I have to do 4*64 point multiplications in the EC. I'm using a simple double_and_add method (in Python) for point multiplication. Apparently Monero also uses that algorithm (maybe a smarter version?). I would like to know if there would be a faster way to do it and compare the performance with the C++ code. Do you guys have any
-
dangerousfreedomthoughts on that? Could that be parallelized? A GPU and some smart algorithm would make things faster?
-
brickdangerousfreedom, not sure if this is the correct place to put your question, consider monero-dev?
-
UkoeHBdangerousfreedom: you could check eprint.iacr.org/2007/286
-
UkoeHBbut yeah, python's going to be hella slow now matter what you use (unless you are calling an embedded C/C++ module)
-
UkoeHBno matter*
-
brickdangerousfreedom, I don't know anything about Borromean verifier, but what curve do you use?
-
UkoeHBpre-built C/C++ module * (I have used pybind11 in the past, it's great)
-
UkoeHBbrick: it is ed25519, borromean ring sigs were used for range proofs around 4-6 years ago eprint.iacr.org/2015/1098.pdf
-
dangerousfreedomThank you UkoeHB ! I will check!
-
brickThis is a common curve, idk if monero has an internal implementaion, but you could check openssl or linux kernel crypto api
-
dangerousfreedombrick: Yeah, but I'm trying to have some Python implementation (or just cheat a little bit and use some bindings). Thanks!