paint-brush
La red Waku: ampliación del P2P y comunicaciones centradas en la privacidadby@logos
731
731

La red Waku: ampliación del P2P y comunicaciones centradas en la privacidad

Logos10m2024/02/27
Read on Terminal Reader

Waku Network es la primera red descentralizada y que preserva la privacidad que brinda protecciones de denegación de servicio (DoS) para mensajería de igual a igual. Su objetivo es mejorar la privacidad y la seguridad en la comunicación entre pares mediante la implementación de protocolos y tecnologías innovadores.
featured image - La red Waku: ampliación del P2P y comunicaciones centradas en la privacidad
Logos HackerNoon profile picture

En diciembre pasado, anunciamos Waku Network .


Waku Network es la primera red descentralizada y que preserva la privacidad que brinda protecciones de denegación de servicio (DoS) para mensajería de igual a igual. Su objetivo es mejorar la privacidad y la seguridad en la comunicación entre pares mediante la implementación de protocolos y tecnologías innovadores.


Profundicemos en el por qué y qué es la Red Waku.

Origen

Si ha seguido Waku o Status , es probable que esté familiarizado con el origen de Waku. La aplicación móvil Status se creó como una súper aplicación web3, un portal al ecosistema Ethereum que aprovecha los tres pilares originales: Ethereum para el consenso, Swarm para el almacenamiento y Whisper para la comunicación.


El equipo de desarrollo de Status intentó crear Status con Whisper, pero este protocolo tenía limitaciones fundamentales, especialmente para dispositivos con recursos restringidos, como los teléfonos móviles. Waku nació como sucesor de Whisper y aprendió de sus fallas para proporcionar una red de comunicación entre pares escalable y adecuada para dispositivos móviles y navegadores.

Desafíos/Propiedades Deseadas

Waku tiene como objetivo superar los siguientes desafíos:

  • Mensajería generalizada: Waku tiene como objetivo proporcionar protocolos y una red que permita la transferencia de cargas útiles arbitrarias. Si bien Waku se creó originalmente para una aplicación de chat, Status, el objetivo es generalizarse lo suficiente como para construir cualquier aplicación de comunicación o señalización descentralizada en Waku.


  • Mensajería efímera: Waku tiene como objetivo resolver el problema de la comunicación en tiempo real, cuyo objetivo es proporcionar una latencia justa para permitir que uno o varios usuarios intercambien pequeñas cargas de datos. Esto contrasta con IPFS u otros sistemas de almacenamiento descentralizados, que proporcionan una forma de almacenar grandes cantidades de datos a expensas de la latencia y la capacidad de respuesta.


  • Resistencia a la censura: Waku tiene como objetivo proporcionar una solución resistente a la censura donde los actores externos no puedan bloquear el acceso de los usuarios a la infraestructura de Waku. Pero también para que los desarrolladores de aplicaciones puedan construir con una mentalidad que no puede hacer el mal , donde no tienen la llave del reino y la capacidad de desplataformar a sus usuarios.


  • Con mentalidad de privacidad: Brindar a los desarrolladores de aplicaciones la capacidad de operar según el principio de no hacer el mal en términos de recopilación de datos y metadatos de sus usuarios. Esto significa que incluso si quisieran o fueran presionados a hacerlo, ni ellos ni ningún tercero podrían recopilar metadatos como gráficos sociales o patrones de actividad de sus usuarios.


  • Anonimato: de manera similar a la privacidad, esta es la capacidad de los usuarios de no vincular la información de identificación personal (PII) con su actividad en la red Waku o la aplicación que utiliza la red. La PII que se considera aquí se refiere a la red (dirección IP), blockchain (por ejemplo, dirección Ethereum) y enrutamiento (correlación de mensajes).


  • Dispositivos con recursos restringidos: como se mencionó anteriormente, al diseñar Waku, se hace un esfuerzo por considerar entornos como dispositivos móviles y navegadores para permitir a los desarrolladores crear DApps para estas plataformas y proporcionar tantas propiedades enumeradas anteriormente como sea posible.


  • Escalabilidad: Waku tiene como objetivo brindar soporte a millones de usuarios manteniendo los principios anteriores; esto debe diseñarse y probarse cuidadosamente.


