semuxproject / semux-core

Semux Core
https://www.semux.org
MIT License
76 stars 32 forks source link

Use BLS Signature Scheme to Aggregate Validator Votes #163

Open cryptokat opened 5 years ago

cryptokat commented 5 years ago

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

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.

semuxgo commented 5 years ago

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 commented 5 years ago

@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 commented 5 years ago

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 commented 5 years ago

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