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 | Nesubskribita, kaj neniam publikigita memstare. |
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]. |
23333 | Nomita kanala mesaĝo | Efemera, etikedita ['d', channel]. |
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 kaj ĉifritaj agordoj sinkronigas. |
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-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. |
| 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.