Todas las propiedades anteriores significan que es necesario superar otros problemas al diseñar Waku:

  • Protección de DOS: garantizar que la red no se inunde con mensajes, lo que provocará que los usuarios que tienen menos recursos sean expulsados de la red.


  • Sostenibilidad e incentivación de la red: ¿Cómo garantizamos suficientes recursos en la red para permitir que dispositivos como navegadores y dispositivos móviles accedan a la red?


  • Descentralización: Waku necesita descentralizarse en varios niveles para habilitar esas propiedades. ¿Cómo mantenemos un nivel justo de descentralización para garantizar que esas propiedades permanezcan en el tiempo?

La red Waku

¿Cómo ayuda Waku Network a ofrecer las propiedades anteriores?


Repasemos los diferentes protocolos Waku combinados en la red y cómo nos permiten lograr esta hazaña.

Descubrimiento entre pares

Para que cualquier sistema peer-to-peer sea confiable y descentralizado, debe existir un mecanismo para encontrar nuevos pares o nodos en dicho sistema, generalmente llamado descubrimiento de pares .


Waku usa discv5, similar a Ethereum. Se han realizado mejoras menores a ENR para permitir que el nodo Waku anuncie:


  • los fragmentos en los que están operando (consulte enrutamiento de mensajes - fragmentación )
    • el protocolo que tienen habilitado

    • multidirección alternativa que puedan tener, por ejemplo, para que el navegador se conecte a dicho nodo a través de WebSocket.


Discv5 está descentralizado, lo que puede evitar posibles ataques sybil en los que un atacante intenta rodear el nodo de la víctima para ofrecer una vista manipulada de la red.


Esto ayuda a permitir el anonimato, la privacidad y la resistencia a la censura.


Gracias al protocolo de servicio que se anuncia, permite a los teléfonos móviles y al navegador encontrar nodos que puedan atenderlos.

Enrutamiento de mensajes - Gossipsub

Al igual que Ethereum, Waku usa libp2p-gossipsub. Esto trae varios beneficios:

  • rendimiento del ancho de banda mejorado en comparación con Whisper: en gossipsub, los nodos forman un grupo de vecinos (malla) a los que envían mensajes. Un nodo determinado sólo intentará mantener conexiones e intercambiar mensajes activamente con otros nodos. Reducir el número de veces que se carga o descarga cada mensaje.


  • Confiabilidad: gossipsub tiene redundancia incorporada, lo que brinda una confiabilidad justa cuando se opera en una red descentralizada de igual a igual, donde no se puede confiar en que ningún nodo sea confiable o se comporte bien.


  • Anonimato: como los nodos reenvían mensajes desde otros nodos en su malla y no hay metadatos presentes en los mensajes individuales (por ejemplo, sin firma de texto sin formato), esto proporciona un anonimato justo ya que no es posible para un observador saber si su vecino los originó o reenvió. un mensaje. Esto funciona cuando se combina con un mecanismo de descubrimiento de pares descentralizado como discv5.


Nombramos el uso que hace Waku de gossipsub, el protocolo y la red. Relevo Waku.

Enrutamiento de mensajes: fragmentación

Uno de los inconvenientes de Gossipsub es que cada nodo de la red recibe y envía todos los mensajes de la red, con cierta amplificación. Se puede ver cómo esto limita la escalabilidad: no se puede esperar que tramite todo el tráfico de la red desde una conexión a Internet doméstica.


Para resolver este problema, se utiliza fragmentación en lugar de tener una red gossipsub. La red Waku se subdivide en varias subredes o fragmentos distintos de enrutamiento de mensajes. Actualmente, la red Waku está dividida en ocho fragmentos. Significa que cualquier usuario de una aplicación Waku solo transmitirá el tráfico de un fragmento o un octavo (aproximadamente) de toda la red.


Para empezar, ocho era un número pequeño y arbitrario. Nuestro análisis teórico muestra que un fragmento puede admitir alrededor de 10.000 usuarios activos y al mismo tiempo mantener un requisito de ancho de banda promedio de alrededor de 4 Mbps, lo que significa 80.000 para toda la red.


Estamos trabajando en realizar más simulaciones para confirmar nuestras suposiciones. También incorporamos desarrolladores y usuarios en la red para probar la teoría. El objetivo es aumentar la cantidad de fragmentos en la red con el tiempo.


