Springe zum Inhalt
Zurück zu Nymchat

Wissensdatenbank Unter der Haube

Protokoll und Ereignisse

Was Nymchat tatsächlich auf die Probe stellt, für jeden, der dagegen baut, prüfen oder Ereignisse von einem anderen Nostr-Client lesen.

Veranstaltungsarten

ArtVerwendet fürNotizen
0ProfilmetadatenStandard-Nostr-Profil: Name, Bild, Banner, Über, lud16.
5LöschanträgeNIP-09.
7ReaktionenNIP-25, mit a ['k', originalKind] Tag, damit eine Reaktion für den richtigen Kanaltyp abgelegt wird.
13SiegelDie mittlere Schicht einer NIP-17-Nachricht.
14Gerücht über private NachrichtNicht signiert und nie einzeln veröffentlicht.
1059GeschenkverpackungNIP-59. Was tatsächlich ein Relay für private Nachrichten und Gruppenchats erreicht.
1984BerichterstattungNIP-56.
9734 / 9735Zap-Anfrage und Zap-QuittungNIP-57.
10030Benutzerdefinierte Emoji-PacklistenNIP-30.
20000Geohash-KanalnachrichtVergänglich, getaggt ['g', geohash].
23333Benannte KanalnachrichtVergänglich, getaggt ['d', channel].
24420 / 24421Öffentliche Tippindikatoren und LesebestätigungenNymchat-spezifisch, für öffentliche Kanäle.
25051 / 25052Peer-to-Peer-Signalisierung und DateiübertragungsstatusNymchat-spezifisch.
30030Benutzerdefinierte Emoji-SetsNIP-30.
30078BewerbungsdatenNIP-78. Umfragen und verschlüsselte Einstellungen werden synchronisiert.
69420Private Lesebestätigungen und LieferstatusNymchat-spezifisch, als Gerücht in einer Geschenkverpackung getragen. Eine andere Art von 14 absichtlich, damit andere NIP-17-Clients nicht für jede Quittung leere Direktnachrichten rendern.

NIPs, die Nymchat implementiert

NIPWas es Nymchat gibt
NIP-07Melden Sie sich mit einer Browsererweiterung an.
NIP-09Löschanträge.
NIP-13Arbeitsnachweis. Ausgehende Nachrichten werden auf mindestens 16 Bit verkleinert.
NIP-17Private Direktnachrichten und die Grundlage für Gruppenchats.
NIP-25Reaktionen.
NIP-30Benutzerdefiniertes Emoji.
NIP-40Ablaufzeitstempel – verschwindende Nachrichten.
NIP-44Versionierte Verschlüsselung, die für Siegel, Wraps und die Einstellungssynchronisierung verwendet wird.
NIP-46Fernsignierung – bunker://.
NIP-56Berichterstattung.
NIP-57Blitze zucken.
NIP-59Geschenkverpackungen.
NIP-78Beliebige Anwendungsdaten.
NIP-98HTTP-Authentifizierung für die gehosteten Endpunkte.

Kryptographie

WoWas
Identität und Unterschriftensecp256k1 mit Schnorr-Signaturen (BIP-340), wie Nostr angibt.
Private Nachrichten und GruppenchatsNIP-44 v2: ECDH auf secp256k1, HKDF-SHA256, ChaCha20 mit HMAC-SHA256 und Auffüllen, sodass die Chiffretextlänge nicht die Nachrichtenlänge verrät.
Bluetooth-Mesh-SitzungenNoise XX – X25519, ChaCha20-Poly1305 (IETF), Ed25519 für Ankündigungssignaturen, SHA-256 und HMAC darunter.
Identität im RuhezustandAES-GCM-256. Der Schlüssel stammt von PBKDF2-SHA256 bei 310.000 Iterationen für ein Passwort oder eine PIN oder von einer WebAuthn-PRF-Ausgabe über HKDF-SHA256 für einen Passkey oder eine Biometrie.
Anrufe und DateiübertragungenWebRTCs eigenes DTLS-SRTP, ausgehandelt über NIP-17-verpackte Signalisierung.
ZufälligkeitDie Plattform CSPRNG durchweg – Schlüssel, Nonces und der Zeitstempel-Jitter der Geschenkverpackung.

Metadatenschutz

Zwei Details im Geschenkverpackungspfad sind es wert, erwähnt zu werden, denn sie sind es, die NIP-59 auszeichnen von „verschlüsselt, aber offensichtlich von Ihnen an sie“:

  • Jeder Umschlag ist von a signiert Einmalschlüssel nur für diese Nachricht generiert, Daher teilen sich keine zwei Wraps einen Absender.
  • Jeder Wrap ist created_at Ist zufällig um bis zu zwei rückdatiert Stunden unter Verwendung von CSPRNG, daher können Sende- und Empfangszeiten nicht aneinandergereiht werden.

Gruppenchats sorgen für rotierende Vergänglichkeit Empfänger Tasten obendrein – siehe So funktioniert die Gruppenverschlüsselung.

Die Quelle lesen

Die Kryptoprimitive sind da js/nym-crypto.js Und js/modules/key-vault.js in der Web-App und darunter android-ios-app/lib/core/crypto/ Und lib/services/mesh/noise/ in der Flutter-App. Der Repository ist AGPL-3.0 und vollständig – es gibt keine geschlossene Komponente, der man vertrauen kann.