O Handshake Blockchain: Troca de Chaves Sem Confiança
Antes de dois usuários do Z-Text trocarem mensagens, eles precisam completar um handshake criptográfico. Este artigo explica como funciona e por que é importante para a segurança.
Antes que dois usuários do Z-Text possam trocar mensagens, eles devem completar um "handshake" -- um protocolo criptográfico que estabelece uma chave de criptografia compartilhada. Este artigo explica como funciona e por que é importante para a segurança.
Por Que um Handshake?
Em mensageiros criptografados tradicionais, um servidor central media a troca de chaves. Quando você envia uma mensagem para alguém no Signal, o servidor deles facilita o acordo inicial de chaves. Isso funciona bem, mas introduz uma dependência de confiança -- você confia no servidor para entregar as chaves corretas.
O Z-Text não tem servidores. O handshake é realizado inteiramente por meio de transações na blockchain, tornando-o sem necessidade de confiança e verificável. Nenhum intermediário pode adulterar ou observar a troca de chaves.
O Protocolo
O handshake do Z-Text segue um protocolo de troca de chaves Diffie-Hellman modificado, adaptado para entrega baseada em blockchain:
Passo 1: Iniciação
Alice quer enviar uma mensagem para Bob. Ela conhece o z-address de Bob. O aplicativo de Alice gera um par de chaves efêmeras e cria uma transação blindada para o z-address de Bob. O memo da transação contém a chave pública efêmera de Alice e seu z-address.
Como esta é uma transação blindada, ninguém observando a blockchain pode ver que Alice enviou algo para Bob, ou o que o memo contém.
Passo 2: Detecção
Quando Bob sincroniza sua carteira, seu aplicativo detecta a transação recebida e lê o memo. Ele reconhece isso como uma solicitação de handshake por causa de um marcador de protocolo específico no formato do memo.
O aplicativo de Bob exibe a solicitação de handshake com o z-address de Alice, solicitando que ele aceite ou recuse.
Passo 3: Resposta
Se Bob aceitar, seu aplicativo gera seu próprio par de chaves efêmeras e envia uma transação de resposta de volta para o z-address de Alice. O memo contém a chave pública efêmera de Bob.
Passo 4: Derivação de Chave
Tanto Alice quanto Bob agora possuem as chaves públicas efêmeras um do outro. Cada um calcula independentemente o segredo compartilhado usando Elliptic Curve Diffie-Hellman (ECDH). As propriedades matemáticas do ECDH garantem que ambos os lados cheguem ao mesmo segredo compartilhado sem que ele seja transmitido.
Esse segredo compartilhado é então usado como base para derivar chaves de criptografia simétrica para todas as mensagens futuras entre Alice e Bob.
Propriedades de Segurança
O handshake via blockchain fornece várias propriedades de segurança importantes:
- Confidencialidade: A troca de chaves está oculta dentro de transações blindadas, invisível para observadores
- Integridade: A prova de trabalho da blockchain garante que as transações não possam ser adulteradas
- Autenticidade: Somente o detentor da chave privada do z-address pode criar a resposta do handshake
- Sem MITM: Sem um servidor central, não há intermediário que possa substituir chaves
Comparação com o Signal Protocol
O Signal Protocol usa um servidor central para armazenar e entregar pre-keys. Embora isso permita a troca de chaves assíncrona (você pode enviar uma mensagem para alguém que está offline), requer confiar nos servidores do Signal para entregar as chaves corretas.
O handshake via blockchain do Z-Text também é assíncrono (Bob não precisa estar online quando Alice envia a solicitação), mas o mecanismo de entrega é a blockchain descentralizada em vez de um servidor corporativo. Os passos do handshake são detectados via G-stream mempool push, completando em segundos por passo, e o modelo de confiança é fundamentalmente mais forte.
Considerações Práticas
O handshake geralmente é completado em segundos por passo via G-stream mempool push. Cada passo requer uma pequena taxa de transação BTCZ. Uma vez estabelecida, a chave compartilhada é armazenada localmente e não precisa ser renovada -- todas as mensagens futuras entre os dois contatos usam a mesma chave.
Se um contato for removido e adicionado novamente, um novo handshake deve ser realizado, gerando um segredo compartilhado completamente novo.
Artigos Relacionados
Criptografia em Duas Camadas: Como o Z-Text Protege Suas Mensagens
A maioria dos mensageiros criptografados depende de uma única camada de criptografia. O Z-Text usa duas camadas independentes, cada uma protegendo contra diferentes vetores de ameaça.
Por que Mensagens Descentralizadas Importam
Bilhões de mensagens passam por servidores centralizados diariamente. Mensagens descentralizadas oferecem um modelo fundamentalmente diferente, onde nenhuma entidade controla a infraestrutura.