Idéias para um chat messenger perfeito

Em busca de um messenger seguro, descentralizado e eficiente

Aqui abordo alguns pontos que podem ser úteis na construição de um chat seguro, descentralizado e até mesmo anonimo. Sinta-se livre para acrescentar novos pontos nos comentários.

Privacidade:

Depende de conexões seguras, para que o IP não seja relacionado: Depende de proxys como Tor

Múltiplas chaves públicas: cada conversa deve ter uma única chave pública. Assim um usuário não saberá os outros contatos com quem um determinado contato troca mensagem.

Autenticidade:

Conexões P2P:

Para chamadas de video ou de voz, bem como para transferencia de grandes arquivos usar o armazenamento dos nodes não é necessário e muito menos viável. É preciso permitir que os usuários tenham comunicações P2P para estes casos.

Descentralização/distribuição em nodes dedicados:

O Tox é um exemplo de chat que só funciona se os usuários da conversa estiverem online ao mesmo tempo… elimina servidores centrais, mas também dificulta a comunicação, exigindo usuários ficarem online 100% do tempo.

Um cache descentralizado e distribuído é a solução para este problema.

Sistemas Anti-spam:

Eficiência no uso de recursos:

Blockchains como conhecemos não são a melhor forma de armazenar tais mensagens, pois no longo prazo o tamanho de tal registro cresceria exponencialmente e os nodes ficariam cada vez mais concentrados, levando a uma centralização perigosa da rede.

Armazenar mensagens eternamente não é necessário, elas apenas precisam ser armazenadas até que o destinatário baixe, depois pode ser apagada e armazenada localmente pelo destinatário. Uma espécie de cache temporário é muito mais viável que uma blockchain imutável.

As mensagens também não precisam ser duplicadas igualmente em todos os nodes. Caso hajam muitos nodes (centenas), o cache de mensagens pode ser dividido entre estes, tentando manter um número significativo de duplicação, mas não absoluto.

Para tal, cada node pode exigir uma dificuldade minima de PoW baseado em sua oferta de recursos. Então o usuário pode escolher para quais nodes prefere mandar, afim de realizar um PoW menor. Assim automaticamente a rede se ajusta.

Timestamps:

Para os destinatários saberem em qual horário aquela mensagem foi enviada de forma confiável, é preciso que tal metadado seja assinado pelo remetente e os nodes só aceitem se estiver correto (uma pequena tolerancia pode ser aplicada levando em consideração ao tempo máximo de broadcasting)

Incentivos:

Os nodes precisam de incentivos para doarem seus recursos para a rede. Uma vez que isto traz custos.

Manter a rede operante e distribuída por sí só já é um grande incentivo, em especial para aqueles que mais utilizam tal sistema, sejam usuários, sejam desenvolvedores ou empresas que dependem de tal sistema.

Mas além disso um sistema anonimo de doação pode ser gerenciado atravez de um mecanismo automático que só premia nodes que provarem-se operantes com bons resultados. Cada doador pode assim rodar um software que testará os nodes ou pode doar para uma pool que realiza tal processo.

Criar um cripto-ativo próprio para recompensar os nodes não é muito viável pois os principais mecanismos de consenso não seriviriam. Proof of Work ou Proof of Work são consensos que não se ligam à necessidade dos nodes de satisfazerem a rede. Delegated Proof of Stake integrado tiraria consideravelmente o anonimato dos usuários, bem como outros sistemas de prova de armazenamento ou envio e dados.

Simplicidade:

Embora certa complexidade técnica seja em certo nível intínseca, é preciso que de forma geral isto possa ser traduzido da forma mais simples possível para que mesmo usuários leigos tenham uma visão geral do projeto e de porquê é seguro. Pelo contrário pode haver grande resistência em aceitar.

Interface amigável:

Independentemente do sistema, a interface para o chat deve ser o mais simples possível, amigável, intuitiva, leve e com um design agradável.

Features extras:

Usuários demandam muito mais do que apenas segurança e praticidade, eles também demandam funcionalidades extras diversas para dar mais vida à aplicação… nós somos humanos e não máquinas.

Podem haver

  • chamadas de voz e de video, de forma P2P.
  • Envio de fotos, videos e documentos
  • GIFS e stickers, com um banco de dados distribuído.
  • Carteiras de criptomoedas integradas.
  • Criação de grupos e canais.
  • Campo de Status
  • Compartilhamento de localização entre contatos
  • Bloqueio de contatos
  • Diferentes temas
  • Backup e sincronização automática entre diferentes dispositivos

Desenvolvedor, cripto-entusiasta e criptolibertário

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store