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

Document ECDSA signature verification #970

Closed
nicc opened this issue Jun 6, 2023 · 6 comments
Closed

Document ECDSA signature verification #970

nicc opened this issue Jun 6, 2023 · 6 comments
Assignees
Labels
docs Improvements or additions to documentation Epic

Comments

@nicc
Copy link
Collaborator

nicc commented Jun 6, 2023

Create a tutorial that steps through ECDSA signature verification. It shouod be based on the API defined in this issue.

See reference implementation using Circom: https://github.com/BigWhaleLabs/seal-hub-ecdsa-verifier-contract/blob/main/circuits/ECDSAChecker.circom

From Phil:
ECDSA is the elliptical cryptography scheme used by Ethereum. SnarkyJS can’t “read” things from Ethereum without having a custom gate for ECDSA. After we have ECDSA, SnarkyJS can allow people eg, to attest to the fact that they own a bored ape on Ethereum without doxxing themselves, or that they have an ETH balance of more than x. There may also be use cases outside Ethereum

@nicc nicc added docs Improvements or additions to documentation Epic labels Jun 6, 2023
@barriebyron
Copy link
Contributor

barriebyron commented Jun 6, 2023

I've circled in with Phil Kelly to find out what a use case looks like. thank you @Trivo25 for being my tutorial code partner to deliver the example code for https://github.com/o1-labs/docs2/tree/main/examples/zkapps

I am up for working on the content but do require engineering support for the command sequence and code

@barriebyron
Copy link
Contributor

@Trivo25 thank you for being the example code hero!

@nicc
Copy link
Collaborator Author

nicc commented Jun 6, 2023

This should start alongside #968 to parallelise and share context.

@barriebyron
Copy link
Contributor

barriebyron commented Jun 27, 2023

No doc work to do, yet
Here is a growing collection of resources:
SnarkyJS SHA/Keccak RFC design convo o1-labs/rfcs#9
SnarkyJS ECDSA RFC design convo o1-labs/rfcs#14

SnarkyJS PRs can merge only after crypto updates are in:
#999
#989
#988

Other resources
https://www.notion.so/minaprotocol/ECDSA-ver-gadget-PoC-PRD-9458c38adf204d6b922deb8eed1ac193
https://www.notion.so/minaprotocol/Ethereum-Primitives-Dependencies-21e56244b1cd43b1807aac39fdd25117
1.5 hour video ECDSA sync

page 11 of the nullifier PLUME paper for the SnarkyJS nullifier

2.2 Signatures
2.2.1 ECDSA
ECDSA is the signature protocol used by Bitcoin, Ethereum and most blockchain
systems [27, 7], due to both Schnorr’s copyright and ECDSA’s relatively smaller key
size, especially when compared to RSA. Most RSA keys are 2,048 bits, but the much
shorter 256-bit ECDSA key provides roughly equal security to a 3,248 bit RSA key
[30].
ECDSA uses the secp256k1 curve...
Because almost all existing blockchain and public key infrastructure uses this curve
for non-deterministic signatures, we are interested in a nullifier construction for this
class of curves specifically.

@barriebyron
Copy link
Contributor

Doc outlined in draft PR o1-labs/docs2#562 and ready for dev contributions from @MartinMinkov or @Trivo25

@barriebyron
Copy link
Contributor

@nicc I expected to find this issue in the https://github.com/o1-labs/docs2 repo... I don't see how to transfer it, as the author, are you able to move it?
I successfully moved an issue recently... maybe because I was the author? Can you try to move to the docs2 repo?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Improvements or additions to documentation Epic
Projects
None yet
Development

No branches or pull requests

3 participants