Finschia/ostracon

BLS Signature Aggregation Feature

torao opened this issue · 1 comments

torao commented

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
torao commented

BLS signature aggregation feature has been merged into develop branch.