NIP-104 define mensagens diretas criptografadas de ponta a ponta usando um protocolo double ratchet (baseado na arquitetura do Signal), fornecendo forward secrecy e post-compromise security para conversas no Nostr.

Por Que É Importante

As soluções existentes de DM no Nostr têm limitações:

  • NIP-04: Criptografa o conteúdo mas vaza metadados
  • NIP-17 + NIP-59: Resolve o vazamento de metadados via gift-wrapping mas não tem forward/backward secrecy

NIP-104 completa o quadro: se a chave privada de um usuário for comprometida, atacantes não podem ler mensagens passadas (forward secrecy) nem continuar lendo mensagens futuras indefinidamente (post-compromise security).

Como Funciona

Configuração Inicial (X3DH)

Duas partes realizam uma troca tripla Diffie-Hellman estendida usando chaves de identidade e prekeys para derivar uma chave raiz compartilhada inicial.

O Double Ratchet

  1. DH Ratchet: Cada vez que as partes trocam mensagens, novas chaves Diffie-Hellman são geradas, produzindo novas chaves raiz e chaves de cadeia
  2. Symmetric Ratchet: Cadeias separadas de envio e recebimento derivam chaves de mensagem individuais para cada mensagem

Esta rotação contínua de chaves garante que comprometer uma chave revele conteúdo mínimo de mensagens.

Event Kinds

  • Kind 442: Publica prekeys do usuário para inicialização X3DH
  • Kind 443: Configuração inicial de conversa com primeira mensagem criptografada
  • Kind 444: Mensagens criptografadas subsequentes em conversas estabelecidas

Todas as mensagens criptografadas são envolvidas em eventos GiftWrap kind 1059 para proteção de metadados.

Tags Principais

  • p - Chave pública do destinatário
  • prekey - Prekey do destinatário para cálculo DH
  • dh_sending - Chave pública DH de envio atual
  • current_index - Número da mensagem na cadeia
  • previous_length - Comprimento da cadeia de mensagens anterior

Limitações

As mensagens funcionam por par dispositivo-cliente. Sincronizar entre múltiplos dispositivos requer inicialização separada para cada dispositivo, uma troca por maior segurança.


Fontes primárias:

Mencionado em:

Veja também: