Ale nan kontni an
Retounen nan Nymchat

Konesans baz Anba kapo a

Pwotokòl ak evènman yo

Ki sa Nymchat aktyèlman mete sou fil la, pou nenpòt moun ki bati kont li, odit li, oswa lekti evènman ki soti nan yon lòt kliyan Nostr.

Kalite evènman yo

JantiItilize pouNòt
0Metadata pwofilStandard Nostr pwofil: non, foto, banyè, sou, lud16.
5Demann pou efaseNIP-09.
7ReyaksyonNIP-25, ak yon ['k', originalKind] tag pou yon reyaksyon depoze kont kalite kanal la dwat.
13BoucheKouch mitan yon mesaj NIP-17.
14Rimè mesaj priveNon-signed, ak pa janm pibliye sou tèt li. Yon repons fil pote yon ['nymthread', rootId] tag nan fenèt la enkripte, referans id mesaj pataje nan wout la.
1059Anbalaj kadoNIP-59. Ki sa ki aktyèlman rive nan yon relè pou mesaj prive ak gwoup chat.
1984RapòteNIP-56.
9734 / 9735Zap demann ak resi zapNIP-57.
10030Lis pake emoji koutimNIP-30.
20000Mesaj chanèl GeohashEfemèr, tagged ['g', geohash]Yon repons thread ajoute yon NIP-10 marqueur ['e', rootId, '', 'root'] Tag nan.
23333Mesaj chanèl nonEfemèr, tagged ['d', channel]Yon repons thread ajoute yon NIP-10 marqueur ['e', rootId, '', 'root'] Tag nan.
24420 / 24421Endikatè sezisman piblik ak resi lektiNymchat-espesifik, pou chanèl piblik yo.
25051 / 25052Siyal kanmarad-a-kanmarad ak estati transfè dosyeNymchat-espesifik.
30030Ansanm emoji koutimNIP-30.
30078Done aplikasyon yoNIP-78. Biwo biwo vòt yo, senkronize anviwònman chiffres, ak anons kle apre pwopòsyon (tagged nym-pq, ki gen yon kle piblik ML-KEM-768 ak yon ekspirasyon NIP-40).
69420Li resi prive ak estati livrezonNymchat-espesifik, te pote kòm yon rimè andedan yon vlope kado. Yon kalite separe de 14 fè espre, kidonk lòt kliyan NIP-17 pa bay mesaj dirèk vid pou chak resi.

NIPs Nymchat aplike

NIPKi sa li bay Nymchat
NIP-07Konekte avèk yon ekstansyon navigatè.
NIP-09Demann pou efase.
NIP-10 nanMarked repons tags - ki jan yon chanèl thread repons pwen sou mesaj wout li yo.
NIP-13Prèv travay. Mesaj sortan yo min nan omwen 16 bits.
NIP-17Mesaj dirèk prive, ak baz pou gwoup chat.
NIP-25Reyaksyon.
NIP-30Emoji koutim.
NIP-40Timestamps ekspirasyon - mesaj k ap disparèt.
NIP-44Vèsyon chifreman, itilize pou sele, vlope ak anviwònman senkronize.
NIP-46Siyen adistans - bunker://.
NIP-56Rapòte.
NIP-57Zap zèklè.
NIP-59Anbalaj kado.
NIP-78Done aplikasyon abitrè.
NIP-98HTTP otorizasyon, pou pwen final yo òganize.

Kriptografi

Ki koteKi sa
Idantite ak siyatisecp256k1 ak siyati Schnorr (BIP-340), jan Nostr espesifye.
Mesaj prive ak gwoup chatNIP-44 v2: ECDH sou secp256k1, HKDF-SHA256, ChaCha20 ak HMAC-SHA256, ak padding pou longè tèks chifreman pa bay longè mesaj la.
Mesaj prive ak gwoup chat, ant itilizatè Nymchat yomenm NIP-44 v2 pèfòmans, san yo pa modifye, selebre yon dezyèm fwa nan ChaCha20-Poly1305 kle soti nan yon ML-KEM-768 (FIPS 203) enkapsulasyon nan HKDF-SHA256. tèks la enkapsulasyon enkapsulasyon an ak tou de kle idantite yo konekte kòm done ki gen rapò, ak rezilta a pote yon pq2. Prefix pou yon lektè chwazi wout la pa tcheke payload la. Tou de kouch yo dwe ranpli pou retounen yon mesaj. Al gade nan chifreman ki reziste pwopòsyon.
Sesyon may BluetoothBri XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 pou anonse siyati, SHA-256 ak HMAC anba.
Idantite nan repoAES-GCM-256. Kle a soti nan PBKDF2-SHA256 nan 310,000 iterasyon pou yon modpas oswa PIN, oswa soti nan yon pwodiksyon WebAuthn PRF atravè HKDF-SHA256 pou yon passkey oswa byometrik.
Apèl ak transfè dosyeDTLS-SRTP pwòp WebRTC, negosye sou siyal NIP-17 ki anvlope.
AleatwaPlatfòm nan CSPRNG nan tout - kle, nonces, ak kado-vlope timestamp jitter la.

Pwoteksyon metadata

De detay nan chemen an kado-vlope yo vo rele, paske yo se sa ki separe NIP-59 soti nan "chiffre, men evidamman soti nan ou a yo":

  • Chak vlope siyen pa yon kle yon sèl fwa pwodwi pou mesaj sa a pou kont li, kidonk pa gen de vlope pataje yon moun k ap voye.
  • Chak vlope created_at se owaza backdated pa jiska de èdtan lè l sèvi avèk CSPRNG a, kidonk voye ak resevwa fwa yo pa ka aliyen.

Gwoup chat ajoute wotasyon efemèr moun k ap resevwa kle sou tèt sa - wè Kouman gwoup cryptage travay.

Lekti sous la

Primitif kript yo nan js/nym-crypto.js epi js/modules/key-vault.js nan aplikasyon entènèt la, ak anba android-ios-app/lib/core/crypto/ epi lib/services/mesh/noise/ nan aplikasyon Flutter la. La depo se AGPL-3.0 epi li konplè — pa gen okenn eleman fèmen pou pran konfyans.