Tecnologia

El Handshake en Blockchain: Intercambio de Claves sin Confianza

Antes de que dos usuarios de Z-Text puedan intercambiar mensajes, deben completar un handshake criptografico. Este articulo explica como funciona y por que es importante para la seguridad.

Z-Text Team·Engineering
28 de noviembre de 20257 min de lectura

Antes de que dos usuarios de Z-Text puedan intercambiar mensajes, deben completar un "handshake" -- un protocolo criptográfico que establece una clave de cifrado compartida. Este artículo explica cómo funciona y por qué es importante para la seguridad.

Por qué un handshake

En los mensajeros cifrados tradicionales, un servidor central media el intercambio de claves. Cuando envías un mensaje a alguien en Signal, su servidor facilita el acuerdo inicial de claves. Esto funciona bien pero introduce una dependencia de confianza -- confías en que el servidor entregue las claves correctas.

Z-Text no tiene servidores. El handshake se realiza completamente a través de transacciones de blockchain, haciéndolo sin necesidad de confianza y verificable. Ningún intermediario puede alterar u observar el intercambio de claves.

El protocolo

El handshake de Z-Text sigue un protocolo de intercambio de claves Diffie-Hellman modificado, adaptado para la entrega basada en blockchain:

Paso 1: Iniciación

Alice quiere enviar un mensaje a Bob. Ella conoce la z-address de Bob. La aplicación de Alice genera un par de claves efímeras y crea una transacción blindada a la z-address de Bob. El memo de la transacción contiene la clave pública efímera de Alice y su z-address.

Debido a que es una transacción blindada, nadie observando la blockchain puede ver que Alice envió algo a Bob, ni qué contiene el memo.

Paso 2: Detección

Cuando Bob sincroniza su billetera, su aplicación detecta la transacción entrante y lee el memo. La reconoce como una solicitud de handshake gracias a un marcador de protocolo específico en el formato del memo.

La aplicación de Bob muestra la solicitud de handshake con la z-address de Alice, pidiéndole que acepte o rechace.

Paso 3: Respuesta

Si Bob acepta, su aplicación genera su propio par de claves efímeras y envía una transacción de respuesta a la z-address de Alice. El memo contiene la clave pública efímera de Bob.

Paso 4: Derivación de claves

Tanto Alice como Bob ahora tienen las claves públicas efímeras del otro. Cada uno calcula independientemente el secreto compartido usando Elliptic Curve Diffie-Hellman (ECDH). Las propiedades matemáticas de ECDH garantizan que ambas partes lleguen al mismo secreto compartido sin que este sea transmitido.

Este secreto compartido se utiliza luego como base para derivar claves de cifrado simétrico para todos los mensajes futuros entre Alice y Bob.

Propiedades de seguridad

El handshake de blockchain proporciona varias propiedades de seguridad importantes:

  • Confidencialidad: El intercambio de claves está oculto dentro de transacciones blindadas, invisible para los observadores
  • Integridad: La prueba de trabajo de la blockchain asegura que las transacciones no puedan ser alteradas
  • Autenticidad: Solo el titular de la clave privada de la z-address puede crear la respuesta del handshake
  • Sin MITM: Sin un servidor central, no hay intermediario que pueda sustituir claves

Comparación con el protocolo Signal

El protocolo Signal usa un servidor central para almacenar y entregar pre-keys. Si bien esto permite el intercambio de claves asíncrono (puedes enviar un mensaje a alguien que está desconectado), requiere confiar en los servidores de Signal para entregar las claves correctas.

El handshake de blockchain de Z-Text también es asíncrono (Bob no necesita estar conectado cuando Alice envía la solicitud), pero el mecanismo de entrega es la blockchain descentralizada en lugar de un servidor corporativo. Los pasos del handshake se detectan mediante G-stream mempool push, completándose en segundos por paso, y el modelo de confianza es fundamentalmente más sólido.

Consideraciones prácticas

El handshake generalmente se completa en segundos por paso mediante G-stream mempool push. Cada paso requiere una pequeña comisión de transacción en BTCZ. Una vez establecida, la clave compartida se almacena localmente y no necesita ser renovada -- todos los mensajes futuros entre los dos contactos usan la misma clave.

Si un contacto se elimina y se vuelve a agregar, se debe realizar un nuevo handshake, generando un secreto compartido completamente nuevo.

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

Articulos Relacionados

Z-TEXT logoZ-TEXT

Tus llaves. Tus mensajes. Tu libertad.
El mensajero blockchain con zk-SNARKs FUERA DEL ALCANCE DE LA 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

Construido con para la privacidad

Construido por luchadores por la libertad de expresión y la libertad digital