Перайсці да зместу
Вярнуцца да Nymchat

База ведаў Пад капотам

Пратакол і мерапрыемствы

Тое, што Nymchat фактычна ставіць на дрот, для тых, хто будуе супраць яго, яго аўдыт або чытанне падзей з іншага кліента Nostr.

Віды мерапрыемстваў

ЛаскавыВыкарыстоўваецца дляЗаўвагі
0Метададзеныя профілюСтандартны профіль Nostr: імя, малюнак, банер, інфармацыя, lud16.
5Запыты на выдаленнеНІП-09.
7РэакцыіНІП-25, з а ['k', originalKind] пазнака, каб рэакцыя была пададзена супраць патрэбнага тыпу канала.
13ПячаткаСярэдні ўзровень паведамлення NIP-17.
14Чутка пра прыватнае паведамленнеБез падпісаў, і ніколі не апублікавана самастойна. ['nymthread', rootId] У гэтым выпадку пешаходы, якія сканчаюць пераход, уяўляюць істотную небяспеку (мал.
1059Падарункавы пакетНІП-59. Што на самой справе дасягае рэле для асабістых паведамленняў і групавых чатаў.
1984СправаздачнасцьНІП-56.
9734 / 9735Зап-запыт і зап-квітанцыяНІП-57.
10030Карыстальніцкія спісы набораў эмодзіНІП-30.
20000Паведамленне канала GeohashЭфемерныя, пазначаныя ['g', geohash]У адказ на прынцып дадаецца NIP-10 ['e', rootId, '', 'root'] Дзень
23333Паведамленне з названым каналамЭфемерныя, пазначаныя ['d', channel]У адказ на прынцып дадаецца NIP-10 ['e', rootId, '', 'root'] Дзень
24420 / 24421Публічныя індыкатары ўводу і пасведчанні аб прачытанніСпецыяльна для Nymchat, для грамадскіх каналаў.
25051 / 25052Аднарангавая сігналізацыя і стан перадачы файлаўNymchat-канкрэтны.
30030Карыстальніцкія наборы эмодзіНІП-30.
30078Дадзеныя прыкладанняНІП-78. Апытанні, сінхранізацыя зашыфраваных налад і аб'явы пасля квантавых ключоў (пазначаныя тэгамі nym-pq, з адкрытым ключом ML-KEM-768 з тэрмінам дзеяння NIP-40).
69420Прыватныя пацверджанні аб прачытанні і статус дастаўкіСпецыфічны для Nymchat, пераносіцца як чутка ў падарункавай упакоўцы. Асобны від ад 14 наўмысна, каб іншыя кліенты NIP-17 не адлюстроўвалі пустыя прамыя паведамленні для кожнай квітанцыі.

NIPs Nymchat рэалізуе

NIPШто дае Nymchat
НІП-07Увайдзіце з дапамогай пашырэння браўзера.
НІП-09Запыты на выдаленне.
НІП-10Маркаваныя тэгі адказаў — як каналавая трэна адказвае на яе ручавое паведамленне.
НІП-13Доказ працы. Выходныя паведамленні здабываюцца як мінімум да 16 біт.
НІП-17Асабістыя прамыя паведамленні і аснова для групавых чатаў.
НІП-25Рэакцыі.
НІП-30Карыстальніцкія эмодзі.
НІП-40Тэрмін дзеяння — знікаючыя паведамленні.
НІП-44Версійнае шыфраванне, якое выкарыстоўваецца для пячатак, абгортак і сінхранізацыі налад.
НІП-46Аддаленае падпісанне - bunker://.
НІП-56Справаздачнасць.
НІП-57Маланкавы запс.
НІП-59Падарункавыя ўпакоўкі.
НІП-78Адвольныя даныя прыкладання.
НІП-98Аўтэнтыка HTTP для размешчаных канчатковых кропак.

Крыптаграфія

дзеШто
Асоба і подпісыsecp256k1 з подпісамі Schnorr (BIP-340), як паказвае Nostr.
Асабістыя паведамленні і групавыя чатыNIP-44 v2: ECDH на secp256k1, HKDF-SHA256, ChaCha20 з HMAC-SHA256 і запаўненне так, каб даўжыня зашыфраванага тэксту не давала даўжыні паведамлення.
Асабістыя паведамленні і групавыя чаты паміж карыстальнікамі NymchatТое ж NIP-44 v2 прыкладнасці, незмяненне, запечатаны другі раз ў ChaCha20-Poly1305 ключавы з ML-KEM-768 (FIPS 203) інкапсуляцыі праз HKDF-SHA256. pq2. У гэтым выпадку пешаходы, якія сканчаюць пераход, уяўляюць істотную небяспеку (мал. квантава-ўстойлівае шыфраванне.
Сеансы Bluetooth meshNoise XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 для подпісаў аб'яў, SHA-256 і HMAC унізе.
Ідэнтычнасць у спакоіAES-GCM-256. Ключ паступае з PBKDF2-SHA256 на 310 000 ітэрацый для пароля або PIN-кода або з вываду WebAuthn PRF праз HKDF-SHA256 для ключа доступу або біяметрыі.
Званкі і перадачы файлаўУласны DTLS-SRTP WebRTC, узгоднены праз сігналізацыю, абгорнутую NIP-17.
ВыпадковасцьПлатформа CSPRNG паўсюдна — ключы, разнастайныя нумары і дрыгаценне меткі часу падарункавай упакоўкі.

Абарона метададзеных

Дзве дэталі на шляху падарункавай упакоўкі вартыя ўвагі, таму што яны адрозніваюць NIP-59 ад «зашыфравана, але відавочна ад вас да іх»:

  • Кожная абгортка падпісваецца а аднаразовы ключ створаны толькі для гэтага паведамлення, так што ніякія дзве абгорткі не маюць агульнага адпраўніка.
  • Кожная абгортка created_at ёсць выпадковым чынам задняй датай да двух гадзіны з выкарыстаннем CSPRNG, таму час адпраўкі і атрымання не можа быць супастаўлены.

Групавыя чаты дадаюць эфемерныя элементы, якія верцяцца атрымальнік ключы паверх гэтага — гл Як працуе групавое шыфраванне.

Чытанне крыніцы

Прымітывы крыпта ўваходзяць js/nym-crypto.js і js/modules/key-vault.js у вэб-праграме і пад android-ios-app/lib/core/crypto/ і lib/services/mesh/noise/ у дадатку Flutter. The сховішча з'яўляецца AGPL-3.0 і завершаны - няма закрытага кампанента, якому можна давяраць.