BEEFY needs two cryptographic keys at the same time. Validators should sign BEEFY payload using both ECDSA and BLS key. The network will gossip a payload which contains a valid ECDSA key. The prover nodes aggregate the BLS keys if aggregation fails to verifies the validator which provided a valid ECDSA signature but an invalid BLS signature is subject to slashing.
As such BEEFY session should be initiated with both key. Currently there is no straight forward way of doing so, beside having a session with RuntimeApp corresponding to a crypto scheme contains both keys.
This pull request implement a generic paired_crypto scheme as well as implementing it for (ECDSA, BLS) pair.
Polkadot companion: (if applicable)
Cumulus companion: (if applicable)
Checklist
[x] My PR includes a detailed description as outlined in the "Description" section above
[ ] My PR follows the labeling requirements of this project (at minimum one label for each A, B, C and D required)
[ ] I have made corresponding changes to the documentation (if applicable)
[ ] I have added tests that prove my fix is effective or that my feature works (if applicable)
[ ] If this PR alters any external APIs or interfaces used by Polkadot, the corresponding Polkadot PR is ready as well as the corresponding Cumulus PR (optional)
BEEFY needs two cryptographic keys at the same time. Validators should sign BEEFY payload using both ECDSA and BLS key. The network will gossip a payload which contains a valid ECDSA key. The prover nodes aggregate the BLS keys if aggregation fails to verifies the validator which provided a valid ECDSA signature but an invalid BLS signature is subject to slashing.
As such BEEFY session should be initiated with both key. Currently there is no straight forward way of doing so, beside having a session with RuntimeApp corresponding to a crypto scheme contains both keys.
This pull request implement a generic
paired_crypto
scheme as well as implementing it for (ECDSA, BLS) pair.Polkadot companion: (if applicable)
Cumulus companion: (if applicable)
Checklist
A
,B
,C
andD
required)✄ -----------------------------------------------------------------------------