Mintpass
Mintpass — это система аутентификации на основе NFT для сообществ Bitsocial. Пользователи создают непередаваемый проверочный NFT после выполнения задачи (например, SMS OTP), а сообщества могут проверять владение NFT, чтобы защититься от атак Сивиллы, таких как фальшивые голоса, уклонение от запрета и спам.
- GitHub: bitsocialnet/mintpass
- Лицензия: MIT
Как это работает
Процесс проверки состоит из четырех этапов:
- Запрос – пользователь посещает
mintpass.org/request, чтобы начать процесс. - Вызов – пользователь выполняет проверку одноразового пароля по SMS.
- Mint – после успешной проверки на кошелек пользователя записывается непередаваемый NFT.
- Проверка – сообщества запрашивают право собственности на NFT, чтобы подтвердить, что пользователь проверен.
Поскольку NFT не подлежит передаче, он остается привязанным к кошельку, который завершил верификацию, что не позволяет пользователям торговать или продавать свой подтвержденный статус.
Структура проекта
Репозиторий разделен на три основные области:
| Каталог | Цель |
|---|---|
contracts/ | Смарт-контракты Solidity для проверки NFT. |
challenge/ | Уровень интеграции для системы задач Bitsocial. |
web/ | Next.js и интерфейс React для процесса чеканки. |
Конфиденциальность и обработка данных
Mintpass использует подход с минимальным объемом данных:
- Операционные данные (OTP-коды, токены сеанса) хранятся в Redis с короткими сроками жизни и срок действия автоматически истекает.
- Ассоциация монетного двора (связь между подтвержденной личностью и кошельком) — единственная постоянная запись.
После закрытия окна проверки никакие номера телефонов или личные данные не сохраняются.
Дополнительные уровни безопасности
Операторы сообщества могут включить дополнительную защиту в зависимости от модели угроз:
- Проверка репутации IP. Сопоставляйте входящие запросы с известными базами данных злоупотреблений.
- Оценка рисков, связанных с телефоном. Прежде чем отправлять вызов, пометьте одноразовые номера или номера VoIP.
- Геоблокировка – ограничение проверки определенными регионами.
- Время восстановления для каждого IP — Ограничьте частоту повторных попыток проверки с одного и того же адреса.
Технологический стек
| Слой | Технологии |
|---|---|
| Контракты | Solidity, развернутый с помощью Hardhat и Foundry |
| Фронтенд | Next.js + React |
| Сеть | База (Эфириум L2) |
Развертывание на базе позволяет снизить затраты на газ, сохраняя при этом гарантии безопасности Ethereum.
Дорожная карта
Планируемые улучшения включают в себя:
- Вариант оплаты по факту выпуска. Разрешить сообществам взимать небольшую плату за выпуск, что добавляет экономический барьер.
- Дополнительные сигналы проверки – используйте не только SMS, но и другие идентификационные сигналы.
- Расширенные инструменты администратора. Более широкие панели управления и элементы управления для операторов сообщества.