Tecnologia

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.

Z-Text Team·Engineering
28 de novembro de 20257 min de leitura

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.

#cryptography#key-exchange#diffie-hellman#blockchain
CompartilharTwitter

Artigos Relacionados

Z-TEXT logoZ-TEXT

Suas chaves. Suas mensagens. Sua liberdade.
O mensageiro blockchain com zk-SNARKs FORA DO ALCANCE DA CENSURA.

zk means zero leaks

Empresa

Z-TEXT Ltd

Trust Company Complex

Ajeltake Road, Ajeltake Island

Majuro, Marshall Islands

MH96960

Technical glossary

zk-SNARKs
Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge — cryptographic proofs that verify a statement without revealing the data behind it. Reference.
BitcoinZ (BTCZ)
Community-driven, no-premine cryptocurrency with zk-SNARKs shielded transactions, launched 2017. Launch announcement.
Equihash
Memory-hard proof-of-work algorithm used by BitcoinZ consensus; it is part of the network security model, not a standalone post-quantum guarantee. Reference.
AES-256-GCM
NIST-standard authenticated encryption used for local message payload encryption before on-chain broadcast. NIST SP 800-38D.
Ztext

Construído com para privacidade

Construído por lutadores pela liberdade de expressão e liberdade digital