为什么不直接转账
给十万个地址各转一次 NFT,要做十万笔转账,Gas 成本高到不可行。主流做法反过来:项目方预先在链下生成资格名单,把名单压缩成一个指纹(默克尔根)写进认领合约;领取时,你的钱包现场证明“我在名单上”,合约铸造给你。项目方只需要部署一个合约,铸造费用大头由领取者各自承担。需要说明:以太坊并没有官方的“空投标准”,下述是社区通行做法,各项目实现差异很大。
默克尔证明:只查一条线
把地址名单放进一棵哈希二叉树:叶子是地址的哈希,每个节点是子节点拼接后的哈希,树顶只有一个根。合约里只存这个根。领取时,前端从名单里取出你的叶子,沿着树枝向上收集一路的兄弟哈希(默克尔证明,通常是一串 32 字节的数组),合约在本地把这条路径重新哈希一遍,算出的根与链上存的根一致,就认定你有资格。整个校验不需要合约存有十万个地址,Gas 只与树高成正比。
领取的标准流程
- 项目公告给出认领页与认领合约地址(唯一应当核对的东西);
- 连接钱包后,前端查询你的资格:返回“有额度、第几轮、截止时间”;
- 有些项目要求先签一个认领声明类消息:这属于 EIP-712 结构化数据签名,按定义不是交易,不会直接移动资产——但必须确认签名请求的字段里只有认领声明类内容,没有任何转移、授权字段;
- 确认后发起认领交易,合约执行铸造,检查默克尔证明、额度与截止时间;
- 交易上链后到区块浏览器核对:铸造事件里的接收地址是你、合约是你核验过的地址。
第 3 步是事故高发区:EIP-712 本身是中性工具,钓鱼页同样可以利用它构造“看起来很像认领声明”的签名请求。钱包弹窗里那串人类可读的域名、标题与字段含义务必逐行读——具体判别方法参见盲签名是什么与授权钓鱼怎么防。
领取环节的五类骗局
- 假认领页:广告位、仿冒账号投放的“空投领取”链接,域名仿冒,要求你先“连接并授权”;
- 假合约:页面上的合约地址与公告不符,签名的目标是代币授权或 Approve;
- 钓鱼签名:签名内容看似认领,实际内容是授权许可——对照字段名与值再签;
- 抢跑假余额:用“检查资格”按钮诱导你向恶意合约发起调用;
- 空投投毒:莫名出现在钱包里的 NFT,元数据带诱导链接或仿冒头像,不要访问其中的任何链接或与它互动。
原则只有一条:只从项目官方网站进入认领页,只核验合约地址这一个事实,其余全当噪音。
常见问答
问:为什么有的空投要我连钱包再“验证”,有的只要输入地址?
“输入地址查询资格”是纯只读操作,理论上风险最低;需要连接钱包并签名的流程才涉及资产安全边界。凡是要你先把资产挪动、授权、或者访问外站领取的,直接排除。
问:默克尔空投会过期吗?
大多数认领合约带截止时间或领取轮次,写死在代码里。错过截止再找项目方补领基本没有协议层依据——这一点常被空投诈骗利用:以“过期补领”为诱饵的假页面是季节性高发的骗术。核验路径不变:官方站点加合约地址,其余全不信。
风险提示
本文为流程科普,不构成投资建议,亦不意味着任何空投都值得追逐或持有。空投交互可能涉及钓鱼合约与隐私泄露;操作前请通过官方渠道交叉核验合约地址。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。