semux-core
semux-core copied to clipboard
Use BLS Signature Scheme to Aggregate Validator Votes
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.
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?
@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.
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
@honeycrypto Thanks for sharing that. Improvements on the gossip protocol is definitely something worth looking into.