Laktawan ti linaonna
Agsubli iti Nymchat

Batayan ti pannakaammo Iti sirok ti hood

Protocol ken dagiti pasamak

Ti aktual nga ikabil ti Nymchat iti alambre, para iti siasinoman a mangbangon a maibusor iti dayta, . panag-audit iti dayta, wenno panagbasa kadagiti pasamak manipud iti sabali a kliyente ti Nostr.

Dagiti kita ti pasamak

KitaNausar para itiDagiti Pakaammo
0Metadata ti profileStandard Nostr profile: nagan, ladawan, bandera, maipapan iti, . lud16.
5Dagiti kiddaw a panangikkatNIP-09 nga.
7Dagiti ReaksionNIP-25, nga addaan iti a ['k', originalKind] tag isu a ti reaksion ket maipila a maibusor iti umno a kita ti kanal.
13MarkaTi tengnga a suson ti mensahe ti NIP-17.
14Pribado a mensahe ti damagDaytoy ket saan a nairekord, ket saan a nairekord.A thread reply carries a ['nymthread', rootId] Napateg ti ruar iti ruar ti mensahe nga id.
1059Gift wrapNIP-59 nga. No ania ti aktual a makadanon iti relay para kadagiti pribado a mensahe ken group chat.
1984PanagreportNIP-56 nga.
9734 / 9735Zap request ken zap ti resiboNIP-57 nga.
10030Dagiti listaan ​​ti kostumbre nga emoji packNIP-30 nga.
20000Mensahe ti kanal ti GeohashEphemeral, nai-tag ['g', geohash]Addaan iti NIP-10 a maragsakan. ['e', rootId, '', 'root'] Addaan iti
23333Nainaganan a mensahe ti channelEphemeral, nai-tag ['d', channel]Addaan iti NIP-10 a maragsakan. ['e', rootId, '', 'root'] Addaan iti
24420 / 24421Public typing indicators ken dagiti resibo ti panagbasaNymchat-espesipiko, para kadagiti publiko a kanal.
25051 / 25052Peer-to-peer a panagsenyas ken kasasaad ti panagiyakar ti fileEspesipiko ti Nymchat.
30030Dagiti kostumbre nga emoji setNIP-30 nga.
30078Datos ti aplikasionNIP-78 nga. Dagiti surbey, panagsinkronisa dagiti na-encrypt a setting, ken dagiti anunsio ti tulbek kalpasan ti kuantum (nai-tag nym-pq, nga awit ti ML-KEM-768 a publiko a tulbek nga addaan iti NIP-40 a panagleppas).
69420Pribado a mabasa dagiti resibo ken kasasaad ti pannakaitedNymchat-specific, awit kas damag iti uneg ti gift wrap. Maysa a naisina a kita manipud 14 inggagara, isu a dagiti dadduma a kliyente ti NIP-17 ket dida mangited kadagiti blangko a direkta a mensahe para iti tunggal maysa a resibo.

NIPs Nymchat nga implementaren

NIPNo ania ti itedna ken ni Nymchat
NIP-07 ngaAglogin babaen ti browser extension.
NIP-09 ngaDagiti kiddaw a panangikkat.
Agtawenak idi 10.Napateg a reaksion a tag: Kasano a kanayonan a thread ti reaksion a punto iti root a mensahe.
NIP-13 ngaPammaneknek ti trabaho. Dagiti rumrummuar a mensahe ket mamina iti di kumurang a 16 a bit.
NIP-17 ngaPribado a direkta a mensahe, ken ti nakaibatayan dagiti group chat.
NIP-25Dagiti Reaksion.
NIP-30 ngaKostumbre nga emoji.
NIP-40 ngaDagiti timestamp ti panagleppas — dagiti agpukaw a mensahe.
NIP-44 ngaBersioned encryption, maus-usar para kadagiti seal, wraps ken settings sync.
NIP-46 ngaRemote nga panagpirma — . bunker://.
NIP-56 ngaPanagreport.
NIP-57 ngaKimat ti zaps.
NIP-59 ngaDagiti balkot ti regalo.
NIP-78 ngaArbitrary nga datos ti aplikasion.
NIP-98 ngaHTTP auth, para kadagiti naisangayan a puntos ti panagpatingga.

Kriptograpia

SadinnoAnia
Kinasiasino ken pirmasecp256k1 nga addaan kadagiti pirma ti Schnorr (BIP-340), a kas ti Nostr ket mangikeddeng.
Pribado a mensahe ken group chatNIP-44 v2: ECDH iti secp256k1, HKDF-SHA256, ChaCha20 nga addaan iti HMAC-SHA256, ken padding isu a ti kaatiddog ​​ti ciphertext ket saan a mangted ti kaatiddog ​​ti mensahe iti adayo.
Pribado a mensahe ken grupo a chat, iti nagbaetan dagiti agar-aramat iti NymchatTi maysa a NIP-44 v2 payload, awan ti modified, ti naidumduma iti ChaCha20-Poly1305 a naidumduma manipud iti maysa a ML-KEM-768 (FIPS 203) a encapsulation babaen ti HKDF-SHA256. Ti encapsulation ciphertext ken dagiti dua identity keys ket naidumduma iti maysa a kasayaatan a data, ken ti resultana ket naidumduma a pq2. Napateg ti prefix tapno maaddaan dagiti readers iti trail babaen iti inspection ti payload. Dakkel a layer ket saan a maaddaan tapno maaddaan iti mensahe. quantum-resistant nga enkripsion.
Dagiti sesion ti Bluetooth meshArimbangaw XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 para kadagiti pirma ti anunsio, SHA-256 ken HMAC iti baba.
Kinasiasino iti panaginanaAES-GCM-256 nga. Ti tulbek ket naggapu manipud iti PBKDF2-SHA256 iti 310,000 nga iterasionda para iti password wenno PIN, wenno manipud iti WebAuthn PRF output babaen ti HKDF-SHA256 para iti passkey wenno biometric.
Tawag ken panagyakar ti fileTi bukod a DTLS-SRTP ti WebRTC, a nakinegosio babaen ti NIP-17-nabalkot a panagsenyas.
KinarandomTi plataporma CSPRNG iti intero — tulbek, nonces, ken ti gift-wrap timestamp jitter.

Panangsalaknib ti metadata

Dua a detalye iti dalan ti gift-wrap ti maikari a awagan, gapu ta isuda ti mangisina iti NIP-59 manipud iti "na-encrypt, ngem nalawag manipud kenka agingga kadakuada":

  • Tunggal wrap ket pirmaan ti a maminsan laeng a tulbek napataud para laeng iti dayta a mensahe, . isu nga awan ti dua a wraps a makibingbingay iti maysa a nangipatulod.
  • Tunggal wrap's created_at ket naiparna a na-backdated agingga iti dua oras nga agus-usar ti CSPRNG, isu a saan a mailinya dagiti oras ti panangipatulod ken panangawat.

Dagiti chat ti grupo ket mangnayon iti agturong nga ephemeral umawat tulbek iti rabaw dayta — kitaen No kasano ti panagandar ti group encryption.

Panagbasa iti gubuayan

Dagiti crypto primitives ket adda iti js/nym-crypto.js ken js/modules/key-vault.js iti web app, ken iti baba android-ios-app/lib/core/crypto/ ken lib/services/mesh/noise/ iti Flutter app. Ti pagidulinan ket AGPL-3.0 ken kompleto — awan ti naserraan a paset a mangala iti panagtalek.