Claves de visualización de Zcash
Cuando un usuario de Zcash crea una transacción blindada, la encripta a la dirección del destinatario. Ser capaz de acceder a los datos ocultos tras la encriptación es una condición necesaria para que el destinatario gaste los fondos, pero no es suficiente ya que el destinatario también necesita demostrar la propiedad de la clave de gasto correspondiente a la dirección. Para descifrar la transacción blindada, el destinatario utiliza una clave de visualización, que obtiene a partir de su clave de gasto. Una clave de visualización permite descifrar los datos protegidos, pero no revela nada sobre la clave de gasto, lo que permite "ver" las transacciones protegidas, pero no gastarlas.
Escaneo Blockchain con Zebra
Todos los usuarios de Zcash utilizan sus claves de visualización para saber qué transacciones les pertenecen. Intentan descifrar cada transacción en la blockchain para ver si pueden desbloquear los datos blindados. Nos referimos a este proceso como escaneo o descifrado de prueba. Los clientes ligeros pueden realizar el escaneo localmente para que el servidor público con el que se comunican no sepa nada de sus transacciones. Sin embargo, algunos usuarios operan su propia infraestructura. Suelen ser usuarios empresariales, como los intercambios, a los que les conviene más utilizar un servicio de escaneado estrechamente vinculado a su nodo completo.
En la Zcon4, la Electric Coin Company y la Zcash Foundation acordaron trasladar el ecosistema Zcash a Zebra. Para poder hacerlo, Zebra necesita soportar monederos capaces de sustituir al monedero en zcashd. Como primer paso hacia este objetivo, decidimos ampliar Zebra con un escáner de blockchain que acepta claves de visualización y realiza el descifrado de prueba de las transacciones blindadas. A continuación, el escáner almacena los resultados en un almacenamiento persistente. Esta funcionalidad debería permitir una implementación eficiente de los monederos que dependen de Zebra.
Detalles de la implementación
El escáner actual es un nuevo crate en el repositorio de Zebra, en forma de producto mínimo viable. Se basa en la librería librustzcash para realizar el escaneo, y sólo soporta Sapling. Lee todos los bloques a través del servicio de estado interno de Zebra y almacena los TXID, refiriéndose a las transacciones que contienen notas desencriptables mediante las claves de visualización proporcionadas. El almacenamiento es una instancia separada de RocksDB que Zebra también utiliza para almacenar el estado.
La versión actual del escáner está documentada para los usuarios en nuestro libro de Zebra. Si quieres probarlo, puedes utilizar esta herramienta para leer los resultados del escaneo. Si envías la clave de escaneo desde ZECpages, imprimirá todos los mensajes del tablón a la salida estándar. El siguiente paso para el escáner es implementar un frontend gRPC, exponiendo las capacidades del escáner a los usuarios de Zebra.
Si tienes algún comentario o sugerencia, háznoslo saber en nuestro Discord, o en el Foro de la Comunidad Zcash.
Traducción del original en inglés de Zcash Foundation

Si quieres aprender más sobre privacidad en la economía digital descentralizada, te puedes unir a la comunidad de Zcash Español en Telegram. Para conectar con el ecosistema digital de Zcash Español, visita nuestro LinkTree.


