Kennisbasis Under de motorkap
Protokol en eveneminten
Wat Nymchat eins op 'e draad set, foar elkenien dy't der tsjin bouwt, it kontrolearjen, of it lêzen fan eveneminten fan in oare Nostr-kliïnt.
Dizze side is masine-oerset foar it gemak. It Ingelske orizjineel is de ferzje dy't jildt.
Event soarten
| Soart | Wurdt brûkt foar | Notysjes |
|---|---|---|
0 | Profile metadata | Standert Nostr profyl: namme, foto, banner, oer, lud16. |
5 | Wiskje fersiken | NIP-09. |
7 | Reaksjes | NIP-25, mei in ['k', originalKind] tag sadat in reaksje wurdt yntsjinne tsjin it juste kanaaltype. |
13 | Segel | De middelste laach fan in NIP-17 berjocht. |
14 | Privee berjocht geroft | Unsubsigned, en nooit publisearre op syn eigen. A thread response carries a ['nymthread', rootId] tag yn 'e encrypted rumor, referinting de ferdielde berjocht id fan' e wortel. |
1059 | Gift wrap | NIP-59. Wat eins berikt in estafette foar privee berjochten en groep chats. |
1984 | Ferslachjouwing | NIP-56. |
9734 / 9735 | Zap fersyk en Zap ûntfangst | NIP-57. |
10030 | Oanpaste emoji-pakketlisten | NIP-30. |
20000 | Geohash kanaal berjocht | Efemêr, tagged ['g', geohash]A thread response adds a NIP-10 markearre ['e', rootId, '', 'root'] De tag. |
23333 | Neamd kanaal berjocht | Efemêr, tagged ['d', channel]A thread response adds a NIP-10 markearre ['e', rootId, '', 'root'] De tag. |
24420 / 24421 | Iepenbiere typen yndikatoaren en lêsbewizen | Nymchat-spesifyk, foar iepenbiere kanalen. |
25051 / 25052 | Peer-to-peer-sinjalearjen en status fan bestânoerdracht | Nymchat-spesifike. |
30030 | Oanpaste emoji-sets | NIP-30. |
30078 | Applikaasje gegevens | NIP-78. Polls, syngronisaasje fan fersifere ynstellings, en oankundigings nei kwantumkaaien (tagged nym-pq, mei in ML-KEM-768 iepenbiere kaai mei in NIP-40 ferfaldatum). |
69420 | Privee lêsbewizen en leveringstatus | Nymchat-spesifyk, droegen as in geroft yn in kado-wrap. In apart soarte fan 14 mei opsetsin, sadat oare NIP-17-kliïnten gjin lege direkte berjochten werjaan foar elke ûntfangst. |
NIPs Nymchat ymplemintearret
| NIP | Wat it jout Nymchat |
|---|---|
| NIP-07 | Oanmelde mei in browser tafoeging. |
| NIP-09 | Wiskje fersiken. |
| Ynfloed 10 | Markearre antwurd tags - hoe't in kanaal thread antwurd punten op syn root berjocht. |
| NIP-13 | Bewiis fan wurk. Utgeande berjochten wurde mined oan op syn minst 16 bits. |
| NIP-17 | Privee direkte berjochten, en de basis foar groepchats. |
| NIP-25 | Reaksjes. |
| NIP-30 | Oanpaste emoji. |
| NIP-40 | Ferrintiidstempels - ferdwine berjochten. |
| NIP-44 | Fersifere fersifering, brûkt foar sealen, wraps en syngronisaasje fan ynstellingen. |
| NIP-46 | Undertekening op ôfstân - bunker://. |
| NIP-56 | Ferslachjouwing. |
| NIP-57 | Wjerljocht slacht. |
| NIP-59 | Gift wraps. |
| NIP-78 | Willekeurige applikaasje gegevens. |
| NIP-98 | HTTP auth, foar de hosted einpunten. |
Kryptografy
| Wêr | Wat |
|---|---|
| Identiteit en hantekeningen | secp256k1 mei Schnorr hantekeningen (BIP-340), lykas Nostr spesifisearret. |
| Privee berjochten en groep chats | NIP-44 v2: ECDH op secp256k1, HKDF-SHA256, ChaCha20 mei HMAC-SHA256, en padding sa ciphertext lingte jout it berjocht lingte net fuort. |
| Privee berjochten en groepchats, tusken Nymchat-brûkers | Itselde NIP-44 v2 payload, unmodified, ferdield in twadde kear yn 'e ChaCha20-Poly1305 keyed út in ML-KEM-768 (FIPS 203) encapsulation troch HKDF-SHA256. pq2. It earste krantsje kaam út yn april, mar it earste krantsje kaam út yn april en it earste krantsje kaam út yn april. quantum-resistant fersifering. |
| Bluetooth mesh sesjes | Noise XX - X25519, ChaCha20-Poly1305 (IETF), Ed25519 foar oankundigje hantekeningen, SHA-256 en HMAC derûnder. |
| Identiteit yn rêst | AES-GCM-256. De kaai komt fan PBKDF2-SHA256 by 310.000 iteraasjes foar in wachtwurd of PIN, of fan in WebAuthn PRF-útfier fia HKDF-SHA256 foar in wachtwurd of biometrysk. |
| Oproppen en triem oerdracht | WebRTC's eigen DTLS-SRTP, ûnderhannele oer NIP-17-ferpakte sinjalearring. |
| Randomness | It platfoarm CSPRNG rûnom - kaaien, nonces, en de kado-wrap tiidstempel jitter. |
Metadata beskerming
Twa details yn 'e kado-wrappaad binne it wurdich om te roppen, om't se binne wat apart NIP-59 fan "fersifere, mar fansels fan jo nei harren":
- Elke wrap is tekene troch in ien kear kaai generearre foar dat berjocht allinich, dus gjin twa wraps diele in stjoerder.
- Elke wrap is
created_atis willekeurich backdated troch maksimaal twa oeren mei help fan de CSPRNG, sadat ferstjoeren en ûntfange tiden kinne net line up.
Groepchats foegje rotearjende efemere ta ûntfanger kaaien boppedat - sjoch Hoe groep fersifering wurket.
De krypto-primitiven binne yn js/nym-crypto.js en
js/modules/key-vault.js yn 'e webapp, en ûnder
android-ios-app/lib/core/crypto/ en
lib/services/mesh/noise/ yn de Flutter-app. De
repository
is AGPL-3.0 en folslein - d'r is gjin sletten komponint om fertrouwen te nimmen.