Closed drskalman closed 3 years ago
We should implement the Schnorr DLEQ proof as a general signature optimizsation, which then shrinks to BLS, not as some special proof-of-possession tool, and then maybe support using that in the proof-of-possession.
We'll check proofs-of-possession only when starting the node, and once per epoch, so the Schnorr DLEQ proof optimization makes little sense for proofs-of-possession. It makes sense for regular signatures which come all the time however.
We should explore doing some ProofsOfPossession
trait but not quite sure how it works actually since it's a property of an entire key infrastructure. It's logical methods look like an iteration over all public keys, BLS signatures, and Schnorr DLEQ proofs, and then some free function checks all these, so the ProofsOfPossession
trait itself cannot ensure the ProofsOfPossession
were checked, only that users wrote the code to check them.
The problem here is that you cannot really make a trait for users inserting data into their own database.
This is done in 7e2aaa3 but the verification test doesn't pass yet.
Signing problem due to random integer bigger than mod is temproraly solved, but the signature still does not verify.
a8761d8 fixed verification bug do to bogus schnorr formula and zeroing more randomness byte to make deserialize to field works.
verify_pok
defined at https://github.com/w3f/bls/blob/skalman-schnorr-pok/src/bls_pop.rs#L83 need to be implemented.