Baza znanja Ispod haube
Protokol i događaji
Šta Nymchat zapravo stavlja na žicu, za svakoga ko se gradi protiv toga, reviziju ili čitanje događaja od drugog Nostr klijenta.
Ova stranica je strojno prevedena radi praktičnosti. Engleski original je verzija koja se primjenjuje.
Vrste događaja
| Ljubazno | Koristi se za | Bilješke |
|---|---|---|
0 | Metapodaci profila | Standardni Nostr profil: ime, slika, baner, o, lud16. |
5 | Zahtjevi za brisanje | NIP-09. |
7 | Reakcije | NIP-25, sa a ['k', originalKind] tag tako da se reakcija podnese protiv pravog tipa kanala. |
13 | Pečat | Srednji sloj NIP-17 poruke. |
14 | Privatna poruka glasina | Nesigniran, i nikada nije objavljen sam po sebi. Odgovor na thread nosi ['nymthread', rootId] oznaka unutar šifrirane glasine, upućivanje na id zajedničke poruke korena. |
1059 | Gift wrap | NIP-59. Šta zapravo stiže do releja za privatne poruke i grupne razgovore. |
1984 | Izvještavanje | NIP-56. |
9734 / 9735 | Zap zahtjev i zap račun | NIP-57. |
10030 | Prilagođene liste paketa emojija | NIP-30. |
20000 | Poruka Geohash kanala | Efemerno, označeno ['g', geohash]Odgovor na thread dodaje NIP-10 označen ['e', rootId, '', 'root'] Tagovi |
23333 | Poruka imenovanog kanala | Efemerno, označeno ['d', channel]Odgovor na thread dodaje NIP-10 označen ['e', rootId, '', 'root'] Tagovi |
24420 / 24421 | Indikatori javnog kucanja i potvrde o čitanju | Specifično za Nymchat, za javne kanale. |
25051 / 25052 | Peer-to-peer signalizacija i status prijenosa datoteka | Specifično za Nymchat. |
30030 | Prilagođeni setovi emotikona | NIP-30. |
30078 | Podaci aplikacije | NIP-78. Ankete, sinhronizacija šifrovanih postavki i najave post-kvantnog ključa (označene nym-pq, koji nosi javni ključ ML-KEM-768 sa NIP-40 istekom). |
69420 | Privatne potvrde o čitanju i status isporuke | Specifično za Nymchat, prenosi se kao glasina u omotu poklona. Zasebna vrsta od 14 namerno, tako da drugi NIP-17 klijenti ne renderuju prazne direktne poruke za svaki račun. |
NIP-ovi koje Nymchat implementira
| NIP | Šta daje Nymchatu |
|---|---|
| NIP-07 | Prijavite se sa ekstenzijom pretraživača. |
| NIP-09 | Zahtjevi za brisanje. |
| Uslovi 10 | Označene oznake odgovora – kako kanal thread odgovori ukazuju na svoju korenu poruke. |
| NIP-13 | Dokaz o radu. Odlazne poruke su minirane na najmanje 16 bita. |
| NIP-17 | Privatne direktne poruke i osnova za grupne razgovore. |
| NIP-25 | Reakcije. |
| NIP-30 | Prilagođeni emoji. |
| NIP-40 | Vremenske oznake isteka — poruke koje nestaju. |
| NIP-44 | Versionirano šifriranje, koristi se za pečate, omote i sinhronizaciju postavki. |
| NIP-46 | Daljinsko potpisivanje — bunker://. |
| NIP-56 | Izvještavanje. |
| NIP-57 | Munje zaps. |
| NIP-59 | Zamotavanje poklona. |
| NIP-78 | Proizvoljni podaci aplikacije. |
| NIP-98 | HTTP auth, za hostovane krajnje tačke. |
Kriptografija
| Gdje | sta |
|---|---|
| Identitet i potpisi | secp256k1 sa Schnorr potpisima (BIP-340), kako navodi Nostr. |
| Privatne poruke i grupni razgovori | NIP-44 v2: ECDH na secp256k1, HKDF-SHA256, ChaCha20 sa HMAC-SHA256 i dopuna tako da dužina šifrovanog teksta ne odaje dužinu poruke. |
| Privatne poruke i grupni razgovori između Nymchat korisnika | Isti NIP-44 v2 korisni teret, nepromijenjen, zapečaćen drugi put unutar ChaCha20-Poly1305, ključan iz ML-KEM-768 (FIPS 203) enkapsulacije kroz HKDF-SHA256. pq2. Prefiks tako da čitalac odabere put ispitivanjem korisnog opterećenja. Oba sloja moraju biti slomljena da bi se vratila poruka. kvantno otporna enkripcija. |
| Bluetooth mesh sesije | Buka XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 za potpise najave, SHA-256 i HMAC ispod. |
| Identitet u mirovanju | AES-GCM-256. Ključ dolazi od PBKDF2-SHA256 u 310.000 iteracija za lozinku ili PIN, ili iz WebAuthn PRF izlaza preko HKDF-SHA256 za pristupni ključ ili biometriju. |
| Pozivi i prijenos datoteka | WebRTC-ov vlastiti DTLS-SRTP, dogovoren preko signalizacije umotane u NIP-17. |
| Slučajnost | Platforma CSPRNG svuda — ključevi, nonces i treperenje vremenske oznake poklona. |
Zaštita metapodataka
Dva detalja na putu za umotavanje poklona vredi pozvati, jer oni su ono što izdvaja NIP-59 od "šifrirano, ali očito od vas do njih":
- Svaki omot je potpisan od strane a jednokratni ključ generirano samo za tu poruku, tako da nema dva omota koja dijele pošiljaoca.
- Svaki omot
created_atje nasumično pozadinskim datumom do dva sati koristeći CSPRNG, tako da se vremena slanja i primanja ne mogu poredati.
Grupni razgovori dodaju rotirajući efemer primalac tasteri povrh toga — vidi Kako funkcionira grupno šifriranje.
Kripto primitivi su tu js/nym-crypto.js i
js/modules/key-vault.js u web aplikaciji i ispod
android-ios-app/lib/core/crypto/ i
lib/services/mesh/noise/ u aplikaciji Flutter. The
spremište
je AGPL-3.0 i kompletan — ne postoji zatvorena komponenta kojoj bi se moglo preuzeti povjerenje.