Qué es Nostr Wallet Connect (NWC)

Una pequeña guía que tratará de explicar este fascinante medio de pago a través de NOSTR
Qué es Nostr Wallet Connect (NWC)

Entendiendo el Protocolo NIP-47

Fundamentos de Nostr

Nostr Wallet Connect (NWC) es el protocolo que permite a aplicaciones (incluyendo clientes Nostr) comunicarse con wallets Lightning de forma asíncrona y segura, reduciendo significativamente la fricción comparada con métodos manuales. Pero para entender Nostr Wallet Connect, primero necesitamos recordar (entender) cómo funciona Nostr como protocolo.

Los 3 Grandes Agentes de Nostr Nostr funciona con 3 componentes principales:

  1. El Autor: Tiene dos llaves - pública y privada (criptografía asimétrica). El autor escribe un evento. Este evento se publica en los relays.
  2. Los Relays: Servidores que reciben, distribuyen y opcionalmente almacenan eventos (según el tipo de evento y políticas).
  3. El Cliente: El usuario que quiere tener acceso a esos eventos. Arma un filtro, una suscripción a los relays. Cuando al relay le llega un evento que hace match con ese filtro, eventualmente se lo sirve al usuario.

Tanto el usuario como el autor no tienen que conocerse, solo verán los relays. El evento puede ser válido pero el usuario aún no conocerlo. Los eventos podrían quedar sin publicar si ningún relay los acepta. Esto está alineado con la filosofía de Nostr: servidor tonto / cliente inteligente.

¿Qué es un Kind? Es el tipo del evento. Hay muchos tipos de eventos. Nostr particiona los KINDS (que son un número) en distintos rangos, y distintos rangos nos dan distintas propiedades de esos eventos.

Eventos Regulares (Kind 1000 - 10000) ¿Qué significa “regular”? Que los relays los van a guardar y si se los preguntan, los devuelven. Quedan guardados en el relay. Ejemplo: kind 1 = post de texto, kind 0 = metadata de perfil

Eventos Efímeros (Kind 20000 - 30000) ¿Qué significa “efímero”? Cuando un relay recibe uno de estos eventos automáticamente se los pasa a los clientes que los quieran, pero NO los guarda. Si alguien pregunta por un kind 25000, el relay le va a mandar los que tenga en ese momento, pero NO eventos del pasado. Esos nunca los guarda, los borra siempre.

Ventaja: Estos eventos efímeros reducen la carga sobre los relays. Conforme más eventos efímeros se utilizan, menos carga de storage terminan teniendo los relays.

NWC usa eventos efímeros (kinds 23194, 23195, 23197) porque las solicitudes de pago no necesitan quedar guardadas permanentemente.

Eventos Reemplazables (Kind 10000 - 20000 o 30000 - 40000)

Es como “pisar” un tweet con otro, como editar, reemplazar. Si un nuevo evento del mismo tipo y del mismo autor llega, reemplaza al anterior. Ejemplo: Tu perfil (kind 0) es reemplazable. Cada vez que actualizas tu perfil, el nuevo evento reemplaza al viejo.

NIPs Relevantes para NWC NIP-01: Evento básico y filtros - estructura y semántica. Define cómo se construye un evento Nostr y cómo los clientes filtran eventos de relays. NIP-04: Encriptación con una llave simétrica. Está deprecado pero se sigue usando. Es lo que nos permite establecer un mensaje seguro entre dos usuarios de Nostr. El mensaje queda encriptado y solo las personas involucradas en esa conversación van a poder leer el contenido del mensaje. NIP-44: Cifrado moderno que reemplaza a NIP-04. Más seguro y robusto. NWC moderno usa NIP-44. NIP-47: Nostr Wallet Connect. El protocolo que estamos estudiando.

¿Qué es entonces Nostr Wallet Connect (NIP-47)? El Problem Statement NWC es la forma en cómo Nostr resuelve el problema de realizar pagos “entre comillas offline”, es decir, no tener que estar accediendo físicamente, sincrónicamente a un pago.

Es algo así como un servicio de débito automático para Bitcoin.

Los problemas que NWC resuelve:

—Interoperabilidad entre agentes: Apps diferentes necesitan hablar con wallets diferentes. —Seguridad: No quieres exponer tu wallet o nodo Lightning directamente al internet.

—Portabilidad: Quieres poder usar tu wallet desde múltiples dispositivos/apps.

—Ubicación flexible: Tu nodo Lightning puede estar en cualquier lado (Raspberry Pi en casa, servidor en la nube)

—API estándar: Todas las wallets y apps hablan el mismo “idioma”

¿Qué es NWC en Términos Simples? Un nodo Lightning sin puertos expuestos, con ubicación flexible, y que tiene una API estándar. NWC NO es una wallet. NWC NO es Lightning.

NWC es el protocolo de comunicación que permite que aplicaciones (clientes) interactúen con wallets Lightning de forma segura, asíncrona y sin exponer infraestructura.

