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 diterbitake kanthi dhewe. A thread reply carries a ['nymthread', rootId] tag ing rumor sing dienkripsi, referensi id pesan umum root.
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]Jawaban thread nambah NIP-10 sing ditandhegake ['e', rootId, '', 'root'] Tag iku.
23333Pesen saluran jenengeEphemeral, diwenehi tag ['d', channel]Jawaban thread nambah NIP-10 sing ditandhegake ['e', rootId, '', 'root'] Tag iku.
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, sinkronisasi setelan terenkripsi, lan pengumuman kunci pasca-kuantum (tagged nym-pq, mawa kunci umum ML-KEM-768 kanthi kadaluwarsa NIP-40).
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.
Niki 10Tag respon sing ditandhegake - cara thread channel ngetokake respon menyang pesan akar.
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.
Pesen pribadi lan obrolan grup, antarane pangguna NymchatNIP-44 v2 payload sing padha, unmodified, ditutup ing ing ChaCha20-Poly1305 ing kali iki kunci saka ML-KEM-768 (FIPS 203) encapsulation liwat HKDF-SHA256. pq2. Prefix supaya pembaca milih jalur kanthi nindakake payload. Kedhaftar lapisan kudu dipecahake kanggo njaluk pesan. enkripsi tahan kuantum.
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.