Sciobazo Sub la kapuĉo
Protokolo kaj eventoj
Kion Nymchat efektive metas sur la draton, por iu ajn konstruanta kontraŭ ĝi, revizii ĝin, aŭ legi eventojn de alia Nostr-kliento.
Ĉi tiu paĝo estas maŝintradukita por komforto. La angla originalo estas la versio kiu validas.
Eventaj specoj
| Afabla | Uzita por | Notoj |
|---|---|---|
0 | Metadatumoj de profilo | Norma Nostr-profilo: nomo, bildo, standardo, pri, lud16. |
5 | Petoj pri forigo | NIP-09. |
7 | Reagoj | NIP-25, kun a ['k', originalKind] etikedo do reago estas registrita kontraŭ la ĝusta kanala tipo. |
13 | Sigelo | La meza tavolo de NIP-17-mesaĝo. |
14 | Privata mesaĝo famo | Sensubskribita, kaj nekiam publikigita memstare. Respondo en fadenurbo portas ['nymthread', rootId] etiketo interne de la ĉifrita rumoro, referencante al la komuna mesaĝ-identigilo de la radiko. |
1059 | Donaco | NIP-59. Kio efektive atingas stafetadon por privataj mesaĝoj kaj grupaj babilejoj. |
1984 | Raportado | NIP-56. |
9734 / 9735 | Zap peto kaj zap kvitanco | NIP-57. |
10030 | Propraj listoj de emoji-pakaĵoj | NIP-30. |
20000 | Geohash-kanala mesaĝo | Efemera, etikedita ['g', geohash]. Respondo al fadenujo aldonas NIP-10 markitan ['e', rootId, '', 'root'] etiketo. |
23333 | Nomita kanala mesaĝo | Efemera, etikedita ['d', channel]. Respondo al fadenujo aldonas NIP-10 markitan ['e', rootId, '', 'root'] etiketo. |
24420 / 24421 | Publikaj tajpaj indikiloj kaj legi kvitancoj | Nymchat-specifa, por publikaj kanaloj. |
25051 / 25052 | Kunul-al-kunula signalado kaj dosiertransigo-statuso | Nymchat-specifa. |
30030 | Propraj emoji-aroj | NIP-30. |
30078 | Aplikaj datumoj | NIP-78. Enketoj, ĉifritaj agordoj sinkronigas kaj post-kvantumajn ŝlosilajn anoncojn (etikeditaj nym-pq, portanta ML-KEM-768 publikan ŝlosilon kun NIP-40 eksvalidiĝo). |
69420 | Privataj legaj kvitancoj kaj livera stato | Nymchat-specifa, portita kiel onidiro ene de donacpakaĵo. Aparta speco de 14 intence, do aliaj NIP-17-klientoj ne faras malplenajn rektajn mesaĝojn por ĉiu kvitanco. |
NIPs Nymchat iloj
| NIP | Kion ĝi donas Nymchat |
|---|---|
| NIP-07 | Ensalutu per retumila etendo. |
| NIP-09 | Petoj pri forigo. |
| NIP-10 | Markitaj respondetagoj — kiel kanala filiga respondo indikas sian radikan mesaĝon. |
| NIP-13 | Pruvo de laboro. Elirantaj mesaĝoj estas minitaj al almenaŭ 16 bitoj. |
| NIP-17 | Privataj rektaj mesaĝoj, kaj la bazo por grupaj babilejoj. |
| NIP-25 | Reagoj. |
| NIP-30 | Propra emoji. |
| NIP-40 | Finiĝaj tempomarkoj - malaperantaj mesaĝoj. |
| NIP-44 | Versia ĉifrado, uzata por sigeloj, envolvaĵoj kaj agordoj sinkronigi. |
| NIP-46 | Fora subskribo - bunker://. |
| NIP-56 | Raportado. |
| NIP-57 | Fulmo zapas. |
| NIP-59 | Donacaj pakaĵoj. |
| NIP-78 | Arbitraj aplikaj datumoj. |
| NIP-98 | HTTP-aŭth, por la gastigitaj finpunktoj. |
Kriptografio
| Kie | Kio |
|---|---|
| Identeco kaj subskriboj | secp256k1 kun Schnorr-signaturoj (BIP-340), kiel Nostr specifas. |
| Privataj mesaĝoj kaj grupaj babilejoj | NIP-44 v2: ECDH sur secp256k1, HKDF-SHA256, ChaCha20 kun HMAC-SHA256, kaj kompletigo tiel ĉifrtekstolongo ne forlasas la mesaĝolongon. |
| Privataj mesaĝoj kaj grupaj babilejoj, inter Nymchat-uzantoj | La sama NIP-44 v2-ŝarĝono, neŝanĝita, denove sigilis interne de ChaCha20-Poly1305 klavita de ML-KEM-768 (FIPS 203) enkapsuligo tra HKDF-SHA256. La enkapsuliga ĉifroteksto kaj ambaŭ identigŝlosiloj estas ligitaj kiel kunsideca datumaro, kaj la rezulto portas... pq2. prefiksu por ke leganto elektu la vojon per inspektado de la payload. Ambaŭ tavoloj devas esti rompataj por recuperi mesaĝon. Vidu kvantum-rezistema ĉifrado. |
| Bluetooth-retaj sesioj | Bruo XX - X25519, ChaCha20-Poly1305 (IETF), Ed25519 por anonci subskribojn, SHA-256 kaj HMAC sube. |
| Identeco en ripozo | AES-GCM-256. La ŝlosilo venas de PBKDF2-SHA256 ĉe 310,000 ripetoj por pasvorto aŭ PIN, aŭ de WebAuthn PRF-produktaĵo tra HKDF-SHA256 por pasvorto aŭ biometria. |
| Vokoj kaj dosieraj translokigoj | La propra DTLS-SRTP de WebRTC, negocita super NIP-17-envolvita signalado. |
| Hazardeco | La platformo CSPRNG ĉie - ŝlosiloj, noncoj, kaj la donac-paka tempostampilo. |
Protekto de metadatumoj
Du detaloj en la donacpaka vojo indas voki, ĉar ili estas kiuj apartigas NIP-59 de "ĉifrita, sed evidente de vi al ili":
- Ĉiu envolvaĵo estas subskribita de a unufoja ŝlosilo generita por tiu mesaĝo sole, do neniuj du envolvaĵoj dividas sendilon.
- Ĉiu envolvaĵo
created_atestas hazarde postdatigita de ĝis du horoj uzante la CSPRNG, do sendi kaj ricevi tempojn ne povas esti vicigitaj.
Grupaj babilejoj aldonas turniĝantajn efemerajn ricevanto klavoj sur tio — vidu Kiel grupa ĉifrado funkcias.
La kriptaj primitivuloj estas en js/nym-crypto.js kaj
js/modules/key-vault.js en la retejo, kaj sub
android-ios-app/lib/core/crypto/ kaj
lib/services/mesh/noise/ en la apo Flutter. La
deponejo
estas AGPL-3.0 kaj kompleta — ne ekzistas fermita komponanto por akcepti fidon.