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
# Adiós a Web 3. Hola Web 5

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 😏).

### 💻 ¿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_:

- `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

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! 🚀