### The setup in question
The prover proves the following equation using zkSNARK.
- $s * r^{-1} * R - m * r^{-1} * G = Qa$
**Public values**
- $R$
- $m$
- $G$
- $S$: Set of signatures that were signed using the private key of $Qa$ (signatures that exist in the wild)
**Secret values**
- $s$
- $Qa$
## Properties we want and observations
### Zero-knowledge
- Question
- Will the public values {$R$, $m$, $G$} reveal anything about $s$ or $Qa$?
- Observation
- On $s$
- $s$ is a function of $r$, but $r$ doesn't reveal anything about $s$. The reasoning is:
- $s = k^{-1} * (m + r * da) \mod n$
- Since $k^{-1} * m$ is a secret random value, $s$ will be completely masked ([one-time pad](https://en.wikipedia.org/wiki/One-time_pad)).
- From the equation $s * R = r * Qa + m * G$, we can see $s$ is not computable since discrete log R r * Qa + m * G is infeasible (even if $Qa$ is known).
- On $Qa$
- TBD
### Soundness
- Question
- Can the prover convince the verifier that it knows an $s$ that “corresponds” (in the language of ECDSA) to a truly random $m$, without knowing $da$ ($Qa = da * G$)?
- Observation
- Deducing from the security of ECDSA
- If the prover can convince the verifier that it knows such $s$ for a truly random $m$, then the prover has the ability to generate a signature of $Qa$. Hence in the assumption under ECDSA, the prover knows $da$.
- If the prover can convince the verifier that it knows such $s$, then circom-ecdsa would be vulnerable.