Sidzedze ƒe gɔmeɖoanyi Le ʋuƒoa te
Protocol kple nudzɔdzɔwo
Nusi Nymchat tsɔ de ka la dzi ŋutɔŋutɔ, na amesiame si le xɔ tum ɖe eŋu, . eƒe agbalẽdzikpɔkpɔ, alo nudzɔdzɔwo xexlẽ tso Nostr ƒe asisi bubu gbɔ.
Woɖe axa sia gɔme to mɔ̃ dzi be wòanɔ bɔbɔe. Eŋlisigbe me gbãtɔae nye gɔmeɖeɖe si sɔ.
Nudzɔdzɔ ƒomeviwo
| Nyo dɔme | Wozãnɛ na | De dzesii |
|---|---|---|
0 | Profile metadata | Standard Nostr profile: ŋkɔ, nɔnɔmetata, aflaga, ku ɖe, . lud16. |
5 | Nubiabia be woaɖee ɖa | NIP-09 ƒe agbalẽ. |
7 | Amewo ƒe nuwɔna | NIP-25, si me a ['k', originalKind] tag ale be wotsɔa nuwɔna aɖe dea agbalẽ me ɖe mɔ̃ ƒomevi si sɔ ŋu. |
13 | Nutrenu | NIP-17 gbedasi ƒe titina. |
14 | Ame ŋutɔ ƒe gbedasi ŋuti nyaʋiʋli | Sigã ɖe o, eye wòɖe kple eɖokpe gbeɖe ɖe o. Thread ƒe ɖeɖi ɖo... ['nymthread', rootId] Dziɖuɖu si le nusiɖigbe si ɖe ɖe me la, si ɖe akɔ ƒe nusiɖigbe kplenɔnu siwowo ɖo ɖe ɖe. |
1059 | Nunanawo ƒe babla | NIP-59 ƒe agbalẽa. Nusi tututu ɖoa relay gbɔ na ame ŋutɔ ƒe gbedasiwo kple ƒuƒoƒo me dzeɖoɖowo. |
1984 | Nyatakakawo nana | NIP-56 ƒe agbalẽa. |
9734 / 9735 | Zap biabia kple zap xɔxɔ | NIP-57 ƒe agbalẽa. |
10030 | Emoji pack ƒe xexlẽdzesi siwo wowɔ ɖe ɖoɖo nu | NIP-30 ƒe agbalẽ. |
20000 | Geohash channel ƒe gbedasi | Ephemeral, si wotsɔ dzesi de dzesii ['g', geohash]. Nuŋkpɔpɔ ƒe ɖeɖe ɖeka le NIP-10 nu si wòɖo ɖeŋu ɖema. ['e', rootId, '', 'root'] nyatag |
23333 | Ŋkɔ na mɔ̃a ƒe gbedasi | Ephemeral, si wotsɔ dzesi de dzesii ['d', channel]. Nuŋkpɔpɔ ƒe ɖeɖe ɖeka le NIP-10 nu si wòɖo ɖeŋu ɖema. ['e', rootId, '', 'root'] nyatag |
24420 / 24421 | Dutoƒo nuŋɔŋlɔ ƒe dzesiwo kple nuxexlẽ ƒe gaxɔgbalẽviwo | Nymchat-koŋ, na dutoƒo television dɔwɔƒewo. |
25051 / 25052 | Hatiwo ƒe dzesiwo nana kple faɛl-ɖoɖoɖa ƒe nɔnɔme | Nymchat-koŋ koŋ. |
30030 | Emoji-ɖoɖo siwo wowɔ ɖe ɖoɖo nu | NIP-30 ƒe agbalẽ. |
30078 | Dɔdamɔnu ŋuti nyatakakawo | NIP-78 ƒe agbalẽa. Polls, encrypted settings sync, kple gbeƒãɖeɖe siwo wowɔ le quantum key megbe (wode dzesii nym-pq, si tsɔ ML-KEM-768 dutoƒo safui si ƒe NIP-40 ƒe ɣeyiɣi wu enu). |
69420 | Ame ŋutɔ ƒe nuxexlẽ ƒe gaxɔgbalẽviwo kple dɔdɔ ƒe nɔnɔme | Nymchat-koŋ, si wotsɔna abe nyakpakpa ene le nunana babla me. A ƒomevi aɖe si to vovo tso 14 ɖoe koŋ, ale be NIP-17 ƒe asisi bubuwo meɖoa gbedasi ƒuƒluwo tẽ ɖe gaxɔgbalẽvi ɖesiaɖe ta o. |
NIPs Nymchat wɔa dɔ
| NIP | Nusi wòna Nymchat |
|---|---|
| NIP-07 ƒe agbalẽ | Tsɔ web-browser ƒe kpeɖeŋutɔ ge ɖe eme. |
| NIP-09 ƒe agbalẽ | Nubiabia be woaɖee ɖa. |
| NIP-10 | Kpɔɖeŋu kɔwo — ŋgbɔ le kpɔɖeŋu si le channel thread me la ɖe eƒe nya gɔmeɖeɖe la ɖe. |
| NIP-13 ƒe agbalẽ | Dɔwɔwɔ ƒe kpeɖodzi. Woɖea gbedasi siwo dona ɖa la ɖe bit 16 ya teti dzi. |
| NIP-17 ƒe agbalẽ | Gbedasi siwo woɖona tẽ tso ame ŋutɔ gbɔ, kple nusi dzi woanɔ te ɖo aɖo dze le ƒuƒoƒo me. |
| NIP-25 ƒe agbalẽa | Amewo ƒe nuwɔna. |
| NIP-30 ƒe agbalẽ | Emoji si wowɔ ɖe ɖoɖo nu. |
| NIP-40 ƒe agbalẽa | Expiration timestamps — gbedasi siwo bu. |
| NIP-44 ƒe agbalẽ | Versioned encryption, si wozãna na seals, wraps kple settings sync. |
| NIP-46 ƒe agbalẽ | Asidede agbalẽ te le didiƒe — . bunker://. |
| NIP-56 ƒe agbalẽa | Nyatakakawo nana. |
| NIP-57 ƒe agbalẽa | Dzikedzo ƒe zaps. |
| NIP-59 ƒe agbalẽa | Nunanawo ƒe bablawo. |
| NIP-78 ƒe agbalẽa | Dɔbiagbalẽvi si wowɔ le wo ɖokui si. |
| NIP-98 ƒe agbalẽa | HTTP auth, na nuwuƒe siwo woxɔ. |
Nya ɣaɣlawo ƒe nuŋɔŋlɔ
| Afi ka | Nu ka |
|---|---|
| Dzesidede ame kple asidede agbalẽ te | secp256k1 kple Schnorr ƒe asidede agbalẽ te (BIP-340), abe alesi Nostr gblɔe ene. |
| Ame ŋutɔ ƒe gbedasiwo kple ƒuƒoƒo me dzeɖoɖowo | NIP-44 v2: ECDH le secp256k1, HKDF-SHA256, ChaCha20 kple HMAC-SHA256, kple padding ale be ciphertext ƒe didime mena gbedasi ƒe didime o. |
| Ame ŋutɔ ƒe gbedasiwo kple ƒuƒoƒo me dzeɖoɖowo, le Nymchat zãlawo dome | NIP-44 v2 payload ɖeka ɖeka la, si woɖokui ɖeɖe mela wɔ nu dzi, woɖo eŋu ɖeka dzui le ChaCha20-Poly1305 me si ƒe klu ƒo ɖo ML-KEM-768 (FIPS 203) encapsulation ɖe HKDF-SHA256 ƒe asi me. Encapsulation ciphertext la kple identity keys eve siawo ɖeɖe ɖo associated data ta, eye eƒe nudidiɖe ɖo... pq2. ɖeɖe si wòɖo anyigba ameka nuŋattɔ si ɖea nu la nɔa yiyi ƒe mɔ dzi ɖe nu si le eme la ƒe ɖe ɖe dzi ɖe. Agbalẽ eve siawo ƒe ɖeɖewo me ƒo gbɔ kaba be wòanya nuŋɔŋlɔ si le eme la gbɔ. Va ɖee. nya ɣaɣla si te ŋu nɔa te ɖe quantum nu. |
| Bluetooth mesh ƒe ɣeyiɣiwo | Toɣliɖeɖe XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 na gbeƒãɖeɖe ƒe asidede agbalẽ te, SHA-256 kple HMAC le ete. |
| Dzesidede ame le gbɔɖemeɣi | AES-GCM-256 ƒe agbalẽa. Safuia tso PBKDF2-SHA256 le 310,000 iterations na password alo PIN, alo tso WebAuthn PRF output to HKDF-SHA256 na passkey alo biometric. |
| Kaƒoƒo kple faɛlwo ɖoɖo ɖe amewo | WebRTC ŋutɔ ƒe DTLS-SRTP, si wowɔ ɖoɖo ɖe NIP-17-xatsa dzesiwo ŋu. |
| Nusiwo wowɔna le vome | Nuƒolanɔƒea CSPRNG katã — safuiwo, nonces, kple nunana-xatsa ɣeyiɣidzesi jitter. |
Metadata takpɔkpɔ
Edze be míayɔ nya eve siwo le nunana babla ƒe mɔa dzi tsitotsito, elabena woawoe ma NIP-59 dome tso "encrypted, gake edze ƒã tso gbɔwò va ɖo wo gbɔ":
- Wodea asi agbalẽ xatsaxatsa ɖesiaɖe te kple a safui si wozãna zi ɖeka si wowɔ na gbedasi ma ɖeɖeko, . eyata agbalẽ xatsaxatsa eve aɖeke mamã ame aɖe si ɖoe ɖa o.
- Wrap ɖesiaɖe ƒe
created_atenye wotsɔa eve ɖoa megbe le vome gaƒoƒo geɖe zã CSPRNG, eyata womate ŋu aɖo ɣeyiɣi siwo woaɖo ɖa kple esiwo woaxɔ la ɖe fli me o.
Ƒuƒoƒo me dzeɖoɖowo tsɔa ɣeyiɣi kpui aɖe ƒe nya siwo trɔna kpena ɖe eŋu amesi xɔe safuiwo le ema dzi — kpɔ Alesi ƒuƒoƒo ƒe nya ɣaɣlawo tsɔtsɔ ɣla wɔa dɔe.
Crypto primitives la le eme js/nym-crypto.js kple
js/modules/key-vault.js le web app la me, kple le ete
android-ios-app/lib/core/crypto/ kple
lib/services/mesh/noise/ le Flutter dɔwɔnua me. The
nudzraɖoƒe
nye AGPL-3.0 eye wòwu enu — akpa aɖeke meli si wotu be woaxɔ kakaɖedzi o.