Skip menyang isi
Bali menyang Nymchat

Basis kawruh Ing ngisor hood

Protokol lan acara

Apa Nymchat bener sijine ing kabel, kanggo sapa bangunan marang iku, audit, utawa maca acara saka klien Nostr liyane.

Jenis acara

jenisDigunakake kanggoCathetan
0Metadata profilProfil Nostr standar: jeneng, gambar, spanduk, babagan, lud16.
5Panjaluk pambusakanNIP-09.
7ReaksiNIP-25, kanthi a ['k', originalKind] tag supaya reaksi diajukake marang jinis saluran tengen.
13SegelLapisan tengah pesen NIP-17.
14Gosip pesen pribadiUnsigned, lan ora tau diterbitake dhewe.
1059bungkus kadoNIP-59. Apa sing bener tekan relay kanggo pesen pribadi lan obrolan grup.
1984NglaporakeNIP-56.
9734 / 9735Panjaluk zap lan kuitansi zapNIP-57.
10030Dhaptar paket emoji khususNIP-30.
20000Pesen saluran GeohashEphemeral, diwenehi tag ['g', geohash].
23333Pesen saluran jenengeEphemeral, diwenehi tag ['d', channel].
24420 / 24421Indikator ngetik umum lan kuitansi sing diwacaNymchat-tartamtu, kanggo saluran umum.
25051 / 25052Peer-to-peer signaling lan status transfer fileNymchat-tartamtu.
30030Setel emoji khususNIP-30.
30078Data aplikasiNIP-78. Jajak pendapat, lan sinkronisasi setelan sing dienkripsi.
69420Kuitansi diwaca pribadi lan status pangirimanNymchat-tartamtu, digawa minangka gosip nang bungkus hadiah. A jinis kapisah saka 14 kanthi sengaja, supaya klien NIP-17 liyane ora menehi pesen langsung kosong kanggo saben kuitansi.

NIPs Nymchat ngleksanakake

NIPApa menehi Nymchat
NIP-07Mlebet nganggo ekstensi browser.
NIP-09Panjaluk pambusakan.
NIP-13Bukti karya. Pesen metu ditambang paling sethithik 16 bit.
NIP-17Pesen langsung pribadi, lan basis kanggo obrolan grup.
NIP-25Reaksi.
NIP-30Emoji khusus.
NIP-40Stempel wektu kadaluwarsa - pesen sing ilang.
NIP-44Enkripsi versi, digunakake kanggo segel, bungkus lan sinkronisasi setelan.
NIP-46Penandatanganan jarak jauh - bunker://.
NIP-56Nglaporake.
NIP-57Petir keprungu.
NIP-59Bungkus kado.
NIP-78Data aplikasi sewenang-wenang.
NIP-98Otentikasi HTTP, kanggo titik pungkasan sing di-host.

Kriptografi

ngendiapa
Identitas lan tekensecp256k1 karo teken Schnorr (BIP-340), minangka Nostr nemtokake.
Pesen pribadi lan obrolan grupNIP-44 v2: ECDH ing secp256k1, HKDF-SHA256, ChaCha20 karo HMAC-SHA256, lan padding supaya dawa ciphertext ora menehi dawa pesen.
Sesi mesh BluetoothNoise XX - X25519, ChaCha20-Poly1305 (IETF), Ed25519 kanggo tandha tandha, SHA-256 lan HMAC ing ngisor.
Identitas ing istirahatAES-GCM-256. Tombol teka saka PBKDF2-SHA256 ing 310.000 iterasi kanggo sandi utawa PIN, utawa saka output WebAuthn PRF liwat HKDF-SHA256 kanggo passkey utawa biometric.
Telpon lan transfer fileWebRTC dhewe DTLS-SRTP, rembugan liwat NIP-17-kebungkus signaling.
RandomnessPlatform CSPRNG ing kabeh - tombol, nonces, lan jitter timestamp bungkus hadiah.

Proteksi metadata

Rong rincian ing dalan bungkus hadiah kudu diarani, amarga iku NIP-59 sing kapisah saka "enkripsi, nanging temenan saka sampeyan kanggo wong-wong mau":

  • Saben bungkus ditandatangani dening a tombol siji-wektu digawe mung kanggo pesen kasebut, dadi ora loro bungkus nuduhake pangirim.
  • Saben bungkus created_at punika acak backdated dening nganti loro jam nggunakake CSPRNG, supaya ngirim lan nampa kaping ora bisa diantrekake.

Obrolan grup nambahake puteran ephemeral panampa tombol ing ndhuwur sing - ndeleng Cara kerja enkripsi grup.

Maca sumber

Primitif crypto ana ing js/nym-crypto.js lan js/modules/key-vault.js ing aplikasi web, lan ing ngisor android-ios-app/lib/core/crypto/ lan lib/services/mesh/noise/ ing aplikasi Flutter. Ing gudang punika AGPL-3.0 lan lengkap - ora ana komponen ditutup kanggo njupuk ing dateng.