Hi HN,
We (myself, Adhyyan1252 and yush_g) are undergrad students that hacked out this side project last month during Hack Lodge[1] (the ideas and many of the underlying circuits for which came from the 0xPARC community[2])! We’re extremely excited to share this new primitive.
Besides the technical challenges building this project that folks here would find interesting (fixing the ZK proof compiler, modifying nodeJS V8 params etc.), we think this is a very novel use case for ZK tech, and ECDSA inside ZK-SNARKs is a starting point that unlocks many other ideas! :D
A summarized version of our README, with more thoughts on why you would want to enable this in the first place, is also in this Twitter thread[3]!
[1]: https://hacklodge.org
[2]: https://0xparc.org
[3]: https://twitter.com/0xparc/status/1493363943036923912
If anyone is curious, here are a couple pointers to related work on problems similar to this.
First, the ideas used here are vaguely related to the way that ZCash works under the hood. The ideas in ZCash come from a sequence of three academic papers: ZeroCoin, PinocchioCoin, and Zerocash:
- ZeroCoin: http://spar.isi.jhu.edu/~mgreen/ZerocoinOakland.pdf
- PinocchioCoin: https://www.microsoft.com/en-us/research/wp-content/uploads/...
- Zerocash: https://eprint.iacr.org/2014/349
More directly related in terms of application, but quite different in mechanism: the Handshake airdrop in early 2020 could be claimed anonymously. This was slightly tricky because the idea was to retrofit to existing RSA keys. We (full disclosure, I worked on this project) called the resulting protocol a "GooSig":
- GooSigs: https://eprint.iacr.org/2020/676
Section 3 of that paper gives a way of anonymously airdropping to existing ECDSA or EdDSA keys without using a SNARK. The setup may not be quite the same as in the case being discussed above, though. Notably, it requires sending a short message to the recipient before they can claim their funds. But the message can be encrypted to an existing key of theirs and posted publicly, so this probably isn't much of a limitation in many practical cases.