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

Use BLS Signature Scheme to Aggregate Validator Votes #163

Open
5 tasks
cryptokat opened this issue May 25, 2019 · 4 comments
Open
5 tasks

Use BLS Signature Scheme to Aggregate Validator Votes #163

cryptokat opened this issue May 25, 2019 · 4 comments
Labels
proposal A protocol upgrade proposal

Comments

@cryptokat
Copy link
Contributor

cryptokat commented May 25, 2019

In the current implementation the votes of validator for each block takes about 10 KB as of 100 validators, such that every single day ~28 MB of additional storage space is required even if there's no transaction at all. With BLS signatures scheme we will be able to aggregate validator votes into a single signature without extra network round trips, making the required additional storage space for validator votes down to 240 KB each day.

TODOs

  • Implement Java binding for https://github.com/Chia-Network/bls-signatures
  • Update wallet to automatically generate a BLS keypair for each account
  • Update delegate registration protocol to require a BLS public key for each registration
  • Implement validator vote aggregation
  • Initiate a fork that requires at least 2/3 of validators to register a BLS public key

Why not Schnorr MuSig or CoSi

Both of the signature aggregation algorithms require a 3-round protocol over the network, which may greatly increase the complexity of SemuxBFT.

@cryptokat cryptokat added the enhancement An enhancement to existing implementation label May 25, 2019
@semuxgo
Copy link
Contributor

semuxgo commented May 25, 2019

BLS will be a great add-on to the current implementation. Look forward to it. Look forward to it!

Do you intend to use the same private key bytes to derive a BLS key pair?

@cryptokat
Copy link
Contributor Author

@semuxgo I am not really sure if that would be secure as I am not a cryptography expert. It would be the safest if we simply require each delegate to generate a new keypair randomly.

@honeycrypto
Copy link
Contributor

While the storage problem is very important, this still doesn't solve all the networking problems, right? Can we consider some kind of gossiping scheme to enhance the scalability and reduce both the block time and the blockchain size dramatically?

Please check the "The origin of IDA" part from here:
https://medium.com/harmony-one/block-syncing-in-1-36s-with-harmonys-adaptive-ida-protocol-de5da398569e

@cryptokat
Copy link
Contributor Author

@honeycrypto Thanks for sharing that. Improvements on the gossip protocol is definitely something worth looking into.

@semuxgo semuxgo changed the title [Proposal] Use BLS Signature Scheme to Aggregate Validator Votes Use BLS Signature Scheme to Aggregate Validator Votes Jul 6, 2019
@semuxgo semuxgo added proposal A protocol upgrade proposal and removed enhancement An enhancement to existing implementation labels Jul 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal A protocol upgrade proposal
Projects
None yet
Development

No branches or pull requests

3 participants