针对以太坊的私人空投。
如果您已经拥有用户的公钥,则向用户分发空投是很简单的,但协议可能希望根据链外活动来进行。虽然可以通过公共或私有通道向用户请求地址,但许多用户可能不愿意透露自己的公钥。本仓库演示了一种分发代币的策略,在这种策略中,用户可以通过公共通道提供一条消息(称为"承诺"),然后通过提供零知识证明来声明自己属于默克尔树,从而声明自己获得的空投份额。通过这种方式声明代币,可以将其与所有有资格获得空投的其他用户混合,从而保护他们的匿名性。
一个用于生成索赔证明并与这些合约交互的自包含库可以在 a16z/zkdrops/zkdrops-lib 中找到,而一个示例前端可以在 a16z/zkdrops/client-ex 中找到。分发的智能合约(zkdrops-contracts/contracts/PrivateAirdrop.sol)包含一个updateRoot函数,该函数允许所有者在启动后修改 Merkle 树,但如果需要,可以通过删除该函数使其不可变。
key 和一个 secret, 并连接 hash(key + secret) 来创建 commitment。commitment,而不会泄露信息。commitment 的 Merkle 树,并部署智能合约。commitment。暂无开放 Issues,或尚未同步最近议题。