BLS Signature Aggregation Feature
torao opened this issue · 1 comments
Summary
Allow the BLS signature to be used for the block signature algorithm, not just Ed25519.
Proposal
In our current implementation, we use 64-byte Ed25519 signatures according to Tendermint. Therefore, the total size of the signatures in Commit
that is contained a Block
is 64 × Validators. In case that a large number of validators participate in the consensus, the total size of their signatures will be proportionally larger.
The BLS signature that uses a bilinear mapping has the ability to aggregate an arbitrary number of signatures into one and verify it with the signer's public keys. Thus, by using BLS signatures in our blockchain, the total signature size can be set to a fixed value regardless of the number of validators.
Reducing the size of signatures in a block can have the effect of improving I/O speed on the network and disk, as well as improving TPS by including more Txs in a single block.
Currently, the BLS signature algorithm is in IETF-draft and the details of the formal specification may be changed in the feature. Therefore, we should abstract the signature algorithm and implement it in such a way that Ed25519 and BLS can coexist on the same blockchain environment, and that each node can choose which one to use (the use of BLS signatures will be experimental for the time being).
Activities
For Admin Use
- Not duplicate issue
- Appropriate labels applied
- Appropriate contributors tagged
- Contributor assigned/self-assigned
BLS signature aggregation feature has been merged into develop
branch.