Another way to authenticate message is with Message Authentication Codes (MACs) which are faster because it uses hashes (of the message concatenated with secret key) which takes round:
10 - 100 micro seconds (both to create and to verify)
Upside:
BLS signature is the most time consuming task (I would even venture to say that's it consumes above than 90% of a message processing time).
New processing time would be ~ 5000/100 = 50x faster for consensus messages.
Note that BLS signature will still be needed for the PartialSignatureMessages and for exchanging the symmetric keys. The symmetric keys may be used for many consensus instances, but it's good practice to keep creating new ones or using stronger Hash functions such as SHA-512.
Downside:
Each node pair would need a symmetric key. This is more common on a network that allows direct messages (instead of only broadcast).
If the latency bottleneck is communication delay, it may be a bit pointless. For instance, if message transmission delay is ~100ms, then the gain of optimising msg processing time is diminished. It's better to optimize number of messages exchanged.
Possible solution to network topology:
instead of Signature field. Allow also a MAC field that would consist of a map OperatorKey -> MAC. In this way, we could broadcast the message and all committee members would be able to verify the same message.
Symmetric keys exchange is possible in a p2p pubsub network by Diffie Hellman algorithm.
BLS signature consumes on average:
5 ms to verify 3 ms to sign and aggregate
Another way to authenticate message is with Message Authentication Codes (MACs) which are faster because it uses hashes (of the message concatenated with secret key) which takes round:
10 - 100 micro seconds (both to create and to verify)
Upside:
Downside:
Possible solution to network topology: