Logos is a fully decentralised, privacy-preserving, and politically neutral technology stack
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.
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.
Waku tiene como objetivo superar los siguientes desafíos:
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:
¿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.
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:
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.
Al igual que Ethereum, Waku usa libp2p-gossipsub. Esto trae varios beneficios:
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.
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.
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.
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:
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:
Los usuarios envían sus credenciales RLN a un contrato inteligente (actualmente en la red de prueba Ethereum Sepolia).
Los nodos realizan un seguimiento de todas las membresías registradas en el contrato.
Al enviar un mensaje, el usuario adjunta una prueba RLN al mensaje con la época actual (marca de tiempo en segundos).
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.
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.
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.
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:
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.
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!