Segurança

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.

Z-Text Team·Engineering
15 de dezembro de 20256 min de leitura

A maioria dos mensageiros criptografados depende de uma única camada de criptografia. O Z-Text usa duas camadas de criptografia independentes, cada uma protegendo contra diferentes vetores de ameaça. Este artigo explica como elas funcionam juntas para fornecer defesa em profundidade para suas mensagens.

Camada 1: Blindagem da Blockchain

A primeira camada de criptografia vem da própria blockchain BitcoinZ. As transações blindadas usam zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) para criptografar todos os dados da transação.

Quando uma mensagem Z-Text é enviada como uma transação blindada, os seguintes dados ficam ocultos de todos os observadores da rede:

  • O endereço do remetente
  • O endereço do destinatário
  • O valor da transação
  • O campo memo (onde a mensagem é armazenada)

Somente o detentor da viewing key do z-address do destinatário pode descriptografar o campo memo e ler o conteúdo da mensagem. Isso protege contra vigilância passiva da rede e análise de blockchain.

Camada 2: Criptografia por Chave de Contato

A segunda camada adiciona criptografia de ponta a ponta sobre a blindagem da blockchain. Durante o processo de handshake, o Z-Text estabelece uma chave secreta compartilhada entre dois contatos usando a troca de chaves Elliptic Curve Diffie-Hellman (ECDH).

Antes de qualquer mensagem ser colocada no memo da transação, ela é criptografada com essa chave compartilhada. Isso significa que, mesmo que alguém obtenha a viewing key do z-address (por coerção, roubo ou uma vulnerabilidade futura), ainda não poderá ler as mensagens sem a chave de contato derivada separadamente.

A Troca de Chaves do Handshake

A chave de contato é estabelecida por meio de um protocolo de handshake sem necessidade de confiança:

  1. Alice envia uma solicitação de handshake para o z-address de Bob, contendo sua chave pública efêmera (criptografada no memo de uma transação blindada)
  2. Bob aceita enviando sua chave pública efêmera de volta para Alice (também via transação blindada)
  3. Tanto Alice quanto Bob derivam independentemente o mesmo segredo compartilhado usando ECDH
  4. Esse segredo compartilhado se torna a chave de criptografia simétrica para todas as mensagens futuras

A beleza dessa abordagem é que até mesmo a troca de chaves é protegida pela blindagem da Camada 1. Um observador não pode ver as chaves públicas sendo trocadas ou sequer que um handshake está ocorrendo.

Por Que Duas Camadas Importam

Cada camada protege contra diferentes cenários de ataque:

  • Camada 1 sozinha protege contra observadores da rede e analistas de blockchain, mas é vulnerável ao comprometimento da viewing key
  • Camada 2 sozinha protege contra o comprometimento da viewing key, mas seria vulnerável se as mensagens fossem enviadas em texto claro on-chain
  • Ambas as camadas juntas exigem que um atacante comprometa dois sistemas criptográficos independentes simultaneamente

Este é o princípio da defesa em profundidade aplicado à criptografia de mensagens. Nenhum ponto único de falha pode expor suas mensagens.

Primitivas Criptográficas

A pilha de criptografia do Z-Text usa primitivas criptográficas bem estabelecidas:

  • zk-SNARKs (Groth16) para transações blindadas da Camada 1
  • ECDH sobre Curve25519 para troca de chaves
  • ChaCha20-Poly1305 para criptografia simétrica da Camada 2
  • BLAKE2b para derivação de chaves

Todas as operações criptográficas são realizadas no núcleo Rust da aplicação, aproveitando implementações de tempo constante para prevenir ataques de canal lateral por temporização.

Implicações Práticas

Para o usuário, a criptografia de duas camadas é completamente transparente. O aplicativo lida com toda a troca de chaves e criptografia automaticamente. As mensagens aparecem em uma interface de chat familiar sem nenhuma indicação da criptografia sofisticada acontecendo por baixo.

O resultado é um nível de segurança de mensagens que supera o que qualquer mensageiro centralizado pode oferecer -- não porque a criptografia é mais complexa, mas porque o modelo de confiança é fundamentalmente diferente. Não há servidor para intimar, não há empresa para coagir e não há uma única chave que desbloqueia tudo.

#encryption#zk-snarks#security#privacy
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