慢雾:Connext 空投领取资格通过默克尔证明进行检查,没有资格领取空投的用户无法绕过检查领取他人的空投
ChainCatcher 消息,据慢雾区情报,有部分账户的 NEXT 代币被 Claim 到非预期的地址,慢雾安全团队跟进分析后分享简析如下:
用户可以通过 NEXT Distributor 合约的 claimBySignature 函数领取 NEXT 代币。其中存在 recipient 与 beneficiary 角色,recipient 角色用于接收 claim 的 NEXT 代币,beneficiary 角色是有资格领取 NEXT 代币的地址,其在 Connext 协议公布空投资格时就已经确定。
在用户进行 NEXT 代币 claim 时,合约会进行两次检查:一是检查 beneficiary 角色的签名,二是检查 beneficiary 角色是否有资格领取空投。在进行第一次检查时其会检查用户传入的 recipient 是否是由 beneficiary 角色进行签名,因此随意传入 recipient 地址在未经过 beneficiary 签名的情况下是无法通过检查的。
如果指定一个 beneficiary 地址进行构造签名即使可以通过签名检查,但却无法通过第二个对空投领取资格的检查。空投领取资格检查是通过默克尔证明进行检查的,其证明应由 Connext 协议官方生成。因此没有资格领取空投的用户是无法绕过检查领取他人的空投的。