Performance enhancements tracking
joebebel opened this issue · 2 comments
Extremely high performance is a design goal of Ferveo, this will require some creativity to achieve. This issue is to track the discussion and ideas.
Relevant readings:
https://twitter.com/aniketpkate/status/1319345423811809291
https://people.csail.mit.edu/devadas/pubs/scalable_thresh.pdf
relevant issue for ferveo's TPKE part
heliaxdev/arkworks-threshold-decryption#16
For threshold decryption, I believe the bottlenecks are currently the following:
- Every validator needs to do 1 ciphertext validity check per tx (1 pairing equation check/tx)
- Every validator needs to produce 1 decryption share per tx (1 G1 multiply/tx)
- Every validator needs to check decryption shares (1 pairing equation check/block)
- Every validator needs to check that shares were combined properly (1 pairing eq/block)
Everything else in the threshold decryption pipeline is done by a single validator.
It may be possible to improve (1) by using a different signature scheme, especially one that supports better aggregated checking of signatures, or using a faster EdDSA type of proof of knowledge.