-
Notifications
You must be signed in to change notification settings - Fork 28
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
BLS Signature Aggregation and Verification #117
Conversation
0d82062
to
4242d3d
Compare
I noticed there is a major design flaw in this implementation while looking at the code. It's hard to prove whose signature is in the aggregate signature of You can refer about this from following: tendermint/tendermint#1319 And |
@egonspace
The problem you pointing out here is that the aggregated signature doesn't tell who has tampered with the address in order to slash the failure user? (But if that were possible, wouldn't it be possible to identify the failure user who replaced addresses without whether our BLS feature is implemented or not?) |
This was what I was worried about. But after looking at a few possible malicious behaviors, it seems that there is no problem as long as we can judge that the aggregated signature is wrong without finding which public address is wrong. (But I'm still not sure that malicious behavior is really impossible) Possible malicious behavior can be as follows: In other words, if the proposer who created the The above issue seems to say that it is a problem when sending and receiving aggregated As for the second comment, I would like to confirm that |
I hope the state diagram of As-is: To-be: Is it right? |
It seems like your work is not done yet, but I'm leaving you some suggestions.
If the explanation is a bit difficult to understand, I may suggest by modifying the code myself. |
c57df88
to
efa0df1
Compare
b87a05f
to
7ab6dc6
Compare
I have written a code for this proposal to help you understand: #141 |
There is one thing to worry about.
|
After my research, I don't think there will be a big problem using |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
5b56290
to
5db1c15
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
Leave one comment for what looks like a typo.
consensus/reactor.go
Outdated
// which contains precommit signatures for prs.Height. | ||
commit := conR.conS.blockStore.LoadBlockCommit(prs.Height) | ||
// Originally the block commit was used, but with the addition of the BLS signature-aggregation, | ||
// we use seen commit instead of the block commit because block commit has no no individual signature. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no no individual signature
is it typo?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I fixed it. thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…:line/tendermint into feature/bls_aggregation_and_verification
Closes: #95
Description
This PR implements BLS signature aggregation and adds the aggregated signature to the Block. Fixed to introduce BLS signature aggregation into the block in conjunction with PR #87 and #101.
For contributor use:
docs/
) and code commentsFiles changed
in the Github PR explorer