דלג לתוכן
חזרה ל-Nymchat

בסיס ידע מתחת למכסה המנוע

פרוטוקול ואירועים

מה ש-Nymchat בעצם שם על החוט, לכל מי שבונה נגדו, ביקורת עליו, או קריאת אירועים מלקוח אחר של Nostr.

סוגי אירועים

סוּגמשמש עבורהערות
0מטא נתונים של פרופילפרופיל Nostr סטנדרטי: שם, תמונה, באנר, אודות, lud16.
5בקשות מחיקהNIP-09.
7תגובותNIP-25, עם א ['k', originalKind] תג כך שתגובתה תוגש נגד סוג הערוץ הנכון.
13לֶאֱטוֹםהשכבה האמצעית של הודעת NIP-17.
14שמועה בהודעה פרטיתלא חתום, ומעולם לא פורסם בפני עצמו.
1059אריזת מתנהNIP-59. מה בעצם מגיע לממסר להודעות פרטיות ולצ'אטים קבוצתיים.
1984דיווחNIP-56.
9734 / 9735בקשת זאפ וקבלה זאפNIP-57.
10030רשימות חבילות אמוג'י מותאמות אישיתNIP-30.
20000הודעת ערוץ Geohashארעית, מתויג ['g', geohash].
23333הודעת ערוץ עם שםארעית, מתויג ['d', channel].
24420 / 24421מחווני הקלדה ציבוריים ואישורי קריאהספציפית ל-Nymchat, לערוצים ציבוריים.
25051 / 25052איתות עמית לעמית ומצב העברת קבציםספציפית ל-Nymchat.
30030ערכות אימוג'י מותאמות אישיתNIP-30.
30078נתוני אפליקציהNIP-78. סקרים והגדרות מוצפנות מסתנכרנים.
69420אישורי קריאה פרטיים ומצב מסירהספציפית ל-Nymchat, נישא כשמועה בתוך אריזת מתנה. סוג נפרד מ 14 בכוונה, כך שלקוחות אחרים של NIP-17 אינם מעבירים הודעות ישירות ריקות עבור כל קבלה.

NIPs Nymchat מיישמת

צְבִיטָהמה זה נותן ל-Nymchat
NIP-07התחבר עם סיומת דפדפן.
NIP-09בקשות מחיקה.
NIP-13הוכחה לעבודה. הודעות יוצאות נמכרות ל-16 סיביות לפחות.
NIP-17הודעות ישירות פרטיות, והבסיס לצ'אטים קבוצתיים.
NIP-25תגובות.
NIP-30אימוג'י מותאם אישית.
NIP-40חותמות זמן תפוגה - הודעות נעלמות.
NIP-44הצפנה גרסה, משמשת לחותמות, גלישות וסנכרון הגדרות.
NIP-46חתימה מרחוק - bunker://.
NIP-56דיווח.
NIP-57ברק זורחת.
NIP-59אריזות מתנה.
NIP-78נתוני יישום שרירותיים.
NIP-98אימות HTTP, עבור נקודות הקצה המתארחות.

קריפטוגרפיה

אֵיפֹהמַה
זהות וחתימותsecp256k1 עם חתימות Schnorr (BIP-340), כפי שמציין Nostr.
הודעות פרטיות וצ'אטים קבוצתייםNIP-44 v2: ECDH ב-secp256k1, HKDF-SHA256, ChaCha20 עם HMAC-SHA256, וריפוד כך שאורך טקסט צופן לא מרחיק את אורך ההודעה.
הפעלות רשת BluetoothNoise XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 להכרזה על חתימות, SHA-256 ו-HMAC מתחת.
זהות במנוחהAES-GCM-256. המפתח מגיע מ-PBKDF2-SHA256 ב-310,000 איטרציות עבור סיסמה או PIN, או מפלט WebAuthn PRF דרך HKDF-SHA256 עבור מפתח סיסמה או ביומטרי.
שיחות והעברת קבציםה-DTLS-SRTP של WebRTC עצמו, מנוהל באמצעות איתות עטוף NIP-17.
אקראיותהפלטפורמה CSPRNG לכל אורך הדרך - מפתחות, נונסים וריצוד חותמת זמן של עטיפת מתנות.

הגנה על מטא נתונים

כדאי לקרוא שני פרטים בנתיב אריזת המתנות, כי הם מה שמפריד בין NIP-59 מ"מוצפן, אבל ברור ממך אליהם":

  • כל עטיפה חתומה על ידי א מפתח חד פעמי נוצר עבור ההודעה הזו בלבד, כך שאין שני גלישות שחולקות שולח.
  • כל עטיפה של created_at הוא עדכון אקראי של עד שניים שעות באמצעות ה-CSPRNG, כך שלא ניתן להתאים את זמני השליחה והקבלה.

צ'אטים קבוצתיים מוסיפים ארעיות מסתובבות מְקַבֵּל מקשים נוסף על כך - ראה כיצד פועלת הצפנה קבוצתית.

קריאת המקור

הפרימיטיבים הקריפטו נמצאים בפנים js/nym-crypto.js ו js/modules/key-vault.js באפליקציית האינטרנט ומטה android-ios-app/lib/core/crypto/ ו lib/services/mesh/noise/ באפליקציית Flutter. ה מאגר הוא AGPL-3.0 ושלם - אין רכיב סגור לקבל אמון.