ZKDrop is a private lottery airdrop system that allows users to retrieve airdrops in a privacy preserving manner. Users can verify their eligibility to collect an airdrop without associating their public wallet and doxxing their fincial history. The user will calculate a commitment based on hashing a key/secret pair of sha256 hashes, and upload the commitment to github gist. The commitment serves as the user's public ID. Once the smart contract is deployed, it will randomly select 50% of the commitments in the pool as winners. Using the correct key/secret pair used to generate that commitment, users can withdraw the airdrop to any wallet of their choosing.