Skip to content

Why use BLS over Schnorr in PopProve and PopVerify? #30

@burdges

Description

@burdges

Why is a BLS signature used in PopProve and PopVerify? Am I missing something?

I suppose BLS PoP save some space especially if you "aggregate" many PoPs, using their messages' distinctness. Yet, it's always much faster to verify a Schnorr PoP thought, no matter the aggregation used. I'd expect BLS deployments might download PoPs once but verify them numerous times, like upon node restarts, signer set changes, etc.

In my mind, the question was between witness (R) and challenge (c) variants for Schnorr PoP since R permits batch verification but increases Schnorr signature size for pairing friendly curves. I've leaned towards the c form because (1) cashing verification sounds vastly more important (2) pairing friendly curve crates rarely implement Pippenger right now, and (3) deserializing R can be extremely slow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions