anoma/ferveo

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:

  1. Every validator needs to do 1 ciphertext validity check per tx (1 pairing equation check/tx)
  2. Every validator needs to produce 1 decryption share per tx (1 G1 multiply/tx)
  3. Every validator needs to check decryption shares (1 pairing equation check/block)
  4. 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.