tendermint / go-crypto

DEPRECATED: Merged into https://github.com/tendermint/tendermint under `crypto`
Other
44 stars 32 forks source link

Interfaces for BLS / Aggregate Signatures #111

Closed UnitylChaos closed 6 years ago

UnitylChaos commented 6 years ago

WIP #109 adds two new interfaces:

https://github.com/tendermint/go-crypto/blob/f2d45a438487bf0d052f3b567859234772395eca/signature.go#L86-L91

and

https://github.com/tendermint/go-crypto/blob/f2d45a438487bf0d052f3b567859234772395eca/pub_key.go#L153-L156

KOSPubKey is needed for the ability to check that a BLS public key includes a proof of "Knowledge of Secret" to stop rouge key attacks. This could be done through an IsValid function with #102 though.

For AggregatableSignature we definitely need some way to scale and add signatures, but the multisignature verification function doesn't necessarily need to be attached to the signature itself.

ValarDragon commented 6 years ago

I think this interface should be decided through an ADR on tendermint/tendermint, where we can discuss / comment on that, and be made with Davros in mind. Feel free to open the same issue on tendermint though.