🔑 Analogía: Si Lightning es tu banco, NWC es el protocolo que permite que apps (como Amazon, Netflix) le digan a tu banco “cobra $X” sin que tú tengas que estar físicamente presente cada vez. Es débito automático, pero para Bitcoin.

¿Qué Hace NWC? Tres cosas fundamentales:

  1. Establece una conexión entre un wallet service y el cliente: Es como “emparejar” tu app con tu wallet.
  2. Evento de información: Nos permite saber qué cosas vamos a poder hacer con esa wallet service. ¿Puede solo pagar? ¿Puede generar facturas? ¿Puede consultar balance?
  3. Provee una API: Una Interfaz de Programación de Aplicaciones que nos va a permitir interactuar con la wallet.

¿Cómo Funciona NWC?

Los Componentes Tenemos 4 elementos en la arquitectura NWC:

  1. Wallet Service: Tu wallet Lightning (puede ser Minibits, Alby, tu nodo propio)
  2. Lightning Network: La red de pagos real que mueve los satoshis
  3. Relays de Nostr: Los mismos relays de Nostr. Se usan como mensajeros.
  4. Cliente: Tu aplicación Nostr (Amethyst, Primal, Damus) u otra app que quiera usar tu wallet

El Flujo Completo Paso a paso, esto es lo que sucede:

  1. El cliente le pide a la wallet una nueva conexión
  2. La wallet devuelve un string de conexión (con pubkey, relay, secret)
  3. El cliente guarda esa conexión
  4. Cuando el cliente quiere cobrarse o pagar algo, ocurre una Llamada a Procedimiento Remoto (RPC) del cliente al relay de Nostr
  5. El relay lee ese mensaje y lo reenvía a la wallet
  6. La wallet lo ejecuta en Lightning Network
  7. La wallet publica el resultado (éxito o error) al relay
  8. El relay entrega el resultado al cliente

image

Ejemplo concreto: Estás en Amethyst y haces clic en ⚡ para zapear. Amethyst crea un evento kind 23194 (request) cifrado con tu secret, lo envía al relay especificado en tu conexión NWC. El relay lo reenvía a Minibits (tu wallet). Minibits descifra, ve que pides pagar 1000 sats, verifica que tienes permisos y fondos, ejecuta el pago en Lightning, y publica un evento kind 23195 (response) al relay diciendo “pago exitoso”. El relay entrega la respuesta a Amethyst. Amethyst muestra “Zap enviado ⚡”.

Los enlaces nostr+walletconnect:// son parte del protocolo Nostr Wallet Connect (NWC), Permite conectar billeteras Lightning a aplicaciones (incluyendo apps de Nostr). Sin NWC:

Ves un post → Click en Zap → Copia factura Lightning → Abres wallet → Pegas factura → Pagas → Vuelves a Nostr 7 pasos, tedioso, nadie lo haría frecuentemente Con NWC: Ves un post → Click en Zap → Listo. Tu wallet paga automáticamente 1 paso, instantáneo, experiencia como “dar like” NWC hace que enviar satoshis sea tan fácil como dar like. Esta es la clave de la adopción masiva.

¿Qué Puedo Hacer con Nostr Wallet Connect? Básicamente hay 3 grandes categorías de operaciones que puedes hacer:

Categoría 1: Pagos pay_invoice: Pagar una factura Lightning. La app le dice a la wallet “paga esta invoice”. multi_pay_invoice: Pagar múltiples facturas en una sola llamada. Útil para pagos batch.

Categoría 2: Invoices (Recibir dinero) make_invoice: Generar una factura para recibir pago. La app le dice a la wallet “crea una invoice por 500 sats”. lookup_invoice: Consultar el estado de una factura. ¿Fue pagada? ¿Expiró? ¿Está pendiente?

Categoría 3: Información get_balance: Obtener el balance de satoshis en la wallet. get_info: Obtener información sobre qué comandos soporta la wallet. No todas las wallet tienen esa funcion.

Conclusión Nostr Wallet Connect (NIP-47) es un protocolo que permite interacción segura, asíncrona y descentralizada entre aplicaciones y wallets Lightning.

No es una wallet. No es Lightning. Es el puente de comunicación entre ambos.

Usa la infraestructura de Nostr (relays, eventos, cifrado) para proveer una API estándar que cualquier wallet puede implementar y cualquier app puede consumir. Su innovación principal es el desacoplamiento: separar dónde están los fondos (custodia) de cómo se usan (operaciones).

Para los usuarios finales, NWC es invisible. Solo ven que los saps funcionan mágicamente. Pero debajo, hay un protocolo elegante que resuelve problemas complejos de interoperabilidad, seguridad y descentralización.

Recursos Técnicos para más información NIP-47 oficial: https://github.com/nostr-protocol/nips/blob/master/47.md NWC Documentation: https://docs.nwc.dev/ Alby NWC GitHub: https://github.com/getAlby/nostr-wallet-connect NWC website: https://nwc.dev/

#Blogindex #NostrEspañol #Descentralizacion #NWC #


No comments yet.