#102. Cryptocurrencies and Blockchain
La prueba de conocimiento cero (Zero-Knowledge Proof, ZKP) es una tecnología que se fundamenta en algoritmos matemáticos y criptográficos para probar la existencia de determinada información o la necesidad de cumplir condiciones concretas sin revelarlas. ZKP es una poderosa herramienta para la verificación de privacidad, autentificación y seguridad en múltiples campos, incluyendo el desarrollo de la blockchain.
Exploremos el funcionamiento de esta tecnología, como sus primordiales mecanismos y retos.
Evolución de ZKP
El surgimiento y desarrollo de la tecnología ZKP está de manera estrecha vinculado a la investigación criptográfica llevada a cabo a fines de la década de mil novecientos ochenta. Uno de los primeros proyectos incorporados usando ZKP fue el protocolo Fiat-Shamir propuesto en mil novecientos ochenta y seis por los profesores de ciencias de la computación e informática, Adi Shamir y Amos Fiat, los dos de origen israelí. Su funcionalidad se fundamentaba en una combinación de hashing y números pseudoaleatorios para producir una prueba; esto fue lo que dejó asegurar la confidencialidad de la información al tiempo que se probaba su existencia.
El proceso se componía de 4 pasos básicos, los que se transformaron en el núcleo de ZKP para el futuro:
- Iniciación. El receptor de la prueba elige un número azaroso y lo manda al comprobador como reto.
- Generación de prueba. El comprobador recibe el reto y lo usa para producir la prueba. Una función hash es aplicada a la combinación del reto y al valor secreto, consiguiendo un número pseudoaleatorio.
- Respuesta. El comprobador manda el número pseudoaleatorio resultante como contestación al receptor de la prueba.
- Verificación. El receptor comprueba la prueba aplicando exactamente la misma función hash a la combinación del reto y la contestación recibida. Si el resultado coincide con el reto original, la prueba es admitida.
La idea esencial del protocolo Fiat-Shamir era que la función hash estaba en público libre y era reversible, mas era casi imposible pasar del valor hash a su valor original. El protocolo Fiat-Shamir se empleó extensamente en diferentes sistemas de autentificación y protocolos de intercambio de dinero electrónico.
Posteriormente, la tecnología ZKP ganó una popularidad señalada en el contexto del desarrollo de sistemas de la blockchain. ZKP fue amoldada para ser usada en el desarrollo de múltiples protocolos de blockchain con el fin de suministrar confidencialidad y seguridad en transacciones, autentificación y otras funciones.
Los primeros ensayos con ZKP en proyectos Web3 y la materialización de su potencial se hicieron en la blockchain de Ethereum. Esta plataforma es extensamente reconocida y usada para desarrollar contratos inteligentes y aplicaciones descentralizadas y su flexibilidad deja la programación de condiciones lógicas complejas.
Algunos de los primeros protocolos ZKP triunfantes fueron zk-SNARK y zk-STARK. Estos protocolos dejan cálculos complejos basados en datos cifrados, lo que da una ZKP enormemente eficaz y escalable. Ambos protocolos tienen sus ventajas y aplicaciones:
- zk-SNARK (Argumento de conocimiento no interactivo conciso de conocimiento cero) se usa generalmente en aplicaciones que requieren compacidad y carecen de interactividad. Por ejemplo, para asegurar la confidencialidad de las transacciones en la red blockchain.
- zk-STARK (Argumento de conocimiento transparente escalable de conocimiento cero) se usa de forma frecuente en casos que requieren escalabilidad y trasparencia. Por ejemplo, para conservar la privacidad de los datos y para la computación compleja.
En la actualidad, la tecnología ZKP sigue captando la atención de estudiosos y desarrolladores, y su alcance de aplicación e integración con otras soluciones DLT medra activamente, contribuyendo a la creación de soluciones más eficaces y privadas.
Mecanismos ZKP
Echemos una ojeada a los mecanismos básicos de la tecnología ZKP para comprender de qué forma marcha. Primeramente, existen dos partes implicadas en el proceso:
- el comprobador;
- el verificador.
El proceso consta de 4 pasos básicos que se han mantenido prácticamente inalterados desde la creación del protocolo Fiat-Shamir. Los mismos se fundamentan en mecanismos de prueba de conocimiento cero:
- Prueba de conocimiento. Este mecanismo deja que el comprobador dé la prueba que persuada al verificador de que una declaración en particular es auténtica en vez de descubrir información.
- Prueba de ejecución. Un mecanismo que deja al comprobador suministrar la prueba que persuade al verificador de que la acción se ha ejecutado adecuadamente.
- Prueba de consistencia. Un algoritmo que le deja al comprobador suministrar una prueba que prueba la identidad y congruencia de la información en los dos lados sin descubrir los detalles concretos de los datos.
- Prueba de no repudio. Este mecanismo deja que el comprobador dé una prueba de la integridad de los datos, dejando al verificador cerciorarse de que no haya habido substitución o perturbación de estos.
ZKP emplea distintas técnicas matemáticas y criptográficas en cada uno de ellos de estos mecanismos para producir pruebas que pueden ser verificadas sin descubrir de manera directa los datos. Esto garantiza la privacidad y confidencialidad en la transmisión y procesamiento de la información, al paso que se sostiene la confianza y valía de la prueba.
Objetivos y metas de ZKP
La tecnología de prueba de conocimiento cero (ZKP), aparte de brindar confidencialidad y privacidad de los datos, que indudablemente es su principal objetivo, asimismo aborda diferentes objetivos importantes:
- Proporciona seguridad e integridad a los datos al permitir la validación de la información sin descubrir su contenido, eludiendo así la posibilidad de modificación de datos a lo largo del proceso.
- Permite la autentificación y prueba de elegibilidad para acceder a determinados datos o recursos sin descubrir la identidad o información concreta.
- Amplía las posibilidades de la blockchain, volviéndola más atrayente para distintas industrias, ya que no solo ofrece confidencialidad en las transacciones, sino más bien asimismo protección de datos.
La utilidad de la tecnología ZKP ha generado una demanda que va alén de los desarrolladores de la blockchain. Sus mecanismos se emplean para otorgar acceso seguro en diferentes campos que requieren interacción y procesamiento de datos con un nivel alto de privacidad.
Barreras para una adopción masiva
Como cualquier tecnología renovadora, ZKP encara múltiples obstáculos que impiden su adopción masiva. Entre se incluyen los siguientes:
- Complejidad de implementación. El desarrollo de protocolos ZKP requiere recursos computacionales substanciales y técnicas criptográficas especializadas. La eficacia y el desempeño de los protocolos ZKP debe considerarse, a fin de que puedan escalar y aplicarse en ambientes del planeta real.
- Vulnerabilidad. El diseño y la implementación inapropiados de los protocolos ZKP pueden provocar brechas de seguridad.
- Escalabilidad y rendimiento. Los protocolos ZKP de forma frecuente hallan inconvenientes cuando procesan grandes cantidades de datos o cuando operan en redes distribuidas. Además, los protocolos de ZKP requieren una alta capacidad computacional, lo que complica su uso efectivo.
- Regulación y cuestiones regulatorias. El uso de ZKP, como otras tecnologías blockchain, aún se ve limitado por la carencia de un marco regulativo claro, lo que complica su implementación a gran escala.
Por otro lado, los desarrolladores están explorando activamente el potencial de ZKP, lo que ha llevado a que los protocolos basados en esta tecnología sean ejemplos poco a poco más usuales de sistemas eficaces y de alta calidad.
En resumen, la ZKP presenta grandes perspectivas de futuro alén de la industria de la blockchain, ya que la capacidad de sostener el anonimato cuando se trabaja on line es el inconveniente más apremiante en muchas áreas. Podemos aguardar que, en un futuro próximo, ZKP tenga el potencial de convertir globalmente los principios de interacción digital con la información.