¿Qué es Nostr?
Objetivos de Aprendizaje
Al final de esta lección, entenderás:
- Qué significa Nostr y sus principios centrales
- Cómo Nostr difiere de las plataformas de redes sociales tradicionales
- Los componentes fundamentales del protocolo Nostr
- Los beneficios de las redes sociales descentralizadas
Introducción
Nostr significa "Notes and Other Stuff Transmitted by Relays" (Notas y Otras Cosas Transmitidas por Relés). Es un protocolo simple y abierto que permite redes sociales globales, descentralizadas y resistentes a la censura.
A diferencia de las plataformas de redes sociales tradicionales, Nostr opera sin una autoridad central, dando a los usuarios control completo sobre su identidad y datos a través de pares de llaves criptográficas.
Principios Centrales
Arquitectura Descentralizada
Nostr opera en una red de relés independientes en lugar de servidores centralizados, eliminando puntos únicos de falla y control.
Soberanía del Usuario
Los usuarios mantienen propiedad completa de su identidad a través de llaves criptográficas, asegurando que ninguna plataforma pueda prohibirlos o silenciarlos permanentemente.
Simplicidad del Protocolo
El protocolo prioriza la simplicidad sobre la complejidad, haciéndolo confiable, eficiente y fácil de implementar.
Resistencia a la Censura
La naturaleza distribuida de los relés asegura que el contenido no pueda ser censurado globalmente por ninguna entidad singular.
Arquitectura del Protocolo
graph TB
User[👤 Usuario] -->|publica eventos| R1[🔄 Relé 1]
User -->|publica eventos| R2[🔄 Relé 2]
User -->|publica eventos| R3[🔄 Relé 3]
R1 -->|distribuye a| Follower[👤 Seguidor]
R2 -->|distribuye a| Follower
R3 -->|distribuye a| OtherUsers[👤 Otros Usuarios]
Follower -->|publica respuesta| R1
Follower -->|publica respuesta| R2
R1 -->|entrega a| User
R2 -->|entrega a| User
style User fill:#e1f5fe
style Follower fill:#e8f5e8
style OtherUsers fill:#e8f5e8
style R1 fill:#fff3e0
style R2 fill:#fff3e0
style R3 fill:#fff3e0
El protocolo opera a través del siguiente proceso:
- Creación de Eventos: Los usuarios crean eventos firmados usando sus llaves privadas
- Distribución por Relés: Los eventos se envían a múltiples relés para almacenamiento y distribución
- Descubrimiento de Contenido: Otros usuarios consultan relés para recuperar eventos relevantes
- Interacción de Red: Los usuarios pueden responder e interactuar, creando nuevos eventos en la red
Componentes del Protocolo
Eventos
Todo el contenido en Nostr se representa como eventos - objetos JSON que contienen campos estandarizados:
{
"id": "hash_identificador_evento",
"pubkey": "llave_publica_autor",
"created_at": 1234567890,
"kind": 1,
"tags": [],
"content": "Contenido del mensaje",
"sig": "firma_criptografica"
}
Propiedades Clave: - Inmutable: Los eventos no pueden modificarse después de crearse - Verificable: Las firmas digitales aseguran autenticidad - Portable: Los eventos funcionan en todos los clientes y relés de Nostr
Relés
Servidores independientes que almacenan y reenvían eventos. Las características de los relés incluyen:
- Operación Autónoma: Cada relé opera independientemente con sus propias políticas
- Filtrado Configurable: Los relés pueden implementar reglas personalizadas de moderación de contenido
- Redundancia de Red: Múltiples relés proporcionan tolerancia a fallos y resistencia a la censura
- Protocolo Simple: Los relés implementan una API directa basada en WebSocket
Clientes
Aplicaciones que proporcionan interfaces de usuario para interactuar con el protocolo Nostr:
- Gestión de Llaves: Generación, almacenamiento y uso seguro de llaves criptográficas
- Comunicación Multi-Relé: Conectar a múltiples relés simultáneamente para redundancia
- Procesamiento de Eventos: Crear, firmar, verificar y mostrar eventos según especificaciones del protocolo
- Experiencia de Usuario: Abstraer la complejidad del protocolo detrás de interfaces intuitivas
Implementación Técnica
Estructura y Validación de Eventos
Los eventos deben cumplir reglas específicas de validación:
{
"id": "32 bytes en hex minúscula del sha256 de datos serializados del evento",
"pubkey": "32 bytes en hex minúscula de la llave pública",
"created_at": "timestamp unix en segundos",
"kind": "entero entre 0 y 65535",
"tags": "arreglo de arreglos de strings",
"content": "string arbitrario",
"sig": "64 bytes en hex minúscula de la firma"
}
// Pseudocódigo para validación de eventos
function validateEvent(event) {
// 1. Verificar que los campos requeridos estén presentes
if (!hasRequiredFields(event)) return false;
// 2. Verificar que el ID coincida con el hash del contenido
if (event.id !== computeEventId(event)) return false;
// 3. Verificar firma
if (!verifySignature(event.sig, event.id, event.pubkey)) return false;
// 4. Verificar validez del timestamp
if (!isValidTimestamp(event.created_at)) return false;
return true;
}
Protocolo de Comunicación de Relés
Los relés implementan un protocolo basado en WebSocket con tres tipos de mensajes:
Tipo de Mensaje | Propósito | Formato |
---|---|---|
EVENT | Publicar eventos al relé | ["EVENT", <JSON del evento>] |
REQ | Solicitar eventos del relé | ["REQ", <id_suscripcion>, <filtros...>] |
CLOSE | Cerrar suscripción | ["CLOSE", <id_suscripcion>] |
Comparación Arquitectónica
Aspecto | Plataformas Tradicionales | Protocolo Nostr |
---|---|---|
Control de Identidad | Cuentas propiedad de la plataforma | Llaves criptográficas controladas por el usuario |
Almacenamiento de Datos | Bases de datos centralizadas | Red distribuida de relés |
Moderación de Contenido | Políticas de toda la plataforma | Políticas por relé con elección del usuario |
Control de Algoritmo | Propietario, impulsado por ganancias | Abierto, configurable por el usuario |
Dependencia del Proveedor | Altos costos de cambio | Identidad y datos portables |
Punto Único de Falla | Infraestructura de la plataforma | Sin dependencias globales |
Ejercicio Práctico: Exploración de la Red
Ejercicio de Análisis del Protocolo
Objetivo: Examinar eventos reales de Nostr para entender la estructura del protocolo
Pasos:
1. Visita nostr.band para explorar la red
2. Busca eventos recientes usando el hashtag #nostr
3. Haz clic en eventos individuales para examinar su estructura JSON
4. Identifica los diferentes tipos de eventos y sus propósitos
5. Nota la variedad de relés siendo usados en toda la red
Preguntas de Análisis: - ¿Cuántos tipos diferentes de eventos puedes identificar? - ¿Qué patrones notas en las estructuras de etiquetas? - ¿Cómo proporcionan las llaves públicas y firmas verificación de identidad?
Beneficios y Compensaciones del Protocolo
Ventajas del Protocolo
Beneficios de Descentralización
- ✅ Eliminación de puntos únicos de falla o control
- ✅ Resistencia a la censura y manipulación de plataformas
- ✅ Propiedad del usuario sobre identidad y datos
- ✅ Ecosistema competitivo de clientes y servicios
Ventajas Técnicas
- ✅ Especificación de protocolo simple y bien definida
- ✅ Seguridad y verificación criptográfica
- ✅ Diseño extensible a través de NIPs (Posibilidades de Implementación de Nostr)
- ✅ Baja barrera de entrada para desarrolladores y operadores de relés
Consideraciones Técnicas
Limitaciones Actuales
- ⚠️ Complejidad de gestión de llaves para usuarios promedio
- ⚠️ Potencial para spam sin filtrado centralizado
- ⚠️ Desafíos de descubrimiento y selección de relés
- ⚠️ Funciones limitadas de privacidad incorporadas para metadatos
Consideraciones de Escalabilidad
- ⚠️ Requisitos de almacenamiento y ancho de banda de relés
- ⚠️ Sobrecarga computacional de verificación de eventos
- ⚠️ Efectos de red y desafíos de adopción
NIPs: Extensiones del Protocolo
Las Posibilidades de Implementación de Nostr (NIPs) definen extensiones y estándares del protocolo:
NIP | Título | Propósito |
---|---|---|
NIP-01 | Flujo básico del protocolo | Especificaciones centrales de eventos y relés |
NIP-02 | Lista de contactos y nombres de mascotas | Gestión de seguimiento y contactos |
NIP-04 | Mensajes directos encriptados | Comunicación privada |
NIP-05 | Verificación basada en DNS | Identificadores legibles por humanos |
NIP-09 | Eliminación de eventos | Mecanismos de eliminación de contenido |
NIP-11 | Documento de información del relé | Metadatos y políticas del relé |
Ejercicio Práctico: Análisis de Eventos
Inmersión Técnica Profunda
Tarea: Analizar la estructura de diferentes tipos de eventos de Nostr
Instrucciones: 1. Usa un cliente de Nostr o interfaz web para examinar eventos 2. Documenta las diferencias entre tipos de eventos (0, 1, 3, 7) 3. Analiza patrones de uso de etiquetas en diferentes tipos de eventos 4. Verifica firmas de eventos usando herramientas disponibles
Resultados Esperados: - Comprensión de variaciones en estructura de eventos - Reconocimiento de patrones de metadatos basados en etiquetas - Apreciación por mecanismos de verificación criptográfica
Siguientes Pasos
Entender la arquitectura fundamental de Nostr te prepara para implementar aplicaciones prácticas. La simplicidad del protocolo permite desarrollo rápido mientras que sus fundamentos criptográficos aseguran seguridad y soberanía del usuario.
Verificación de Conocimiento
Verificación de Comprensión Técnica
- ¿Cuáles son los tres componentes fundamentales del protocolo Nostr?
- ¿Cómo funciona la verificación de eventos en Nostr?
- ¿Qué distingue a los relés de Nostr de los servidores tradicionales de redes sociales?
- ¿Por qué está diseñado el protocolo alrededor de eventos JSON simples?
Respuestas Técnicas
- Eventos (estructuras de datos de contenido), Relés (infraestructura de almacenamiento y distribución), y Clientes (aplicaciones de interfaz de usuario)
- Firmas digitales usando pares de llaves criptográficas verifican la autenticidad del evento, mientras que hashing de contenido asegura integridad
- Los relés operan independientemente con políticas individuales, creando una red distribuida sin puntos de control centrales
- La simplicidad de JSON asegura compatibilidad amplia, análisis fácil, e implementación directa del protocolo en diferentes lenguajes de programación