Replying to Avatar Jona

# Adiós a Web 3. Hola Web 5

![web5 (2)](https://gist.github.com/user-attachments/assets/b88ceab2-dc6e-46dc-b0dc-70d29f3e217e)

Un protocolo abierto, anónimo y resistente a la censura capaz de cambiar las reglas de juego en cómo interactuamos con las plataformas sociales.

## Introducción a ¿qué carajo es Nostr?

Por sus siglas traducidas: [Notas y otras cosas transmitidas por relays](https://nostr.org/), Nostr no es más que un sencillo protocolo de comunicación capaz de generar los cimientos para la próxima revolución social.

## 🏗️ Protocolos: Arquitectura

Para poder entender Nostr tendremos que hacer una comparativa de los elementos mas importantes dentro de los protocolos que más utilizamos (o espero que usen 😏).

![Protocolos: Arquitectura]()

### 💻 ¿Qué es un relay de Nostr?

Un _relay_ es un servidor, alojado por ti o por otra persona que cualquiera puede montar y/o gestionar. Existen _relays_ públicos y de pago. A su vez, un _relay_ funciona como base de datos en la cual guardan y reenvían _notas_.

Los _relays_ usan el protocolo de websocket _(wss://...)_ para conectarse con los _clientes_. Esto genera una comunicación asíncrona y canales de comunicación bidireccionales que se mantienen abiertos.

Un _relay_ es “tonto”. Tanto la firma como la creación de las _notas_ sucede de lado del _cliente_.

### 📱 ¿Qué es un cliente de Nostr?

Un _cliente_ de Nostr es una aplicación diseñada para interactuar con el protocolo de Nostr. Podés conectarte a un _cliente_ mediante web, mobile, clientes de escritorios, etc.

Debido a que Nostr es un protocolo abierto, los _clientes_ buscan ser lo mas interoperables posibles. Prueba algunos!

**Web:**

- [Primal.net](http://primal.net/)

- [Zapcito.app](http://zapcito.app/)

**Androd:**

- [Amethyst](https://play.google.com/store/apps/details?id=com.vitorpamplona.amethyst)

- [Nostros](https://nostros.net/)

**iOS:**

- [Damus](https://damus.io/)

### 📋 ¿Qué es un evento de Nostr?

Los _eventos_, o también denominado _notas_, son toda interacción que genere el usuario del lado del _cliente_. Todo _evento_ es enviado a los relays que el usuario tenga conectado.

Los _eventos_ a nivel protocolo están construidos en [formato JSON](https://developer.mozilla.org/es/docs/Learn_web_development/Core/Scripting/JSON), un lenguaje utilizado para el manejo de estructuras de datos a nivel API. Además, tienen una estructura particular que determina el tipo de _evento_ que se esta intentando transmitir.

#### 📝 Estructura de un evento

Debido a que estamos usando un protocolo primo hermano de Bitcoin, podemos encontrar que la estructura de un _evento_ es algo similar a una _transacción_:

![Estructura de un evento]()

- `id`: identificador de 32 bytes con el que podremos identificar nuestras notas en otros relays.

- `created_at`: fecha de creación en formato unix.

- `tags`: array de etiquetas, su formato depende de su categoría.

- `pubkey`: nuestra llave publica de 32 bytes en formato hex.

- `sig`: firma de 64 bytes.

- `content`: contenido arbitrario en formato string.

- `kind`: categoría en formato numérico.

## 🏪 Aplicaciones centralizadas

![Aplicaciones centralizadas]()

Si bien es lo que conocemos, y como hemos estado trabajando todo este tiempo. La realidad es que las aplicaciones centralizadas tienen 3 grandes problemas:

- **Hackeos**: debido a que se centraliza la información en un único lugar, existe un solo vector de ataque y, en caso de conseguirse, podría interrumpir cualquier comunicación.

- **Políticas de uso**: en base a lo anteriormente comentado, podemos dar por sentado que nuestras cuentas no son realmente nuestras. No podemos trasladar nuestros datos entre plataformas como Twitter a Instagram (por ejemplo). Debido a esto, estamos limitados por los términos y políticas de uso.

- **Censura de gobiernos**: esta es una realidad a la cual no podemos escapar (hasta ahora). Noticias recientes como que [Brazil suspende la red social X/Twitter](https://www.nytimes.com/es/2024/08/30/espanol/america-latina/musk-x-brasil-bloqueo.html) o [Maduro quiere regular Instagram y Tiktok en Venezuela](https://es.wired.com/articulos/maduro-quiere-regula-a-instagram-y-tiktok-en-venezuela-son-multiplicadores-del-odio-y-el-fascismo) hace que se intente censurar la opinion publica o plataformas de comunicación “libres”.

Pero si Nostr es primo hermano de Bitcoin, y Bitcoin nos trae la premisa de que busca separar dinero de estado quitando al mayor intermediario del medio, ¿por que nosotros no hacemos lo mismo?

### 🔥 ¿Y si eliminamos los intermediarios?

Para lograr esto necesitaríamos una forma de identificarnos dentro de nuestro protocolo descentralizado. Como en Bitcoin, esto lo podemos resolver con un par de _llaves_:

**🔓 Llave publica**: piensa en tu _llave publica_ como el usuario de una red social. Es un identificador con el que otras personas van a poder encontrarte. Ambos formatos mostrados corresponden al usuario de quien esta escribiendo este post:

- Hexadecimal: `cee287bb0990a8ecbd1dee7ee7f938200908a5c8aa804b3bdeaed88effb55547`

- NPUB (Nostr Pub Key): `npub1em3g0wcfjz5we0gaaelw07fcyqys3fwg42qykw774mvgala424rsl26ytm`

**🔐 Llave privada**: piensa en tu _llave privada_ como tu contraseña o tu semilla de Bitcoin. NO LA COMPARTAS CON NADIE. Una vez vulnerada, no hay vuelta atrás y tocará generar una nueva. Podemos encontrarlo en varios formatos:

- Hexadecimal: `3b1b6e09236ab49050079fffced663a3b09d610a4c5beb895cda5c7f53f6d1f2`

- NSEC (Nostr Secret Key): `nsec18vdkuzfrd26fq5q8nllua4nr5wcf6cg2f3d7hz2umfw875lk68eqms52y6`

- [BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) (semilla): `early please toss later caught book raven attract attract flower outside scene`

**Algunas consideraciones:**

- Podés generar la cantidad de _llaves_ que desees, son “infinitas”.

- No se necesita internet para generar un par de _llaves_.

- Utiliza gestores de claves como: [GetAlby](https://getalby.com/) o [Nos2x](https://chromewebstore.google.com/detail/nos2x/kpgefcfmnafjgpblomihpgmejjdanjjp).

- Profesionales de UX: Si bien el formato hexadecimal es el más primitivo, la realidad es que para una rápida diferenciacion mostrarlo en formato `npub` y `nsec`.

## 🔖 NIP

Los NIPs, o [Posibles Implementaciones en Nostr](https://github.com/nostr-protocol/nips), definen la estructura de los _eventos_ o _notas_. Entre ellos podemos encontrar algunas implementaciones de todo sistema social:

- [NIP-01: Protocolo básico](https://github.com/nostr-protocol/nips/blob/master/01.md) de publicación y perfil

- [NIP-02: Lista de seguidores](https://github.com/nostr-protocol/nips/blob/master/02.md)

- [NIP-05: Identificadores basados en DNS](https://github.com/nostr-protocol/nips/blob/master/05.md) (ej: satoshi@bitcoin.org)

- [NIP-17: Mensajes privados](https://github.com/nostr-protocol/nips/blob/master/17.md)

#### Ejemplos de uso:

En base a ejemplo de aplicaciones sociales, ¿cómo podríamos utilizar estos NIP?

**Twitter.com**

- [NIP-02 - Lista de seguidores](https://github.com/nostr-protocol/nips/blob/master/02.md)

- [NIP-18 - Republicar contenido](https://github.com/nostr-protocol/nips/blob/master/18.md)

- [NIP-25 - Reacciones](https://github.com/nostr-protocol/nips/blob/master/25.md)

**Telegram.org**

- [NIP-17 - Mensajes privados](https://github.com/nostr-protocol/nips/blob/master/17.md)

- [NIP-29 - Grupo de mensajes](https://github.com/nostr-protocol/nips/blob/master/29.md)

**Cafecito.app**

- [NIP-57 - Pagos Lightning](https://github.com/nostr-protocol/nips/blob/master/57.md)

- [NIP-75 - Objetivos de pagos](https://github.com/nostr-protocol/nips/blob/master/75.md)

**LaWallet.io**

- [NIP-26 - Eventos delegados](https://github.com/nostr-protocol/nips/blob/master/26.md)

## 👀 Entonces, ¿por qué Web 5?

Porque en lo que va del articulo **no hemos hablado de crypto, blockchain o token**. Únicamente de datos, datos que son resilientes, incensurables, transparentes y libre.

Debido a que estamos hablando a nivel protocolo, existen diferentes tipos de implementaciones. No aprendas un nuevo lenguaje para empezar a construir, utiliza el que ya conoces! 🚀

Estoy intentando zapear por primera vez y no vaaaa :( tengo zaps le doy click al icono zap que está al lado de comentar… pero no abre nada

Reply to this note

Please Login to reply.

Discussion

Para zapear vas a necesitar algun gestor como nostr:nprofile1qyt8wumn8ghj7etyv4hzumn0wd68ytnvv9hxgtcppemhxue69uhkummn9ekx7mp0qqsyv47lazt9h6ycp2fsw270khje5egjgsrdkrupjg27u796g7f5k0s0pfy4z para interactuar con lightning

Tengo alby go y ya recibí zaps desde Nostr