Mintpass
Mintpass 是一个基于 NFT 的 Bitsocial 社区身份验证系统。用户在完成挑战(例如短信 OTP)后铸造不可转让的验证 NFT,社区可以检查 NFT 所有权以防范虚假投票、禁令规避和垃圾邮件等女巫攻击。
- GitHub:bitsocialnet/mintpass
- 许可证:麻省理工学院
它是如何运作的
验证流程有四个步骤:
- 请求 -- 用户访问
mintpass.org/request开始该过程。 - 挑战——用户完成短信一次性密码验证。
- 铸造——验证成功后,不可转让的 NFT 将被铸造到用户的钱包中。
- 验证——社区查询 NFT 所有权以确认用户已通过验证。
由于 NFT 不可转让,因此它与完成验证的钱包保持绑定,防止用户交易或出售其验证状态。
项目结构
该存储库分为三个主要区域:
| 目录 | 目的 |
|---|---|
contracts/ | 用于验证 NFT 的 Solidity 智能合约。 |
challenge/ | Bitsocial 挑战系统的集成层。 |
web/ | 用于铸造流程的 Next.js 和 React 前端。 |
隐私和数据处理
Mintpass 采用最小数据方法:
- 操作数据(OTP 代码、会话令牌)以较短的 TTL 存储在 Redis 中并自动过期。
- 薄荷关联(经过验证的身份和钱包之间的链接)是唯一的持久记录。
验证窗口关闭后,不会保留任何电话号码或个人详细信息。
可选的安全层
社区运营商可以根据其威胁模型启用额外的保护:
- IP 信誉检查 -- 根据已知的滥用数据库对传入请求进行评分。
- 电话风险评估 - 在发出质询之前标记一次性或 VoIP 号码。
- 地理封锁——将验证限制在特定区域。
- 每 IP 冷却时间 -- 对来自同一地址的重复验证尝试进行速率限制。
技术栈
| 层 | 技术 |
|---|---|
| 合约 | Solidity,与 Hardhat 和 Foundry 一起部署 |
| 前端 | Next.js + React |
| 网络 | 基础(以太坊 L2) |
在 Base 上部署可以保持较低的 Gas 成本,同时继承以太坊的安全保证。
路线图
计划的改进包括:
- 付费铸币选项——允许社区收取少量铸币费用,增加了经济女巫障碍。
- 其他验证信号 -- 从短信扩展到其他身份信号。
- 扩展的管理工具 -- 为社区操作员提供更丰富的仪表板和控件。