fission-codes / fil-cosigner

GNU Affero General Public License v3.0
4 stars 2 forks source link

Evaluate TS libraries for BLS keys and signatures #2

Open benjaminbollen opened 3 years ago

benjaminbollen commented 3 years ago

Evaluate implementations for BLS keys, signing and signature verification. Ideal if keys have pairing implemented, but this can be implemented on top if basis is present

Repo's that go in the right direction:

dholms commented 3 years ago

I probably like the first two the best. They've had the most eyes on them, and they both mention plans for having a security audit done at some point.

I have a preference for the first, but I think the question is really JS or WASM? There are some concerns with JS security obviously (as the first option discusses in their "Security" seciton). But these keys are going to have to pass through JS-land regardless, so I'm not sure that using WASM really helps us much there. Thoughts?

benjaminbollen commented 3 years ago

We've started with https://github.com/paulmillr/noble-bls12-381

Note that this aggregation function looks linear (ie. it is NOT non-linear and resistant to "rogue key attack"); we can start with this library and the linear aggregation, but then we must assert key-ownership by signing simple challenges (or clearly warn users this is pre-alpha and not for production yet)