Em dezembro passado, anunciamos a Rede Waku .
A Rede Waku é a primeira rede descentralizada e que preserva a privacidade que fornece proteções contra negação de serviço (DoS) para mensagens ponto a ponto. O objetivo é aumentar a privacidade e a segurança na comunicação peer-to-peer através da implementação de protocolos e tecnologias inovadoras.
Vamos nos aprofundar no porquê e no que é a Rede Waku.
Se você segue Waku ou Status , provavelmente conhece a origem do Waku. O aplicativo móvel Status foi criado como um superaplicativo web3, um portal para o ecossistema Ethereum que aproveita os três pilares originais: Ethereum para consenso, Swarm para armazenamento e Whisper para comunicação.
A equipe de desenvolvimento do Status tentou construir o Status com o Whisper, mas esse protocolo tinha limitações fundamentais, especialmente para dispositivos com recursos restritos, como telefones celulares. Waku nasceu como sucessor do Whisper, aprendendo com suas falhas para fornecer uma rede de comunicação ponto a ponto escalável, adequada para dispositivos móveis e navegadores.
Waku pretende superar os seguintes desafios:
Escalabilidade: Waku visa oferecer suporte a milhões de usuários, mantendo os princípios acima; isso precisa ser cuidadosamente projetado e testado.
Todas as propriedades acima significam que outros problemas precisam ser superados ao projetar o Waku:
Como a Waku Network ajuda a entregar as propriedades acima?
Vamos revisar os diferentes protocolos Waku combinados na rede e como eles nos permitem alcançar esse feito.
Para que qualquer sistema ponto a ponto seja confiável e descentralizado, deve haver um mecanismo para encontrar novos pares ou nós nesse sistema, geralmente chamado de descoberta de pares .
Waku usa discv5, semelhante ao Ethereum. Pequenas melhorias no ENR foram feitas para permitir que o nó Waku anuncie:
o protocolo que eles ativaram
multiaddr alternativo que eles podem ter, por exemplo, para o navegador se conectar ao referido nó via WebSocket.
O Discv5 é descentralizado, o que pode evitar possíveis ataques sybil em que um invasor tenta cercar o nó da vítima para fornecer uma visão manipulada da rede.
Isso ajuda a permitir o anonimato, a privacidade e a resistência à censura.
Graças ao protocolo anunciado, ele permite que os telefones celulares e o navegador encontrem nós que possam atendê-los.
Semelhante ao Ethereum, Waku usa libp2p-gossipsub. Isso traz vários benefícios:
Anonimato: como os nós encaminham mensagens de outros nós em sua malha e nenhum metadado está presente em mensagens individuais (por exemplo, nenhuma assinatura de texto simples), isso proporciona um anonimato justo, pois não é possível para um observador saber se seu vizinho originou ou encaminhou uma mensagem. Isso funciona quando combinado com um mecanismo descentralizado de descoberta de pares, como o discv5.
Nomeamos o uso do gossipsub pelo Waku, o protocolo e a rede. Relé Waku.
Uma das desvantagens do Gossipsub é que cada nó da rede recebe e envia todas as mensagens da rede, com alguma amplificação. Pode-se ver como isto limita a escalabilidade: não se pode esperar trafegar todo o tráfego da rede a partir de uma ligação doméstica à Internet.
Para resolver esse problema, o sharding é usado em vez de ter uma rede gossipsub. A rede Waku é subdividida em várias sub-redes distintas de roteamento de mensagens, ou fragmentos. Atualmente, a rede Waku está dividida em oito fragmentos. Isso significa que qualquer usuário de um aplicativo Waku retransmitiria apenas o tráfego de um fragmento ou um oitavo (aproximadamente) de toda a rede.
Para começar, oito era um número pequeno e arbitrário. Nossa análise teórica mostra que um shard pode suportar cerca de 10 mil usuários ativos, mantendo um requisito médio de largura de banda de cerca de 4 Mbps, o que significa 80 mil para toda a rede.
Estamos trabalhando na execução de novas simulações para confirmar nossas suposições. Também integramos desenvolvedores e usuários na rede para testar a teoria. O objetivo é aumentar o número de fragmentos na rede ao longo do tempo.
Graças às melhorias feitas no discv5, os nós podem saber quais fragmentos outros peers estão atendendo antes de se conectarem a eles.
Um problema com o sharding é que os usuários e aplicativos devem saber qual shard usar.
Um aplicativo pode decidir arbitrariamente qual fragmento deseja usar, mas isso pode exigir muito trabalho, especialmente ao adicionar novos fragmentos. É também mais uma decisão a ser tomada pelo desenvolvedor; preferimos tornar a experiência do desenvolvedor o mais fácil possível. Ele também permite que os desenvolvedores criem aplicativos que se espalham por vários fragmentos sem delegar escolhas de fragmentos ao usuário.
Autosharding é um protocolo simples que despacha mensagens em um fragmento baseado no aplicativo.
Waku é generalizado e preserva a privacidade, o que significa que qualquer tipo de carga pode ser transportada. Portanto, não existe uma definição estrita de “spam”. Quer a mensagem contenha um meme ou uma nota zk para DeFi privado , Waku nem deveria saber o conteúdo; metadados e dados devem permanecer privados.
Conseqüentemente, existe o risco de alguém enviar gigabits de dados para a rede. Isso pode ser um problema em diferentes níveis:
Outros recursos: o uso da memória está correlacionado com o tráfego, assim como o espaço em disco para um serviço de armazenamento.
Portanto, em vez de definir a aparência de uma mensagem de “spam”, introduzimos um limite de taxa na rede para permitir o uso justo do Waku, com um limite de uso de largura de banda por fragmento. Isso é feito com RLN, ou Rate Limiting Nullifier, que limita a taxa de mensagens enviadas por um determinado editor. Atualmente está definido para 1 msg/s.
Juntamente com um tamanho máximo de mensagem (150kB) e um número máximo de editores (80k, TBD), podemos assumir um uso máximo de largura de banda por fragmento (cerca de 10Mbps).
É difícil limitar os editores de maneira privada e resistente à censura; é por isso que estamos usando tecnologia de conhecimento zero:
Os usuários enviam suas credenciais RLN para um contrato inteligente (atualmente na rede de teste Ethereum Sepolia).
Os nós controlam todas as associações registradas no contrato.
Ao enviar uma mensagem, o usuário anexa uma prova RLN à mensagem com a época atual (timestamp em segundos).
Os nós podem verificar a prova sem conseguir correlacionar o endereço Ethereum do usuário (usado no contrato inteligente) com a mensagem enviada, preservando o anonimato.
Se um usuário tentar enviar mais de 1 msg/s, os nós podem detectar isso e descartar o excesso de mensagem ou spam, protegendo a rede.
Finalmente, como o Waku é útil para dispositivos com recursos restritos, como telefones celulares e navegadores da web? Waku define uma série de [protocolos de solicitação-resposta ( https://rfc.vac.dev/spec/10/#requestreply-domain ) para permitir que tais dispositivos acessem a rede Waku sem ter que estar sempre online ou consumir grandes quantidades de largura de banda, ou seja, sem participar da rede Waku Relay.
O protocolo light push (links para documentos) permite que um cliente light envie uma mensagem para ser encaminhada para a rede Waku Relay, com confirmação de recepção do nó remoto. O protocolo de filtro permite que um cliente leve se inscreva em um ponto remoto e solicite apenas um subconjunto de mensagens em vez de todas as mensagens transmitidas em um fragmento.
Finalmente, o protocolo de armazenamento permite que clientes leves e nós de retransmissão recuperem mensagens históricas que possam ter sido perdidas.
Embora tenhamos definido as propriedades desejadas e a tecnologia, é importante compreender os casos de uso potenciais da Rede Waku. Esta edição descreve atualmente várias USPs (Propostas de Valor Únicas), e iremos documentar o assunto mais detalhadamente. Alguns casos de uso dignos de nota são, além da construção de qualquer aplicativo de comunicação máquina a máquina ou humano a humano:
Descrevemos as propriedades desejadas do Waku e como a Rede Waku as atende. Isso significa que o Waku é resistente à censura, privado, sustentável e escalável? Não exatamente.
Bootstrapping é um componente de todas as redes peer-to-peer que não abordamos: como um novo nó encontra outros nós na rede? Usamos a tecnologia Ethereum para inicialização (ENR + DNS Discovery). No entanto, esta tecnologia poderia ser mais descentralizada. Pretendemos melhorar esse potencial no final de 2024 ou 2025.
Em geral, a rede precisa ser descentralizada para atingir as propriedades desejadas. Embora parte da tecnologia permita essa descentralização (e estejamos a trabalhar para melhorar a parte que não o faz), este problema tem uma componente social. Se a equipe Waku for a única executando nós, então, inerentemente, a rede não pode ser considerada descentralizada, portanto resistente à censura, etc.
Para resolver isso, precisamos pressionar pela adoção da rede Waku para que possamos construir uma boa base de operadores e desenvolvedores de nós que executem nós sem depender da equipe Waku para fazê-lo.
Aumentamos esse esforço no ano passado e continuaremos este ano. Outro aspecto é fornecer incentivos monetários aos operadores de nós para operarem nós, para que a rede possa se tornar autossustentável. Não temos esse protocolo; estamos construindo o primeiro PoC.
A Rede Waku desempenha um papel importante aqui. Uma vez que tal protocolo esteja disponível, é necessário um local (mercado) comum para que desenvolvedores/usuários e operadores possam se encontrar; a Rede Waku seria um desses lugares.
Waku visa permitir comunicações soberanas com propriedades específicas. A Rede Waku é um marco crítico para atingir esse objetivo e criar uma rede comum e descentralizada na qual os desenvolvedores possam construir e adicionar mais protocolos. Embora não possamos dizer que o Waku é tudo o que pretende ser hoje, ele já não tem permissão e é descentralizado em várias camadas.
Estamos agora trabalhando não apenas para adicionar as peças que faltam aos protocolos, mas também para pressionar pela adoção do Waku para torná-lo descentralizado de fato, permitindo resistência privada e à censura para todos.
Se você deseja ingressar em uma comunidade com ideias semelhantes, focada em levar comunicações ponto a ponto a milhões de usuários, junte-se ao Waku Discord ou siga-nos no X.
Cadastre-se em nossa newsletter mensal para receber nossas novidades direto em sua caixa de entrada.
Se a tecnologia fala com você, confira nossas vagas de emprego abertas ou aproveite algumas de nossas recompensas .
Você também pode ajudar a garantir que permaneçamos descentralizados executando seu próprio Waku Node!