-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
Using BLS signatures for validator votes would also allow for smaller IBC packets in Cosmos, as the Tendermint headers will only require one signature. It would also be possible to do the aggregation while the votes are being gossiped, which could reduce total bandwidth and possibly allow better scaling.
The mechanism for aggregation in the gossip process, without introducing extra overhead, is an open design problem. Current idea I'm working with is to treat the set of possible votes as a binary tree, and only aggregate when you have a complete subtree. That way you won't ever receive two partially overlapping aggregations and have to double count some signatures. Signatures can be double counted safely, but it would require using integers to track validators votes, rather than a single bit, and complicates the verification process.
@ValarDragon and I have been working on a go implementation of these signatures: bgls
Review and feedback would be very much appreciated.