La pagina que te enseña como funciona Nostr. Parte V

Eventos en Nostr: todo es un mismo objeto

La página es la primera sección práctica sobre la estructura de datos de Nostr. Se explica que no existen tipos de datos diferentes para posts, perfiles o mensajes.

Todo es un único objeto JSON con siete campos, y la diferencia entre una nota y un perfil radica únicamente en el valor del campo kind y en lo que se coloca en tags y content.

Funcionalidades principales

  • Estructura universal visible: muestra el objeto completo del evento con sus siete campos, permitiendo al visitante entender que posts, reacciones, listas de contactos y mensajes cifrados comparten exactamente la misma forma.
  • Campos derivados marcados: dos de los siete campos (id y sig) aparecen señalados como derivados: no se eligen, se calculan a partir de los demás.
  • Serialización del hash: expone el array exacto que se somete a SHA-256 para generar el identificador, demostrando que cualquier cambio en los campos modifica el resultado.
  • Firma y publicación interactivas: el visitante puede firmar el evento y publicarlo, observando cómo la firma aparece sobre el id calculado.
  • Verificación independiente: cualquiera puede comprobar la validez del evento sin consultar al autor ni a un servidor, porque todo lo necesario viaja dentro del propio objeto.

Idea central

Nostr tiene una sola estructura de datos. El contexto de cada evento lo da el número del campo kind, no una tabla o esquema separado.

Esta uniformidad permite que cualquier cliente o relay procese cualquier evento sin conocimientos previos: basta con leer el número de tipo y validar que el id coincida con el hash del contenido.

Los siete campos del evento

  1. Content: la parte libre. Texto plano para una nota, JSON para un perfil.
  2. Kind: un número que indica qué es el evento. Los relays tratan los rangos de números de forma distinta.
  3. Pubkey: quién lo creó. Se deriva de la clave secreta, no se elige.
  4. Created_at: cuándo afirma haberlo creado. En segundos, no milisegundos.
  5. Tags: todo lo estructurado: respuestas, menciones, temas e identificadores.
  6. Id: el hash SHA-256 de los valores anteriores en orden fijo.
  7. Sig: una firma sobre el id, hecha con la clave secreta.

Cómo se calcula el identificador

El id es el SHA-256 de exactamente este array, sin espacios y en orden fijo: el cero inicial, la clave pública, el timestamp, el kind, los tags y el content. Cualquier modificación mínima en uno de esos valores produce un identificador completamente distinto.

La lección establece la base arquitectónica de Nostr: una simplicidad radical donde todo es el mismo objeto. Al derivar el identificador y la firma directamente del contenido, el protocolo elimina la necesidad de autoridades centrales que certifiquen la autenticidad de los eventos. La verificación es matemática y está al alcance de cualquiera.

  • Aqui esta el link de la fuente: https://rookery-six.vercel.app/
Nostr