Gracias a las mejoras realizadas en discv5, los nodos pueden saber qué fragmentos están atendiendo otros pares antes de conectarse a ellos.

Enrutamiento de mensajes: fragmentación automática

Un problema con la fragmentación es que los usuarios y las aplicaciones deben saber qué fragmentación usar.


Una aplicación podría decidir arbitrariamente qué fragmento quiere usar, pero eso puede requerir mucho trabajo, especialmente al agregar nuevos fragmentos. También es una decisión más que debe tomar el desarrollador; Preferimos que la experiencia del desarrollador sea lo más fácil posible. También permite a los desarrolladores crear aplicaciones que se distribuyen en varios fragmentos sin delegar opciones de fragmentos al usuario.


Autosharding es un protocolo simple que envía mensajes en un fragmento según la aplicación.

Enrutamiento de mensajes: retransmisión RLN

Waku es generalizado y preserva la privacidad, lo que significa que se puede transportar cualquier tipo de carga útil. Por lo tanto, no existe una definición estricta de "spam". Ya sea que el mensaje contenga un meme o una nota zk para DeFi privado , Waku ni siquiera debería conocer el contenido; Los metadatos y los datos deben permanecer privados.


Por lo tanto, existe el riesgo de que alguien envíe gigabits de datos a la red. Esto puede ser un problema en diferentes niveles:

  • Uso del ancho de banda: esto puede provocar que el ancho de banda de un usuario se acapare y afecte a otros servicios (streaming, scking) o una factura sorpresa.


  • Conectividad: si un nodo no tiene suficiente ancho de banda para enviar/recibir todos los mensajes en la capa gossipsub, otros nodos pueden considerar su comportamiento como incorrecto y desconectarse de él.


  • Confiabilidad: si el tráfico es mayor que el ancho de banda disponible, es posible que un nodo no pueda enviar ni recibir mensajes de manera confiable.


  • Otros recursos: el uso de la memoria está correlacionado con el tráfico, al igual que el espacio en disco para un servicio de tienda.


Entonces, en lugar de definir cómo se ve un mensaje "spam", introdujimos un límite de velocidad en la red para permitir el uso justo de Waku, con un límite del uso de ancho de banda por fragmento. Esto se hace con RLN, o Rate Limiting Nullifier, que limita la tasa de mensajes que envía un determinado editor. Actualmente está configurado en 1 msg/s.


Junto con un tamaño máximo de mensaje (150 kB) y una cantidad máxima de editores (80 k, TBD), podemos asumir un uso máximo de ancho de banda por fragmento (alrededor de 10 Mbps).


Es difícil limitar las tarifas a los editores de manera privada y resistente a la censura; Es por eso que utilizamos tecnología de conocimiento cero:

  1. Los usuarios envían sus credenciales RLN a un contrato inteligente (actualmente en la red de prueba Ethereum Sepolia).


  2. Los nodos realizan un seguimiento de todas las membresías registradas en el contrato.


  3. Al enviar un mensaje, el usuario adjunta una prueba RLN al mensaje con la época actual (marca de tiempo en segundos).


  4. Los nodos pueden verificar la prueba sin poder correlacionar la dirección Ethereum del usuario (utilizada en el contrato inteligente) con el mensaje que se envía, preservando el anonimato.


  5. Si un usuario intenta enviar más de 1 mensaje/s, los nodos pueden detectarlo y descartar el mensaje excedente o spam, protegiendo la red.

Servicio de dispositivos mayoritariamente fuera de línea y con recursos restringidos

