База ведаў Пад капотам
Пратакол і мерапрыемствы
Тое, што Nymchat фактычна ставіць на дрот, для тых, хто будуе супраць яго, яго аўдыт або чытанне падзей з іншага кліента Nostr.
Для зручнасці гэтая старонка перакладзена машынай. Прымяняецца англійская арыгінал.
Віды мерапрыемстваў
| Ласкавы | Выкарыстоўваецца для | Заўвагі |
|---|---|---|
0 | Метададзеныя профілю | Стандартны профіль Nostr: імя, малюнак, банер, інфармацыя, lud16. |
5 | Запыты на выдаленне | НІП-09. |
7 | Рэакцыі | НІП-25, з а ['k', originalKind] пазнака, каб рэакцыя была пададзена супраць патрэбнага тыпу канала. |
13 | Пячатка | Сярэдні ўзровень паведамлення NIP-17. |
14 | Чутка пра прыватнае паведамленне | Без подпісу і ніколі не публікаваўся самастойна. |
1059 | Падарункавы пакет | НІП-59. Што на самой справе дасягае рэле для асабістых паведамленняў і групавых чатаў. |
1984 | Справаздачнасць | НІП-56. |
9734 / 9735 | Зап-запыт і зап-квітанцыя | НІП-57. |
10030 | Карыстальніцкія спісы набораў эмодзі | НІП-30. |
20000 | Паведамленне канала Geohash | Эфемерныя, пазначаныя ['g', geohash]. |
23333 | Паведамленне з названым каналам | Эфемерныя, пазначаныя ['d', channel]. |
24420 / 24421 | Публічныя індыкатары ўводу і пасведчанні аб прачытанні | Спецыяльна для Nymchat, для грамадскіх каналаў. |
25051 / 25052 | Аднарангавая сігналізацыя і стан перадачы файлаў | Nymchat-канкрэтны. |
30030 | Карыстальніцкія наборы эмодзі | НІП-30. |
30078 | Дадзеныя прыкладання | НІП-78. Апытанні і зашыфраваныя налады сінхранізуюцца. |
69420 | Прыватныя пацверджанні аб прачытанні і статус дастаўкі | Спецыфічны для Nymchat, пераносіцца як чутка ў падарункавай упакоўцы. Асобны від ад 14 наўмысна, каб іншыя кліенты NIP-17 не адлюстроўвалі пустыя прамыя паведамленні для кожнай квітанцыі. |
NIPs Nymchat рэалізуе
| NIP | Што дае Nymchat |
|---|---|
| НІП-07 | Увайдзіце з дапамогай пашырэння браўзера. |
| НІП-09 | Запыты на выдаленне. |
| НІП-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 і запаўненне так, каб даўжыня зашыфраванага тэксту не давала даўжыні паведамлення. |
| Сеансы Bluetooth mesh | Noise 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 і завершаны - няма закрытага кампанента, якому можна давяраць.