Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change the message to the same to improve BLS signature verification performance #204

Closed
4 tasks done
Kynea0b opened this issue Mar 31, 2021 · 3 comments
Closed
4 tasks done
Labels
C: proposal Classification: Proposal for specification, algorithm, architecture, or communication G: epic Granularity: Epic issue P: nice to have Priority: nice to have Stale For github bot

Comments

@Kynea0b
Copy link
Contributor

Kynea0b commented Mar 31, 2021

Summary

If the messages are the same, the messages are signed, and the messages are aggregated, the pairing map can be processed only once.

Problem Definition

Verification of aggregated BLS signatures is easy when the messages are the same, as shown in the following formula. By simplifying the verification, the pairing mapping only needs to be performed once, and the computational complexity can be significantly reduced.

reference:
https://crypto.stanford.edu/~dabo/pubs/papers/BLSmultisig.html#BGLS03
スクリーンショット 2021-03-24 11 15 57

Therefore, it is necessary to change the message when signing to be the same.

Proposal

The message used when signing is this structure. If all the Timestamp are the same, the message when signing will be the same.

type CanonicalVote struct {
	Type      SignedMsgType // type alias for byte
	Height    int64         `binary:"fixed64"`
	Round     int64         `binary:"fixed64"`
	BlockID   CanonicalBlockID
	Timestamp time.Time
	ChainID   string
}

Then we call this function to verify.
https://github.com/herumi/bls-eth-go-binary/blob/master/bls/bls.go#L843


related issue

#72

see also by tendermint/tendermint:

https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-025-commit.md#decision
tendermint/tendermint#2840 (comment)

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@Kynea0b Kynea0b self-assigned this Mar 31, 2021
@Kynea0b Kynea0b mentioned this issue Mar 31, 2021
4 tasks
@Kynea0b Kynea0b changed the title Change the message to the same to improve BLS validation performance Change the message to the same to improve BLS signature verification performance Mar 31, 2021
@Kynea0b
Copy link
Contributor Author

Kynea0b commented Apr 9, 2021

What is the purpose of BLS aggregate signatures?

The BLS aggregate signature is one of the important solutions to the scalability problem associated with the IBC

What is required for BLS aggregate signature to work well ?

In this issue, the desirable Vote data design for the use of BLS aggregate signatures is being considered.
tendermint/tendermint#2840 (comment)

How timestamp was introduced to vote?

In this issue, vote timestamp is introduced as BFT time.
Since it is used as a value to protect security in view of IBC extension, it is necessary to reconsider a mechanism to replace it in order to utilize BLS. See this for details.
tendermint/tendermint#2013
tendermint/tendermint#1146

@Kynea0b Kynea0b removed their assignment Sep 21, 2021
@Kynea0b Kynea0b added C: proposal Classification: Proposal for specification, algorithm, architecture, or communication P: nice to have Priority: nice to have G: epic Granularity: Epic issue labels Sep 27, 2021
@tac0turtle
Copy link
Contributor

tac0turtle commented Sep 30, 2021

Here is what tendermint/tendermint will use to get to BLS aggregation

tendermint/tendermint#6942

@github-actions github-actions bot added the Stale For github bot label Feb 26, 2022
@github-actions github-actions bot closed this as completed Mar 2, 2022
@torao torao reopened this Mar 7, 2022
@github-actions github-actions bot removed the Stale For github bot label Mar 8, 2022
@github-actions github-actions bot added the Stale For github bot label Mar 18, 2022
@Kynea0b
Copy link
Contributor Author

Kynea0b commented Jan 25, 2023

Since the BLS sig has been removed, this issue is also closed.
#541

@Kynea0b Kynea0b closed this as completed Jan 25, 2023
@Finschia Finschia deleted a comment from torao Aug 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: proposal Classification: Proposal for specification, algorithm, architecture, or communication G: epic Granularity: Epic issue P: nice to have Priority: nice to have Stale For github bot
Projects
None yet
Development

No branches or pull requests

3 participants