Finalmente, ¿qué utilidad tiene Waku para dispositivos con recursos restringidos, como teléfonos móviles y navegadores web? Waku define una serie de [protocolos de solicitud-respuesta ( https://rfc.vac.dev/spec/10/#requestreply-domain ) para permitir que dichos dispositivos accedan a la red de Waku sin tener que estar siempre en línea o consumir grandes cantidades de ancho de banda, es decir, sin participar en la red Waku Relay.


El protocolo light push (enlaces a documentos) permite a un cliente ligero enviar un mensaje para reenviarlo a la red Waku Relay, con acuse de recibo del nodo remoto. El protocolo de filtro permite que un cliente ligero se suscriba a un par remoto y solo solicite un subconjunto de mensajes en lugar de todos los mensajes transmitidos en un fragmento.


Finalmente, el protocolo de almacenamiento permite a los clientes ligeros y a los nodos de retransmisión recuperar mensajes históricos que pueden haberse perdido.

La propuesta de valor de la red Waku

Si bien hemos definido las propiedades y la tecnología deseadas, es importante comprender los posibles casos de uso de Waku Network. Este número describe actualmente varias PVU (propuestas de valor únicas) y documentaremos el tema más a fondo. Algunos casos de uso dignos de mención son, más allá de la creación de cualquier aplicación de comunicación de máquina a máquina o de persona a persona:


  • DApps sin infraestructura: combina varias tecnologías descentralizadas (Waku, Ethereum, IPFS) para implementar una DApp sin pagar a un proveedor de alojamiento centralizado.


  • Acceso resistente a la censura a una red descentralizada para clientes ligeros: uso de protocolos de solicitud-respuesta para permitir que los clientes ligeros accedan a su red peer-to-peer sin depender de una puerta de enlace web centralizada y censurable.


  • Red de señal: utilice The Waku Network para encontrar otros pares y negociar parámetros específicos para formar su propia red peer-to-peer, Waku o no, con diferentes reglas (límite de velocidad más alto, etc.).

¿Estamos en blanco todavía?

Hemos descrito las propiedades deseadas de Waku y cómo Waku Network las ofrece. ¿Significa esto que Waku es resistente a la censura, privado, sostenible y escalable? No exactamente.


El bootstrapping es un componente de todas las redes peer-to-peer que no abordamos: ¿cómo encuentra un nuevo nodo otros nodos en la red? Usamos tecnología Ethereum para el arranque (ENR + DNS Discovery). Sin embargo, esta tecnología podría estar más descentralizada. Tenemos la intención de mejorar este potencial hacia finales de 2024 o 2025.


En general, la red necesita estar descentralizada para lograr las propiedades deseadas. Si bien parte de la tecnología permite dicha descentralización (y estamos trabajando para mejorar la parte que no lo hace), este problema tiene un componente social. Si el equipo de Waku es el único que ejecuta nodos, entonces, inherentemente, la red no puede considerarse descentralizada y, por lo tanto, resistente a la censura, etc.


Para resolver esto, debemos impulsar la adopción de la red Waku para que podamos construir una buena base de operadores y desarrolladores de nodos que ejecuten nodos sin depender del equipo de Waku para hacerlo.


Aumentamos este esfuerzo el año pasado y continuaremos este año. Otro aspecto es proporcionar incentivos monetarios a los operadores de nodos para que ejecuten nodos para que la red pueda volverse autosostenible. No tenemos tal protocolo; Estamos construyendo el primer PoC.


La Red Waku juega un papel importante aquí. Una vez que dicho protocolo esté disponible, se necesita un lugar (mercado) común para que los desarrolladores/usuarios y operadores se encuentren; la Red Waku sería uno de esos lugares.

Conclusión

Waku tiene como objetivo permitir comunicaciones soberanas con propiedades específicas. La Red Waku es un hito fundamental para lograr ese objetivo y crear una red común y descentralizada en la que los desarrolladores puedan construir y nosotros podamos agregar más protocolos. Si bien no podemos decir que Waku sea todo lo que pretende ser hoy, ya no tiene permisos y está descentralizado en varias capas.


Ahora estamos trabajando no solo para agregar las piezas que faltan a los protocolos, sino también para impulsar la adopción de Waku para que sea de facto descentralizado, permitiendo la resistencia privada y a la censura para todos.


Si desea unirse a una comunidad de ideas afines centrada en llevar comunicaciones entre pares a millones de usuarios, únase a Waku Discord o síganos en X.


Suscríbase a nuestro boletín mensual para recibir nuestras noticias directamente en su bandeja de entrada.


Si la tecnología le interesa, consulte nuestros puestos de trabajo vacantes o obtenga algunas de nuestras recompensas .

¡También puedes ayudar a garantizar que nos mantengamos descentralizados ejecutando tu propio nodo Waku!