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üli, és soha nem tették közzé önmagukban. ['nymthread', rootId] címke a titkosított pletyka belsejében, hivatkozva a gyökér megosztott üzenetazonosítójára.
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]A thread válasz hozzáadja a NIP-10 jelölést ['e', rootId, '', 'root'] A tag.
23333Elnevezett csatorna üzenetMúlékony, címkézett ['d', channel]A thread válasz hozzáadja a NIP-10 jelölést ['e', rootId, '', 'root'] A tag.
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, titkosított beállítások szinkronizálása és kvantumkulcs utáni bejelentések (címkézett nym-pqML-KEM-768 nyilvános kulcsot tartalmaz NIP-40 lejárattal).
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-10 részletekMegjelölt válaszcímkék – hogyan jelöli meg a csatorna szál a válaszot a gyökérüzenetre.
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.
Privát üzenetek és csoportos csevegés Nymchat felhasználók közöttUgyanaz a NIP-44 v2 hasznos terhelés, változatlanul, másodszor lezárt ChaCha20-Poly1305 belsejében, egy ML-KEM-768 (FIPS 203) encapsulációból a HKDF-SHA256-on keresztül. pq2. előtag, így az olvasó kiválasztja az utat a hasznos terhelés ellenőrzésével. Mindkét réteget meg kell szakítani az üzenet visszaszerzéséhez. lásd kvantumálló titkosítás.
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.