בסיס ידע מתחת למכסה המנוע
פרוטוקול ואירועים
מה ש-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, וריפוד כך שאורך טקסט צופן לא מרחיק את אורך ההודעה. |
| הפעלות רשת Bluetooth | Noise 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 ושלם - אין רכיב סגור לקבל אמון.