Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Introduce BLS signature aggregation scheme #151
Validators need to provide their BLS public keys at self-nomination step, since they cannot be inferred from their transaction signing keys anymore. Also, proof of posession step of the BLS private key is required to prevent rogue key attacks. For proof of posession, we should use the signature of BLS public key concatenated with its address. Contatenation with the address is required to prevent other validators to reuse the signature, aka replay attacks.
Previously, an ECDSA public key was sufficient to represent a validator because the validator's account address can be derived from the key. However, a validator's BLS public key and an address cannot be derived from each other, so we have to keep both of them.
An aggregated BLS signature of validators can replace the collection of Schnorr signatures in a Tendermint seal. Throwing out old votes should be postponed because we cannot recover votes from a block seal anymore.
HoOngEe merged commit
Feb 27, 2020
8 of 9 checks passed
8 of 9 checks passed
Actions - build (macOS-10.14) Actions - build (macOS-10.14)Details
Actions - clippyDetails
Actions - lintDetails
Actions - build (ubuntu-18.04)Details
Actions - rustfmtDetails
Actions - unit test (macOS-latest)Details
Actions - unit test (ubuntu-latest)Details
Travis CI - Pull Request Build ErroredDetails
Summary no rules match, no planned actionsDetails
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments.