zkGM

zkGM

Privacy-Protecting Crypto Airdrops with Zero Knowledge Proofs

The problem zkGM solves

Airdrops are a great mechanism to reward communities but sadly they reveal the address of the recipients. Projects & people should be able to airdrop tokens to their communities without asking anyone to doxx their financial histories.

How it works?
1.) Community admin created a whitelist of airdrop-eligible users. Qualified community members receive a DM from the zkGM discord bot
2.) zkgm bot works with user to generate a key, secret pair for the user based on a random piece of text.
3.) zkGM bot sends a link to generate proof and claim airdrop. User enters the previously generated secret, key.
4.) Users connect the starknet wallet where they want to receive the airdrop and sign proof from the starknet wallet.
zkGM sends your signed proof to L1 using meta transactions, where the contract mints an NFT on L2 using L1<>L2 communication bridge upon proof verification.

Challenges we ran into

1.) Circom does not support cairo as an output format.
2.) Converting solidity(assembly) file output by circom library code to cairo using Warp.
3.) Lack of hidden variables in cairo.

Discussion