-
Notifications
You must be signed in to change notification settings - Fork 6
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
Move public key check code from dependency. #69
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
circuits/circom/test/circuit.test.ts
Outdated
circuit = await wasm_tester(join(__dirname, "test_ecdsa_check_pub_key.circom")); | ||
}); | ||
|
||
var test_ecdsa_verify = function (test_case: [bigint, bigint]) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check/fix linting errors
Well it's kind of independent, they can be chained in either direction. So I just merged main into this branch once #68 was merged into master. I'll be sure to clarify chaining between PRs in the description in the future! Unfortunately I have to close this because Snyk always fails for PRs from forks. |
In order to verify an ECDSA signature you have to validate the public key. Usually this is done outside the circuit to save computation. However, we need to prove membership in arbitrary lists of addresses, where the public keys may not be available to be checked. This means we have to check the public key inside the circuit.
We made a PR to our dependency, but it's unlikely to get merged. So instead we have moved the logic into this repo.