Uma camada não tão conhecida do Ethereum, mas que recentemente tem me chamado bastante a atenção é o protocolo Whisper.

Para que serve?

Quando falamos de sistemas distribuídos existe, então, a necessidade de comunicação entre Nodes para atualização e sincronia de dados, um canal que seja rápido e seguro contra falhas, já que a consolidação de um novo bloco na Blockchain precisa ser feito da forma mais rápida possível, para que não hajam Forks. No Ethereum esse sistema se chama Whisper.

Dando uma olhada na documentação oficial, o Whisper é definido como um sistema de mensagens auto-identificadas, com uma API simples de baixo nível para comunicações ponta a ponta (P2P), utilizando criptografia para assinatura das mensagens, sendo um eficiente sistema de broadcast com alto nível de privacidade, já que a comunicação ocorre de uma carteira ETH para outra, com sistemas nativos de prevenção de DDoS utilizando algoritmo de Proof of Work para validar a assinatura da mensagem.

O esquema de criptografia, para quem curte essa parte mais técnica, utiliza SECP-256 e AES GCM para encriptar as mensagens, nonce randômico de 96 bits, e Proof of Work para validação da assinatura.

Aplicações práticas

Como o protocolo Whisper é totalmente aberto, utilizando uma interface websocket conectada a um dos Nodes do Ethereum é possível enviar e receber mensagens de até 64kb de maneira totalmente segura, com base em sua carteira ETH. Sendo assim, existem propostas de criação de serviços semelhantes ao WhatsApp ou Telegram usando o protocolo como base.

Mas teoricamente o WhatsApp já não é P2P? Bom, em teoria sim, mas quem garante? O código fonte do Whatapp é privado e ninguém tem autorização para auditar como de fato está a implementação. No caso do Whisper, os códigos são 100% Open Source e estão disponíveis no Github.

Vou deixar um vídeo da Ethereum Foudation sobre o tema: