Ugrás a tartalomhoz
Vissza a Nymchathoz

Tudásbázis A motorháztető alatt

Protokoll és események

Amit a Nymchat tulajdonképpen a drótba állít, annak, aki ellene épít, auditálni, vagy eseményeket olvasni egy másik Nostr klienstől.

Rendezvényfajták

FajtaHasználtMegjegyzések
0Profil metaadataiNormál Nostr profil: név, kép, szalaghirdetés, kb. lud16.
5Törlési kérelmekNIP-09.
7ReakciókNIP-25, a ['k', originalKind] címkét, így a rendszer a megfelelő csatornatípusra reagál.
13PecsétA NIP-17 üzenet középső rétege.
14Privát üzenet pletykaAláírás nélkül, és önmagában soha nem jelent meg.
1059AjándékcsomagolásNIP-59. Ami valójában eléri a privát üzenetek és a csoportos csevegés közvetítőjét.
1984JelentésNIP-56.
9734 / 9735Zap kérés és zap nyugtaNIP-57.
10030Egyedi hangulatjel-csomaglistákNIP-30.
20000Geohash csatorna üzenetMúlékony, címkézett ['g', geohash].
23333Elnevezett csatorna üzenetMúlékony, címkézett ['d', channel].
24420 / 24421Nyilvános gépelési jelzők és olvasási nyugtákNymchat-specifikus, nyilvános csatornákhoz.
25051 / 25052Peer-to-peer jelzés és fájlátvitel állapotaNymchat-specifikus.
30030Egyedi hangulatjel-készletekNIP-30.
30078Alkalmazási adatokNIP-78. Szavazások és titkosított beállítások szinkronizálása.
69420Privát olvasási nyugták és a kézbesítés állapotaNymchat-specifikus, pletykaként hordják ajándékcsomagolásban. Külön fajta 14 szándékosan, így más NIP-17 kliensek nem jelenítenek meg üres közvetlen üzeneteket minden nyugtánál.

NIP-ek A Nymchat megvalósítja

KORTYMit ad Nymchat
NIP-07Jelentkezzen be egy böngészőbővítménnyel.
NIP-09Törlési kérelmek.
NIP-13Munkavégzés igazolása. A kimenő üzenetek legalább 16 bitesre vannak bányászva.
NIP-17Közvetlen privát üzenetek és a csoportos csevegés alapja.
NIP-25Reakciók.
NIP-30Egyéni hangulatjel.
NIP-40Lejárati időbélyegek – eltűnő üzenetek.
NIP-44Verziózott titkosítás, tömítésekhez, burkoláshoz és beállítások szinkronizálásához.
NIP-46Távoli aláírás - bunker://.
NIP-56Jelentés.
NIP-57Villámcsapások.
NIP-59Ajándékcsomagolások.
NIP-78Önkényes pályázati adatok.
NIP-98HTTP hitelesítés a tárolt végpontokhoz.

Kriptográfia

AholMi
Személyazonosság és aláírásoksecp256k1 Schnorr aláírásokkal (BIP-340), ahogy Nostr meghatározza.
Privát üzenetek és csoportos csevegésNIP-44 v2: ECDH a secp256k1-en, HKDF-SHA256, ChaCha20 HMAC-SHA256-tal és kitöltés, így a titkosított szöveg hossza nem adja meg az üzenet hosszát.
Bluetooth mesh munkamenetekNoise XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 az aláírások bejelentéséhez, SHA-256 és HMAC alatta.
Identitás nyugalmi állapotbanAES-GCM-256. A kulcs a PBKDF2-SHA256-tól származik 310 000 iterációval jelszó vagy PIN-kód esetén, vagy a WebAuthn PRF-kimenetből a HKDF-SHA256-on keresztül jelszó vagy biometrikus adat esetén.
Hívások és fájlátvitelA WebRTC saját DTLS-SRTP-je, NIP-17-be csomagolt jelzésen keresztül egyeztetve.
VéletlenszerűségA platform CSPRNG az egészben – kulcsok, tilosak és az ajándékcsomagolás időbélyegzői.

Metaadatvédelem

Az ajándékcsomagolás két részletét érdemes megemlíteni, mert ezek különválasztják a NIP-59-et a "titkosított, de nyilván tőled nekik":

  • Minden csomagot aláír a egyszeri kulcs csak erre az üzenetre generálva, így nincs két wrap osztozva a feladón.
  • Minden pakolás created_at van véletlenszerűen legfeljebb kettővel visszadátumozva óra CSPRNG használatával, így a küldési és fogadási idők nem állíthatók össze.

A csoportos csevegések forgó jellegűek befogadó kulcsok azon felül – lásd Hogyan működik a csoportos titkosítás.

A forrás olvasása

A kriptoprimitívek benne vannak js/nym-crypto.js és js/modules/key-vault.js a webalkalmazásban és alatta android-ios-app/lib/core/crypto/ és lib/services/mesh/noise/ a Flutter alkalmazásban. A adattár az AGPL-3.0 és teljes – nincs olyan zárt összetevő, amely a bizalmat felveheti.