domingo, diciembre 16, 2018

Tecnología Zcash

Zcash es una Criptomoneda que usa protocolos criptográficos complejos e innovadores a través de una red de computadoras bien distribuida para encriptar las transacciones de modo que los terceros no puedan ver quien está enviando, quien está recibiendo, o inclusive conocer la cantidad de Zcash que está siendo enviado.

A diferencia de otras criptomonedas, Zcash tiene un método único de escribir las transacciones en el Blockchain al utilizar dos tipos distintos de direcciones, que son:

  • Transparentes (Direcciones “T”): funciona igual que Bitcoin, los detalles de la transacción pueden ser vistos por todos en el Blockchain público.
  • Blindadas (Direcciones “Z”): son los que hacen especial Zcash. Puedes gastar y recibir Zcash de forma privada sin que los detalles sean accesibles por terceros. Solamente tú y la persona que recibe los fondos tendrán conocimiento de la transacción.

Para información más detallada sobre cómo funcionan las transacciones transparentes y blindadas te recomendamos leer este post, o si estas interesado en usar Zcash en tu aplicación pásate por la Página de Desarrolladores.

 

¿Cómo Zcash puede usar direcciones blindadas para escribir los detalles de las transacciones en el Blockchain sin que nadie sepa los detalles? Al usar el protocolo de conocimiento cero (ZKP), como lo explica la compañía Zcash:

“El protocolo de conocimiento cero son un avance científico en el campo de la criptografía: permiten que conozcas el conocimiento de algunos hechos sobre información oculta sin revelar la información. La propiedad de permitir tanto la verificación como la privacidad de la información son fundamentos sólidos en todo tipo de transacciones, y estamos integrando el concepto en el Blockchain para encriptar la dirección del remitente, la dirección del destinatario, y la cantidad. Un blockchain que encripta la data de la transacción (haciéndola privada) y carece de la prueba de conocimiento cero también carece de la seguridad de que todas las transacciones sean válidas. Esto es porque los nodos en la red no pueden determinar sí el remitente realmente tuvo el dinero y sí anteriormente lo enviaron a otra persona, o si nunca lo tuvo. La data encriptada no puede ser verificada por los nodos de la red.

En Zcash, hacemos uso de un protocolo de conocimiento cero particular llamado zk-SNARKs (“zero-knowledge succinct non-interactive arguments of knowledge” por sus siglas en inglés). Dentro de una transacción Zcash, también pueden existir una cadena de datos que el remitente de una transacción proporciona – la “prueba de conocimiento cero”- junto con la data encriptada de la transacción que prueba las propiedades criptográficas de la data encriptada, incluyendo el hecho que el propietario no puede haber generado esa cadena de datos si no tiene la propiedad de la llave de gastos (“spending key”) y a menos que los valores de input y output sean iguales. La prueba también garantiza la creación de un nullifier único que es usado para marcar los tokens gastados, cuando sean gastados en realidad. Esto permite la verificación de que la transacción es válida, mientras preserva la privacidad de los detalles de la transacción.” –Obtenido de la Página Zcash Página de Preguntas Frecuentes.

La guía de usuario oficial 1.0 de Zcash, disponible en: https://github.com/zcash/zcash/wiki/1.0-User-Guide es un buen lugar para empezar y familiarizarse con el funcionamiento de Zcash. El cliente Zcash suministrado por la compañía Zcash es un paquete completo que te permitirá correr un nodo completo, minar con tu CPU (si así lo quieres), y también tiene un monedero incluido.

Si estas interesado en obtener un conocimiento más técnico en los detalles sobre las operaciones matemáticas detrás del funcionamiento de Zcash puedes echar un vistazo a las Especificaciones del Protocolo , visitar la Página Web Oficial Zcash , o entrar en nuestra página para Desarrolladores.

Puedes profundizar sobre Zcash, Prueba de conocimiento cero y zkSNARKS viendo los videos incluidos abajo.

Histora de Zcash

El Zcash comenzó a tomar forma en 2014 con un proyecto llamado Zerocoin. Este proyecto fue el trabajo de Matthew Green, Ian Miers, Christina Garman y Aviel D. Rubin que estaban en el Departamento de Ciencias Informáticas de la Universidad Johns Hopkins de Baltimor, Estados Unidos de Norteamérica.

El proyecto Zerocoin fue concebido para solucionar el principal problema del Bitcoin, su falta de privacidad.

