Βάση γνώσεων Κάτω από την κουκούλα
Πρωτόκολλο και γεγονότα
Τι βάζει το Nymchat στην πραγματικότητα, για όποιον τάσσεται εναντίον του, ελέγχοντάς το ή διαβάζοντας συμβάντα από άλλο πελάτη της Nostr.
Αυτή η σελίδα έχει μεταφραστεί μηχανικά για ευκολία. Το αγγλικό πρωτότυπο είναι η έκδοση που ισχύει.
Είδη εκδηλώσεων
| Είδος | Χρησιμοποιείται για | Σημειώσεις |
|---|---|---|
0 | Μεταδεδομένα προφίλ | Τυπικό προφίλ Nostr: όνομα, εικόνα, banner, σχετικά, lud16. |
5 | Αιτήματα διαγραφής | NIP-09. |
7 | Αντιδράσεις | NIP-25, με α ['k', originalKind] ετικέτα, ώστε να κατατεθεί μια αντίδραση στον σωστό τύπο καναλιού. |
13 | Σφραγίδα | Το μεσαίο στρώμα ενός μηνύματος NIP-17. |
14 | Ιδιωτικό μήνυμα φήμες | Μη υπογεγραμμένο, και ποτέ δεν δημοσιεύθηκε από μόνο του. Μια απάντηση thread φέρει ένα ['nymthread', rootId] ετικέτα μέσα στην κρυπτογραφημένη φήμη, αναφέροντας το κοινόχρηστο αναγνωριστικό μηνύματος της ρίζας. |
1059 | Συσκευασία δώρου | NIP-59. Τι πραγματικά φτάνει σε ένα ρελέ για προσωπικά μηνύματα και ομαδικές συνομιλίες. |
1984 | Αναφορά | NIP-56. |
9734 / 9735 | Zap αίτημα και zap απόδειξη | NIP-57. |
10030 | Προσαρμοσμένες λίστες πακέτων emoji | NIP-30. |
20000 | Μήνυμα καναλιού Geohash | Εφήμερο, με ετικέτα ['g', geohash]Μια απάντηση thread προσθέτει ένα NIP-10 ['e', rootId, '', 'root'] Τη μέρα. |
23333 | Μήνυμα με όνομα καναλιού | Εφήμερο, με ετικέτα ['d', channel]Μια απάντηση thread προσθέτει ένα NIP-10 ['e', rootId, '', 'root'] Τη μέρα. |
24420 / 24421 | Δημόσιοι δείκτες πληκτρολόγησης και αποδείξεις ανάγνωσης | Ειδικά για το Nymchat, για δημόσια κανάλια. |
25051 / 25052 | Σηματοδότηση peer-to-peer και κατάσταση μεταφοράς αρχείων | Ειδικά για το Nymchat. |
30030 | Προσαρμοσμένα σύνολα emoji | NIP-30. |
30078 | Δεδομένα εφαρμογής | NIP-78. Δημοσκοπήσεις, συγχρονισμός κρυπτογραφημένων ρυθμίσεων και ανακοινώσεις μετά το κβαντικό κλειδί (με ετικέτα nym-pq, που φέρει δημόσιο κλειδί ML-KEM-768 με λήξη NIP-40). |
69420 | Ιδιωτικές αποδείξεις ανάγνωσης και κατάσταση παράδοσης | Ειδικά για το Nymchat, που μεταφέρεται ως φήμη μέσα σε μια συσκευασία δώρου. Ένα ξεχωριστό είδος από 14 σκόπιμα, έτσι ώστε άλλοι πελάτες NIP-17 να μην αποδίδουν κενά άμεσα μηνύματα για κάθε απόδειξη. |
NIP που εφαρμόζει το Nymchat
| ΤΣΙΜΠΩ | Τι δίνει στο Nymchat |
|---|---|
| NIP-07 | Συνδεθείτε με μια επέκταση προγράμματος περιήγησης. |
| NIP-09 | Αιτήματα διαγραφής. |
| ΝΙΠ-10 | Σημειωμένες ετικέτες απαντήσεων - πώς ένα κανάλι thread απαντά στο μήνυμα ρίζας του. |
| NIP-13 | Απόδειξη εργασίας. Τα εξερχόμενα μηνύματα εξορύσσονται σε τουλάχιστον 16 bit. |
| NIP-17 | Ιδιωτικά άμεσα μηνύματα και η βάση για ομαδικές συνομιλίες. |
| NIP-25 | Αντιδράσεις. |
| NIP-30 | Προσαρμοσμένα emoji. |
| NIP-40 | Χρονικές σημάνσεις λήξης — μηνύματα που εξαφανίζονται. |
| NIP-44 | Κρυπτογράφηση με έκδοση, που χρησιμοποιείται για σφραγίδες, αναδιπλώσεις και συγχρονισμό ρυθμίσεων. |
| NIP-46 | Απομακρυσμένη υπογραφή — bunker://. |
| NIP-56 | Αναφορά. |
| NIP-57 | Κεραυνοί κραδασμοί. |
| NIP-59 | Συσκευασίες δώρου. |
| NIP-78 | Αυθαίρετα δεδομένα εφαρμογής. |
| NIP-98 | HTTP auth, για τα φιλοξενούμενα τελικά σημεία. |
Κρυπτογράφηση
| Οπου | Τι |
|---|---|
| Ταυτότητα και υπογραφές | secp256k1 με υπογραφές Schnorr (BIP-340), όπως ορίζει η Nostr. |
| Ιδιωτικά μηνύματα και ομαδικές συνομιλίες | NIP-44 v2: ECDH σε secp256k1, HKDF-SHA256, ChaCha20 με HMAC-SHA256 και συμπλήρωση ώστε το μήκος κρυπτογραφημένου κειμένου να μην απομακρύνει το μήκος του μηνύματος. |
| Ιδιωτικά μηνύματα και ομαδικές συνομιλίες, μεταξύ χρηστών Nymchat | Το ίδιο φορτίο χρήσης NIP-44 v2, αμετάβλητο, σφραγισμένο για δεύτερη φορά μέσα στο ChaCha20-Poly1305 κλειδωμένο από ένα ML-KEM-768 (FIPS 203) ενσωμάτωση μέσω HKDF-SHA256. pq2. Προφίλ έτσι ώστε ένας αναγνώστης να επιλέξει το μονοπάτι ελέγχοντας το φορτίο χρήσης. Και τα δύο στρώματα πρέπει να σπάσουν για να ανακτήσουν ένα μήνυμα. Κβαντική κρυπτογράφηση. |
| Συνεδρίες Bluetooth mesh | 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 παντού — πλήκτρα, nonces και το jitter της χρονικής σφραγίδας συσκευασίας δώρου. |
Προστασία μεταδεδομένων
Δύο λεπτομέρειες στη διαδρομή αναδίπλωσης δώρου αξίζει να αναφερθούν, γιατί είναι αυτά που χωρίζουν το NIP-59 από "κρυπτογραφημένα, αλλά προφανώς από εσάς σε αυτούς":
- Κάθε περιτύλιγμα υπογράφεται από έναν κλειδί μιας χρήσης που δημιουργήθηκε μόνο για αυτό το μήνυμα, έτσι δεν υπάρχουν δύο αναδιπλώσεις που να μοιράζονται έναν αποστολέα.
- Κάθε περιτύλιγμα
created_atείναι τυχαία χρονολόγηση με έως και δύο ώρες χρησιμοποιώντας το CSPRNG, επομένως οι χρόνοι αποστολής και λήψης δεν μπορούν να ευθυγραμμιστούν.
Οι ομαδικές συνομιλίες προσθέτουν περιστρεφόμενα εφήμερα παραλήπτης πλήκτρα πάνω από αυτό — βλ Πώς λειτουργεί η ομαδική κρυπτογράφηση.
Τα crypto primitives είναι μέσα js/nym-crypto.js και
js/modules/key-vault.js στην εφαρμογή Ιστού και κάτω
android-ios-app/lib/core/crypto/ και
lib/services/mesh/noise/ στην εφαρμογή Flutter. Ο
αποθήκη
είναι AGPL-3.0 και πλήρης — δεν υπάρχει κλειστό στοιχείο για την ανάληψη εμπιστοσύνης.