Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some improvement to the advanced digital signature module #883

Merged
merged 4 commits into from
Jan 3, 2024

Conversation

drskalman
Copy link
Contributor

This will improve the advanced digital signature modules with few changes:

  • Making the categories of multi sigs more logical and assign more accurate names.
  • Correct few facts about BLS signature.
  • Add images for DKG and Ring signatures.

- more accurate cert auth in web3.
- verifier enforced → trivial multi-sig.
- non-threshold → aggregated.
- more accurate BLS verification speed claim.
@drskalman drskalman self-assigned this Dec 30, 2023
@drskalman drskalman marked this pull request as ready for review December 30, 2023 16:34
But we can still use certificates in some niche instances.
We are building systems that do not have a centralized "Certificate Authority".<br/>
But we can still use certificates:
- Certified by a distributed authority.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is very important to get into the nuance on this topic if you mention it at this point. The main reason is that with a certificate authority, any and all certificates can be checked (largely) offline.1 However, in a distributed authority, there can be no single key.

For instance, If you want to trust something signed by the validators of a blockchain in a trustless way, you need to sync the whole chain up to the current state in some way, and then make sure that you get signatures from a secure majority of the current validators. Or make sure that the multisignature address (as that's much more likely than individual sigs) has been confirmed on the chain in some way, etc.

It's much more complex to use a certificate from a distributed authority than a CA.

I do like the other changes though, I agree niche was a bit excessive.

Footnotes

  1. Not technically entirely true, due to things like checking databases for revocation certificates, checking the certificate transparency databases, etc. But fundamentally there is an offline chain of trust from the CA's hardcoded keys to the key providing them to you.

- Verifier enforced
- Cryptographic threshold
- Cryptographic non-threshold<br/>(a.k.a. signature aggregation)
- Trivial: union of individual signatures.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Union is often a confusing word for those not mathematically inclined. Can just call it 'sending multiple signatures'.

@@ -95,7 +100,7 @@ Even in a web3 system, the verifier can be _distinct_ from the blockchain. 5 peo

### Cryptographic Multi-Sigs

We want a succinct way to demonstrate that everyone from some set of parties have signed a message. This is achieved purely on the signer side (without support from the verifier).
We want a succinct way to demonstrate that everyone from some set of parties have signed a message. This could be achieved purely on the signer side (without support from the verifier).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch

@@ -190,7 +201,7 @@ However...

- DKGs remain tricky (for threshold).
- Soft key derivations are typically insecure for BLS.
- Verifiers are hundreds of times slower than Schnorr, due to using pairings, for a single signature.
- Verifiers are significantly slower than Schnorr, due to using pairings, for a single signature.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@@ -202,6 +213,7 @@ Schnorr & BLS multi-signatures avoid complicating verifier logic,<br/>but introd
- DKG protocols
- Reduced key derivation ability
- Verification speed
- Proof of possession verification.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm assuming this is referring to the part of the musig protocol that avoids chosen-public key attacks? If so, I would just cut this as it is already covered in the communication-heavy DKG protocol.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even for simple aggregation (when you don't need to run DKG) with BLS signatures you still can forge other participants signature if you don't show PoP.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ok, good to leave it in then.

@Asamartino Asamartino merged commit 9cb4f16 into main Jan 3, 2024
1 check failed
@Asamartino Asamartino deleted the skalman--fixes-to-advance-digital-signature branch January 3, 2024 00:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants