Mensajeria
Los mensajes de Z-Text son transacciones en blockchain. Cada mensaje esta cifrado, es permanente y resistente a la censura.
Enviar mensajes
Para enviar un mensaje, abre una conversacion con un contacto verificado por handshake y escribe tu mensaje. La aplicacion lo cifra con la clave compartida y lo transmite como una transaccion protegida en la blockchain de BitcoinZ.
- Abre una conversacion desde la pestana Mensajes
- Escribe tu mensaje en el campo de texto
- Toca el boton de enviar -- el mensaje se cifra localmente
- Se crea una transaccion protegida y se transmite a la red
- El mensaje se entrega casi al instante via mempool G-stream push (normalmente 1-5 segundos)
Entrega de mensajes
Los mensajes se entregan casi al instante via mempool G-stream push. Cuando se transmite una transaccion, G-stream envia el memo no leido al dispositivo del destinatario en 1-5 segundos. La confirmacion en bloque sigue despues para el asentamiento permanente en la blockchain.
| Estado | Significado |
|---|---|
| Enviando | La transaccion se esta creando y firmando |
| Pendiente | Transaccion transmitida al mempool |
| Entregado | G-stream push del mempool recibido por el destinatario |
| Confirmado | Transaccion incluida en un bloque para asentamiento permanente |
Protocolo de handshake
Antes de poder enviar mensajes a alguien, debes completar un handshake criptografico. Esto establece una clave secreta compartida que ambas partes usan para cifrar los mensajes.
- Iniciacion -- Envias una solicitud de handshake que contiene tu clave publica, incrustada en una transaccion protegida
- Respuesta -- El destinatario acepta enviando su clave publica en otra transaccion protegida
- Derivacion de clave -- Ambos clientes calculan un secreto compartido usando el intercambio de claves Diffie-Hellman
- Listo -- El secreto compartido se almacena localmente y se usa para cifrar/descifrar todos los mensajes futuros
Verificacion sin confianza
El handshake no requiere confianza en terceros -- ningun servidor media el intercambio de claves. Ambas claves publicas viajan a traves de transacciones protegidas, por lo que incluso el intercambio de claves es invisible para los observadores.
Cifrado explicado
Z-Text utiliza un modelo de cifrado de dos capas:
- Capa 1 -- Proteccion zk-SNARK: El memo de la transaccion (que contiene tu mensaje) se cifra mediante el mecanismo nativo de transacciones protegidas de la blockchain. Solo las z-addresses del remitente y el destinatario pueden descifrarlo.
- Capa 2 -- Cifrado con clave compartida: Antes de colocarse en el campo memo, tu mensaje se cifra adicionalmente con la clave compartida establecida durante el handshake. Esto significa que incluso si alguien compromete la viewing key de la z-address, aun no podra leer los mensajes sin la clave derivada del handshake.
Stickers
Z-Text permite enviar imagenes de stickers en las conversaciones. Los stickers se codifican e incrustan en el memo de la transaccion igual que los mensajes de texto. La aplicacion incluye un paquete de stickers integrado, y los usuarios premium tienen acceso a paquetes adicionales.
Limites de mensajes
Dado que los mensajes se almacenan en memos de transacciones, existe un limite de caracteres por mensaje determinado por el tamano del campo memo de la blockchain. Para mensajes mas largos, la aplicacion divide automaticamente el contenido en multiples transacciones y los reensambla en el dispositivo del destinatario.
Premium: Mensajes mas rapidos
Los suscriptores premium se benefician de la retransmision prioritaria de transacciones, lo que puede reducir los tiempos de entrega de mensajes al enrutarlos a traves de una infraestructura de nodos optimizada.