Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance enhancements tracking #5

Open
ghost opened this issue Feb 24, 2021 · 2 comments
Open

Performance enhancements tracking #5

ghost opened this issue Feb 24, 2021 · 2 comments
Labels

Comments

@ghost
Copy link

ghost commented Feb 24, 2021

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

@ggkitsas
Copy link
Contributor

ggkitsas commented May 17, 2021

relevant issue for ferveo's TPKE part
heliaxdev/arkworks-threshold-decryption#16

@ghost
Copy link
Author

ghost commented Jul 7, 2021

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.

theref pushed a commit to theref/ferveo that referenced this issue Jan 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant