Idioma

El Campo Memorando Cifrado

Zooko Wilcox & Paige Peterson | Dec 05, 2016

¡A partir del 28 de octubre de 2016, Zcash es una realidad! Cualquier persona con acceso a Internet puede descargar el software, conectarse a la red global descentralizada y enviar y recibir pagos, sin exponer sus metadatos de transacciones confidenciales al mundo.

Nota: todavía no hemos creado una billetera fácil de usar. El software que estamos distribuyendo es solo para usuarios de Linux que manejan la línea de comandos. Afortunadamente muchas otras personas y empresas ya se han puesto manos a la obra para proporcionar interfaces gráficas de usuario.

Este artículo del blog trata de una característica poco conocida pero potencialmente valiosa de este nuevo protocolo.

El Campo Memorando Cifrado

Cuando alguien recibe un pago Zcash desde la dirección blindada de otra persona a una dirección blindada suya, ve la cantidad recibida de Zcash y ve el ID de la transacción, lo cual le permite identificar esta transacción (en su forma encriptada) en el blockchain.

La persona que recibe no llega a saber nada sobre el remitente o sobre la historia del dinero que está recibiendo, y no ve la dirección del remitente. Esto es intencional - el remitente debe ser capaz de enviarle dinero sin necesariamente revelar otra información sobre sí mismo.

Sin embargo, nos dimos cuenta de que los remitentes a veces necesitan comunicar información sobre un pago específico. Por ejemplo, un número de factura o número de cuenta al que se realiza el pago, una dirección a la que debería enviarse cualquier reembolso, una nota al destinatario, etc.

Así que implementamos un campo adicional que es visible para el destinatario de un pago, llamado el "campo memorando cifrado". Siempre está presente en todo pago cifrado, y siempre tiene un tamaño exacto de 512 bytes. Si un remitente no especifica un memo, entonces el memo que se envía es todo ceros (antes del cifrado), y si el remitente incluye un memo inferior a 512 bytes, el espacio restante se rellena con ceros (antes del cifrado).

Este relleno es necesario para la privacidad, para que un observador no pueda detectar diferencias entre diferentes patrones de uso de los memorandos cifrados al observar el blockchain. También significa que el usuario no paga una tarifa de transacción más alta por incluir un memo ─el coste ya está incluido.

El memorando cifrado sólo es visible para el destinatario, a menos que la clave de vista de la transacción sea compartida (por el remitente o el destinatario) con un tercero. En ese caso, el tercero que ha recibido la clave de vista de transacción podría ver el memo, junto con la cantidad y la dirección del destinatario de la transacción, en la cadena de bloques. Las claves de vista de transacción ya están presentes en el protocolo, pero aún no se admiten en la API.

¿Qué Hará La Gente Con Esto?

un campo de memos. Se acuerdan?

En un principio imaginamos que el campo memorando cifrado fuera básicamente como el espacio de notas en la parte inferior de los cheques de papel antiguos, pero últimamente nos hemos estado preguntando: ¿qué otros usos le dará la gente?

Zcash es el primer sistema que combina la propiedad append-only de los blockchains con la propiedad selective disclosure del cifrado. Al utilizar el campo memorando se pueden ingresar datos arbitrarios (siempre y cuando se ajusten a 512 bytes) en el blockchain global y descentralizado de Zcash, y esos datos se convertirán en parte del ledger inmutable y append-only, pero no serán visibles a nadie más ─aún. Si más adelante revelas la clave de vista de transacción a alguien, entonces los datos serán visibles para esa persona en el blockchain. Si postearas la clave de vista de transacción públicamente, entonces los datos serían visibles para el público, todavía incrustados en su lugar original en el blockchain.

¿Podría esta función ser útil para enviar mensajes privados? ¿Marcas de tiempo? ¿Registros públicos tales como registros de títulos de propiedad? ¿Almacenamiento e intercambio de datos confidenciales como registros médicos o registros de negocios de forma segura?

Realmente no sé si el campo memorando cifrado sería apropiado y efectivo para esos propósitos, pero a partir de ahora, la característica existe y nada puede impedir que se experimente con ella. Si lo hacen, por favor háganme saber lo que aprenden!

Direcciones de Remitente

Uno de los usos más obvios para un campo memorando cifrado enviado dentro de un pago de ZEC entre direcciones blindadas es una dirección de remitente o de reembolso. Los comerciantes pueden pedir a sus clientes que incluyan una dirección de reembolso junto con el pago en caso de que el producto deba ser devuelto o que un servicio sea cancelado antes de tiempo. Puesto que no se requiere que el memo tenga la dirección desde la cual se envió el pago, esta característica podría incluso utilizarse como un bono de regalo garantizado criptográficamente. Si alguien comprara a un comerciante un regalo para su hermana, quien da el regalo puede incluir la dirección de pago blindada de su hermana en el campo memorando y compartir con ella el ID de la transacción que contiene los detalles cifrados de la transacción. Ella no sabrá el valor de la pulsera, pero si le parece que no le queda bien, puede devolver el producto al comerciante con el ID de la transacción, que el comerciante podrá asociar con el producto e iniciar un reembolso a la dirección proporcionada en el campo memorando.

La Regla del Viaje

Otro uso específico que teníamos en mente fue satisfacer La Regla del Viaje. La Regla del Viaje es un reglamento de la FinCEN que establece que cuando una entidad financiera envía una transacción a otra, la entidad emisora debe incluir la información de identificación del cliente en cuyo nombre está efectuando el pago. Se llama la Regla del Viaje porque la información de identificación debe viajar con el pago, en lugar de ser simplemente entregada aparte o registrada en una base de datos. Las instituciones financieras que utilizan Bitcoin (por ejemplo, intercambios como Kraken y Poloniex) se enfrentan a dificultades para poder satisfacer este reglamento, ya que no se puede realmente incluir la información personal de un cliente en un blockchain globalmente transparente!

Con Zcash, una institución financiera puede satisfacer esa regla, poniendo la información personal del cliente en el memorando cifrado. Esto lo hace visible para la institución financiera receptora, pero no para terceros no autorizados.

Notas De Amor En El Blockchain

Recientemente una joven me dijo que había recibido una transacción cifrada de Zcash y en el campo memorando encontró un hash 'merkletree' que apuntaba a un archivo en el sistema de archivos distribuido IPFS. Siguiendo ese enlace, encontró que el archivo era un ticket para un evento especial, en el extranjero, al que ella y su amante lejano habían estado hablando de asistir juntos.

El memorando era una nota de amor. Una nota de amor que está permanentemente incrustada en algún lugar entre los primeros bloques del blockchain de Zcash, pero que sólo es visible para dos personas. Creo que es hermoso.

zmsg

Aquí tienen un programa simple para poner memorandos en el campo memorando cifrado y para leerlos de nuevo (si eres el destinatario de la transacción adjunta): zmsg

Infinitas Posibilidades

Si bien los ejemplos enumerados en esta publicación ponen de relieve algunas de las maneras emocionantes en que los usuarios, desarrolladores y comerciantes pueden utilizar el campo memorando cifrado en los pagos de Zcash, esto es sólo el comienzo. Animamos a todos a experimentar con esta característica y con las herramientas que se están construyendo alrededor de ella. Puedes compartir tus hallazgos e ideas para hacks cool en nuestra comunidad online.