El trabajo investigativo de Zerocoin realizado por Matthew, Ian, Christina, y Aviel puede resumirse así: “El Bitcoin es la primera moneda electrónica en experimentar una adopción generalizada. Mientras que el Bitcoin ofrece el potencial para nuevas formas de interacción financieras, tiene limitantes significativas al respecto de la privacidad, específicamente en virtud de que el registro (log) de las transacciones Bitcoin es enteramente público, la privacidad de los usuarios es protegida a penas por el uso de seudónimos. Con este trabajo de investigación proponemos el Zerocoin, una extensión criptográfica al Bitcoin que extiende el protocolo para permitir transacciones de moneda completamente anónimas. Nuestro sistema utiliza presupuestos criptográficos estándar y no introduce nuevos requisitos de confianza con terceros ni un cambio en el modelo de seguridad de Bitcoin. Detallamos la construcción criptográfica de Zerocoin, su integración al Bitcoin, y examinamos su desempeño tanto en términos informáticos como su impacto sobre el protocolo Bitcoin.” (1)

Este proyecto original de Zerocoin fue cubierto como un complemento (“Add-on”) al Bitcoin: “El llamado Zerocoin, es un complemento criptográfico del Bitcoin que permite que las transacciones no puedan ser vinculadas entre sí. La clave es que lo hace sin introducir nuevos elementos centralizados a la red y sin usar lavado (laundering) donde los bitcoins son gastados a través de intermediarios para ocultar la dirección del monedero del remitente inicial”. (2) y fue proclamado como una solución al “Cumplimiento del sueño de pagos verdaderamente privados” que “Si fuera adoptado por las redes Bitcoin suficientes, los inversores en el Zerocoin creen que podría volverse una actualización fundamental del código de Bitcoin, integrándose a la criptomoneda y solucionando lo que muchos ven como un serio problema de privacidad y fallo de la implementación actual del Bitcoin” (3)

Este trabajo entonces llevo a la colaboración en 2014 entre los investigadores originales de Zerocoin de la Universidad John Hopkins y los criptógrafos del MIT, El Technion, y la Universidad de Tel Aviv, quienes juntos pudieron implementar el diseño de los Zerocoins haciéndolo más eficiente y más anónimo.

“Con el Nuevo protocolo Zerocash, a diferencia del antiguo protocolo Zerocoin, los usuarios pueden hacerse pagos directos entre sí, con un protocolo criptográfico inmensamente más eficiente que también oculta el valor del pago, y no solo su origen.” (4) Este nuevo protocolo desarrollado por Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromers, y Madars Virza produce una moneda que no será más un complemento (add-on) del Bitcoin original, sino que será una criptomoneda completamente nueva llamada Zerocash.

No se sabe a ciencia cierta cuando el equipo de Zerocash empezó a colaborar con Zooko, y su equipo de Least Authority hizo la transición de Zerocash a Zcash pero la primera lista emitida del Github de Zcash data de Noviembre de 2014 (5) y la primera mención pública de la colaboración de Zooko es de Mayo de 2016. (6).

Zooko Wilcox, la totalidad del equipo de Zerocash, e Ingenieros: Nathan Wilcox, Daira Hopwood, Sean Bowe, Taylor Hornby, Jack Grigg y Maureen Walsh junto con los asesores: Gavin Anderesen, Vitalik Buterin, Andrew Miller, Arthur Breitman, y Joseph Bonnaeu (7) trabajaron arduamente para sacar la primera Versión Pública (1.0) de Zcash.

El equipo lanzó exitosamente Zcash el 28 de octubre de 2016


Referencias Históricas:

(1) http://zerocoin.org/talks_and_press
(2) https://www.newscientist.com/blogs/onepercent/2013/03/bitcoin-zerocoin.html
(3) http://www.forbes.com/sites/andygreenberg/2013/04/12/zerocoin-add-on-for-bitcoin-could-make-it-truly-anonymous-and-untraceable/#43fe01e34557
(4) http://zerocoin.org/index
(5) https://github.com/zcash/zcash/issues/1 (11/25/14)
(6) https://leastauthority.com/blog/a_bug_in_libsnark.html (5/16/15)
(7) https://z.cash/team.html
(8) https://github.com/zcash/zcash/milestones/

-Derechos de Autor sobre la Historia. Gibson Ashpool. 2017