Wëssensbasis Ënnert der Hood
Protokoll an Evenementer
Wat Nymchat tatsächlech op den Drot setzt, fir jiddereen deen dergéint baut, Audit et, oder liesen Evenementer vun engem aneren Nostr Client.
Dës Säit ass Maschinn iwwersat fir Kamoudheet. Déi englesch Original ass d'Versioun déi gëlt.
Event Zorte
| Aart | Benotzt fir | Notizen |
|---|---|---|
0 | Profil Metadaten | Standard Nostr Profil: Numm, Bild, Banner, iwwer, lud16. |
5 | Läschen Demanden | NIP-09. |
7 | Reaktiounen | NIP-25, mat engem ['k', originalKind] Tag sou datt eng Reaktioun géint de richtege Kanaltyp ofgehale gëtt. |
13 | Sigel | D'Mëtt Schicht vun engem NIP-17 Message. |
14 | Privat Message Rumeur | Net ënnerschriwwen, an ni eleng publizéiert. |
1059 | Geschenkverpackung | NIP-59. Wat erreecht tatsächlech e Relais fir privat Messagen a Gruppechats. |
1984 | Berichterstattung | NIP-56. |
9734 / 9735 | Zap Ufro an Zap Empfang | NIP-57. |
10030 | Benotzerdefinéiert Emoji Pack Lëschten | NIP-30. |
20000 | Geohash Kanal Message | Ephemeral, tagged ['g', geohash]. |
23333 | Numm Kanal Message | Ephemeral, tagged ['d', channel]. |
24420 / 24421 | Ëffentlech Schreifweis Indicateuren a Liesempfänger | Nymchat-spezifesch, fir ëffentlech Kanäl. |
25051 / 25052 | Peer-to-Peer-Signalisatioun an Datei-Transferstatus | Nymchat-spezifesch. |
30030 | Benotzerdefinéiert Emoji Sets | NIP-30. |
30078 | Applikatioun Daten | NIP-78. Ëmfroen, a verschlësselte Astellunge synchroniséiert. |
69420 | Privat liesen Empfang a Liwwerung Status | Nymchat-spezifesch, als Rumeur an engem Kaddoverpackung gedroen. Eng separat Zort vun 14 bewosst, sou datt aner NIP-17 Clienten net eidel Direktnoriichten fir all Empfang maachen. |
NIPs Nymchat implementéiert
| NIP | Wat et gëtt Nymchat |
|---|---|
| NIP-07 | Login mat enger Browser Extensioun. |
| NIP-09 | Läschen Demanden. |
| NIP-13 | Beweis vun Aarbecht. Ausgaang Messagen ginn op d'mannst 16 Bits ofgebaut. |
| NIP-17 | Privat Direktnoriichten, an der Basis fir Grupp Chat. |
| NIP-25 | Reaktiounen. |
| NIP-30 | Benotzerdefinéiert Emoji. |
| NIP-40 | Verfallszäitstempel - verschwannen Messagen. |
| NIP-44 | Versioun Verschlësselung, benotzt fir Seals, Wraps an Astellungssynchroniséierung. |
| NIP-46 | Fernënnerschrëft - bunker://. |
| NIP-56 | Berichterstattung. |
| NIP-57 | Blëtz zaps. |
| NIP-59 | Cadeau Wraps. |
| NIP-78 | Arbiträr Uwendungsdaten. |
| NIP-98 | HTTP Auth, fir déi gehost Endpunkte. |
Kryptographie
| Wou | Wat |
|---|---|
| Identitéit an Ënnerschrëften | secp256k1 mat Schnorr Ënnerschrëften (BIP-340), wéi Nostr spezifizéiert. |
| Privat Messagen a Gruppchats | NIP-44 v2: ECDH op secp256k1, HKDF-SHA256, ChaCha20 mat HMAC-SHA256, a padding sou Chiffertext Längt gëtt de Message Längt net ewech. |
| Bluetooth Mesh Sessiounen | Noise XX - X25519, ChaCha20-Poly1305 (IETF), Ed25519 fir Ënnerschrëften ze verkënnegen, SHA-256 an HMAC drënner. |
| Identitéit am Rescht | AES-GCM-256. De Schlëssel kënnt aus PBKDF2-SHA256 bei 310.000 Iteratiounen fir e Passwuert oder PIN, oder vun engem WebAuthn PRF Output duerch HKDF-SHA256 fir e Passschlëssel oder biometresch. |
| Appellen an Fichier Transfere | WebRTC säin eegene DTLS-SRTP, ausgehandelt iwwer NIP-17-gewéckelt Signaléierung. |
| Zoufällegkeet | D'Plattform CSPRNG uechter - Schlësselen, Nonces, an de Kaddo-Wrap Zäitstempel Jitter. |
Metadatenschutz
Zwee Detailer am Cadeau-Wrap-Wee sinn derwäert ze ruffen, well se sinn déi separat NIP-59 aus "verschlësselte, awer selbstverständlech vun Iech un hinnen":
- All Wrap gëtt ënnerschriwwen vun engem eng Kéier Schlëssel eleng fir dee Message generéiert, also keng zwee Wraps deelen e Sender.
- All Wrap ass
created_atass zoufälleg backdated vun bis zu zwee Stonnen benotzt der CSPRNG, sou schécken an kréien mol kann net opgestallt ginn.
Gruppechats addéiere rotéierend ephemeral Empfänger Schlësselen op erop - gesinn Wéi Gruppeverschlësselung funktionnéiert.
D'Krypto Primitiv sinn an js/nym-crypto.js an
js/modules/key-vault.js an der Web App, an ënner
android-ios-app/lib/core/crypto/ an
lib/services/mesh/noise/ an der Flutter App. Déi
repository
ass AGPL-3.0 a komplett - et gëtt keng zouene Komponente fir Vertrauen ze huelen.