NIP-104 is een draft voor end-to-end versleutelde directe berichten met een Double Ratchet-ontwerp, bedoeld om forward secrecy en post-compromise recovery naar Nostr-gesprekken te brengen.

Waarom Het Belangrijk Is

Bestaande Nostr DM-oplossingen hebben beperkingen:

  • NIP-04: Versleutelt inhoud, maar lekt metadata
  • NIP-17 + NIP-59: Lost metadata-lekkage op via gift wrapping, maar mist forward/backward secrecy

NIP-104 richt zich op die ontbrekende eigenschap: als een apparaatstatus of langetermijnsleutel wordt gecompromitteerd, hoort een aanvaller niet automatisch de volledige gespreksgeschiedenis te krijgen of blijvende toegang tot toekomstige berichten.

Hoe Het Werkt

NIP-104 begint met een X3DH-achtige setup die identity keys en prekeys combineert om een eerste shared secret af te leiden. Daarna laat elke kant een Double Ratchet vooruitgaan: een Diffie-Hellman ratchet roteert root keys en chain keys wanneer partijen nieuwe public keys uitwisselen, en een symmetric ratchet leidt per-message keys af binnen elke verzend- of ontvangstketen.

Omdat elke message key kort leeft, zijn oude ciphertexts moeilijker te herstellen, zelfs als een latere state wordt blootgesteld. Dat is het belangrijkste technische verschil met schema’s die op een enkele static key steunen.

Event Kinds

  • Kind 10443: Publiceert user prekeys voor X3DH-initialisatie
  • Kind 443: Eerste gesprekssetup met versleuteld eerste bericht
  • Kind 444: Volgende versleutelde berichten in bestaande gesprekken

Alle versleutelde berichten worden verpakt in kind 1059 GiftWrap-events voor metadata-bescherming.

Beveiliging en Afwegingen

De beveiligingswinst komt met meer state. Elke device pairing heeft ratchet state, prekey-beheer en herstel-logica voor out-of-order delivery nodig. Een oude back-up terugzetten of meerdere niet-gesynchroniseerde apparaten gebruiken kan decryptie breken totdat het gesprek opnieuw is opgezet.

Die afweging verklaart waarom Double Ratchet-berichten lastiger achteraf toe te voegen zijn dan gewone versleutelde notities. Clients hebben duurzame lokale state en zorgvuldige device-semantiek nodig, niet alleen een encryptieprimitive.

Interop-opmerkingen

Het voorstel gebruikt aparte setup- en message kinds plus NIP-59: Gift Wrap voor transportprivacy. Het raadt ook aan deze gift-wrapped events alleen te publiceren naar relays die in de kind 10050 DM-relay preference event van een gebruiker staan. Dat betekent dat NIP-104 niet simpelweg een drop-in replacement is voor NIP-17: Private Direct Messages; clients hebben expliciete ondersteuning nodig voor de prekey-flow, DM-relay discovery en de ratchet state machine.


Primaire bronnen:

Vermeld in:

Zie ook: