דלג לתוכן הראשי

Mintpass

Mintpass היא מערכת אימות מבוססת NFT עבור קהילות Bitsocial. משתמשים מטביעים אימות NFT שאינו ניתן להעברה לאחר השלמת אתגר (כגון SMS OTP), וקהילות יכולות לבדוק בעלות על NFT כדי להתגונן מפני התקפות סיביל כמו הצבעות מזויפות, התחמקות מהאיסור וספאם.

איך זה עובד

זרימת האימות כוללת ארבעה שלבים:

  1. בקשה -- המשתמש מבקר ב-mintpass.org/request כדי להתחיל בתהליך.
  2. Challenge -- The user completes an SMS one-time-password verification.
  3. Mint -- לאחר אימות מוצלח, נטבע NFT שאינו ניתן להעברה לארנק המשתמש.
  4. אמת -- קהילות מבקשות בעלות על NFT כדי לאשר שהמשתמש אומת.

מכיוון שה-NFT אינו ניתן להעברה, הוא נשאר קשור לארנק שהשלים את האימות, ומונע מהמשתמשים לסחור או למכור את הסטטוס המאומת שלהם.

מבנה הפרויקט

המאגר מאורגן לשלושה תחומים עיקריים:

מדריךמטרה
contracts/חוזים חכמים של Solidity לאימות NFT.
challenge/שכבת אינטגרציה למערכת האתגרים Bitsocial.
web/Frontend Next.js ו-React עבור זרימת ההטבעה.

פרטיות וטיפול בנתונים

Mintpass נוקט בגישה של נתונים מינימליים:

  • נתונים תפעוליים (קודי OTP, אסימוני הפעלה) מאוחסנים ב-Redis עם TTL קצרים ופוג תוקף אוטומטי.
  • Association Mint (הקישור בין זהות מאומתת לארנק) הוא הרשומה המתמשכת היחידה.

לא נשמרים מספרי טלפון או פרטים אישיים לאחר סגירת חלון האימות.

שכבות אבטחה אופציונליות

מפעילי קהילה יכולים לאפשר הגנות נוספות בהתאם למודל האיום שלהם:

  • בדיקות מוניטין IP -- ציון בקשות נכנסות מול מסדי נתונים ידועים של שימוש לרעה.
  • הערכת סיכונים טלפונית -- סמן מספרים חד פעמיים או VoIP לפני הוצאת אתגר.
  • חסימה גיאוגרפית -- הגבל את האימות לאזורים ספציפיים.
  • התקררות לכל IP -- מגבלת שיעור ניסיונות אימות חוזרים מאותה כתובת.

מחסנית טכנולוגיה

שכבהטכנולוגיה
חוזיםSolidity, פרוסה עם Hardhat ו-Foundry
חזיתNext.js + תגובה
רשתבסיס (Ethereum L2)

פריסה בבסיס שומרת על עלויות גז נמוכות תוך בירושה של ערבויות האבטחה של Ethereum.

מפת דרכים

שיפורים מתוכננים כוללים:

  • אפשרות תשלום למטבע - אפשר לקהילות לדרוש תשלום קטן עבור טביעה, הוספת מחסום כלכלי.
  • אותות אימות נוספים -- התרחבו מעבר ל-SMS לאותות זהות אחרים.
  • כלי ניהול מורחבים - לוחות מחוונים ופקדים עשירים יותר עבור מפעילי קהילה.