¿Qué son las pruebas de conocimiento cero? (ZKP)

Este artículo es una traducción de “What Is a Zero-Knowledge Proof (ZKP)?” escrito por ChainLink, traducido por Ari Kiry y revisado por Comunidad de Chainlink en español.

La transparencia inherente a las blockchains supone una gran ventaja en muchos casos, pero también pueden darse casos de uso de contratos inteligentes que requieren privacidad por razones empresariales o legales, como usar datos confidenciales para su ejecución. Una forma cada vez más habitual de conseguir privacidad en blockchains públicas es mediante las Pruebas de Conocimiento Cero (ZKP, por sus siglas en inglés), método que permite a un tercero probar criptográficamente que conoce cierta información sin tener que revelar la información real subyacente. En el contexto de redes blockchain, la única información revelada on-chain por una ZKP es que cierta información oculta es válida y conocida por el autor de la prueba con un alto grado de certeza.

Este artículo examina cómo funcionan las pruebas de conocimiento cero para proporcionar garantías en materia de privacidad, las principales ventajas que ofrecen a los usuarios y una serie de casos de uso que aprovechan las ZKP. Además, muestra cómo la tecnología DECO de Chainlink permite la creación de redes de oráculos que preservan la privacidad y que pueden demostrar que los datos proceden de un servidor específico de forma confidencial y totalmente compatible.

Cómo Funciona una Prueba de Conocimiento Cero

Las pruebas de conocimiento cero se describieron por primera vez en 1985 en un artículo del MIT de Shafi Goldwasser y Silvio Micali titulado “The Knowledge Complexity of Interactive Proof-Systems”. En este documento, los autores demuestran que es posible que un probador (prover) convenza a un verificador (verifier) de que una declaración específica sobre el estado de ciertos datos es verdadera sin revelar ninguna información adicional sobre los datos en cuestión. Los ZKP pueden ser interactivos, es decir, que un probador puede convencer a un verificador concreto pero tiene que repetir el proceso con cada uno de los verificadores, o no interactivos, es decir, que un probador genera una prueba que permite ser verificada por cualquiera. Además, existen varias implementaciones de ZKP, como zk-SNARKS, zk-STARKS, PLONK y Bulletproofs. Cada una de ellas tiene sus limitaciones en cuanto al tamaño de la prueba, el tiempo del probador y el de verificación entre otras.

Una prueba de conocimiento cero debe satisfacer tres propiedades:

  • Totalidad: Si una declaración es verdadera, entonces un verificador honesto puede ser convencido por un probador honesto de que posee conocimiento sobre la entrada correcta.
  • Solvencia: Si una declaración es falsa, ningún probador deshonesto puede convencer unilateralmente a un verificador honesto de que posee conocimientos sobre la entrada correcta.
  • Conocimiento cero: Si el estado es verdadero, entonces el verificador no aprende nada más del probador, más allá de que la declaración es verdadera.

De manera general, la creación de una ZKP implica que un verificador pida al probador que realice una serie de acciones que sólo pueden realizarse con precisión si este conoce la información subyacente. Si el probador no hace más que especular sobre el resultado de estas acciones, la prueba del verificador acabará demostrando que está equivocado con un alto grado de probabilidad.

Ejemplo conceptual de cómo funciona una prueba de conocimiento cero para demostrar el conocimiento de los datos sin revelar los datos a terceros

Un ejemplo conceptual más intuitivo para entender la comprobación de datos mediante ZKP es imaginar una cueva con una sola entrada y dos caminos (camino A y B) que se conectan en una puerta común cerrada con una clave. Alice quiere demostrar a Bob que conoce la contraseña de la puerta sin revelar el código a Bob. Para ello, Bob se sitúa fuera de la cueva y Alice entra tomando uno de los dos caminos (sin que Bob sepa cual). Acto seguido, Bob pide a Alice que tome uno de los dos caminos de vuelta a la entrada de la cueva (elegido al azar). Si Alice eligió originalmente el camino A hacia la puerta, pero luego Bob le pide que tome el camino B de vuelta, la única manera de que esto pueda suceder es que Alice conozca el código de la puerta. Este proceso puede repetirse varias veces para demostrar de manera más probable que Alice conoce el código y que no eligió el camino correcto de manera casual.

Una vez completado este proceso, Bob tiene un alto grado de certeza de que Alice sabe el código de la puerta, sin necesidad de conocerlo él mismo. Aunque sólo se trata de un ejemplo conceptual, las ZKP emplean esta estrategia utilizando criptografía para demostrar el conocimiento de datos sin revelarlos. En el ejemplo de la cueva, hay una entrada, un camino y una salida. En informática existen sistemas similares, circuitos que toman una entrada, pasan la señal de entrada por un camino de puertas lógicas y generan una salida. Las pruebas de conocimiento cero aprovechan este tipo de circuitos para demostrar declaraciones.

Ventajas de las Pruebas de Conocimiento Cero

La principal ventaja de las Pruebas de Conocimiento Cero es la capacidad de aprovechar bases de datos preservando la privacidad dentro de blockchains públicas como Ethereum. Mientras que las blockchains están diseñadas para ser altamente transparentes, donde cualquiera que ejecute un nodo puede ver y descargar todos los datos almacenados en el registro, la incorporación de la tecnología ZKP permite a usuarios y empresas aprovechar sus bases de datos privadas para la ejecución de contratos inteligentes sin necesidad de revelar los datos subyacentes.

Garantizar la privacidad en las blockchains es clave para las instituciones tradicionales, como proveedores en cadenas de suministro, empresas y bancos que quieren interactuar con contratos inteligentes o crearlos, pero que necesitan mantener confidenciales sus datos comerciales para seguir siendo competitivos. Aparte se exige a menudo que se salvaguarde la información de identificación personal (PII) de sus clientes y que cumplan con normativas como el Reglamento General de Protección de Datos (RGPD) de la Unión Europea y la Ley de Portabilidad y Responsabilidad de los Seguros Médicos (HIPAA) de Estados Unidos.

A pesar de que las blockchain autorizadas (léase, de acceso restringido) han surgido como método para preservar la privacidad de las transacciones de las instituciones, las ZKP permiten a las instituciones interactuar de forma segura con redes públicas, que a menudo gozan de un gran efecto de red a nivel global, sin renunciar al control de bases de datos confidenciales. Por ello, la tecnología ZKP está abriendo con éxito una amplia gama de casos de uso institucional para blockchains públicas que antes eran impracticables, incentivando la innovación y creando una economía global más eficiente.

Aplicaciones de las Pruebas de Conocimiento Cero

Las ZKP se han utilizado en blockchains como Zcash para conseguir crear transacciones que preserven la privacidad manteniendo la información sobre la cantidad monetaria, remitente y direccion del receptor. Las redes descentralizadas de oráculos, que proporcionan a los contratos inteligentes acceso a datos y computación off-chain, también pueden aprovechar las ZKP para demostrar algún hecho sobre ciertos datos off-chain, sin revelar dichos datos subyacentes on-chain.

Una implementación basada en Pruebas de Conocimiento Cero en desarrollo es DECO, una solución que preserva la privacidad dentro del conjunto de operaciones seguras off-chain de la red Chainlink. Ampliando HTTPS/TLS, el protocolo más utilizado para transferir datos en Internet, DECO garantiza que los datos sigan siendo privados y a prueba de manipulaciones durante su entrega desde varias fuentes de datos privadas y de primera calidad. DECO funciona con versiones modernas de TLS, no requiere hardware específico y funciona sin problemas de compatibilidad, evitando cualquier necesidad de cambios en el servidor. Por lo tanto, los nodos de Chainlink aptos para DECO pueden demostrar hechos sobre los datos procedentes de servidores de confianza sin revelar estos datos on-chain, a la vez que demuestran la fuente, ya que se mantiene la cadena de custodia de TLS.

Con soluciones ZKP como DECO, se hacen posibles una nueva gama de casos de uso para contratos inteligentes, incluyendo préstamos sub-colaterizados, en los que los prestatarios generan credenciales de alta fiabilidad que dan fe de su solvencia preservando su privacidad. Específicamente, los prestatarios pueden generar estas credenciales basándose en registros de fuentes online autorizadas, como instituciones reconocidas, sin exponer datos potencialmente sensibles como su nombre, su ubicación o el valor exacto de su puntuación de crédito (solo que supere un umbral predefinido).

DECO también puede fomentar la creación de protocolos de identidad descentralizada (DID) como CanDID, en los que los usuarios pueden obtener y gestionar sus propias credenciales, en lugar de depender de un tercero centralizado. Dichas credenciales son firmadas por entidades denominadas emisores que pueden asociar de forma autorizada afirmaciones específicas con usuarios como puede ser la ciudadanía, profesión, títulos universitarios, etc. DECO permite que cualquier servidor existente se convierta en emisor y proporciona una gestión de claves compartidas para respaldar las cuentas, así como una resistencia Sybil que preserva la privacidad, basada en identificadores únicos definitivos como los números de la Seguridad Social.

Por último, las soluciones de ZKP como DECO no sólo benefician a los usuarios, sino que también permiten a las instituciones tradicionales y a los proveedores de datos monetizar sus bases de datos sensibles de forma confidencial. En lugar de publicar los datos directamente on-chain, sólo es necesario publicar las certificaciones derivadas de los ZKP que prueban ciertos hechos sobre los datos. Esto abre nuevos mercados para los proveedores de datos, que pueden monetizar bases de datos existentes y aumentar sus ingresos al tiempo que evitan cualquier fuga. Cuando se combina con Chainlink Mixicles, la privacidad se extiende más allá de los datos de entrada que ejecutan un acuerdo para incluir también los términos del propio acuerdo.

Al combinar la naturaleza intrínsecamente transparente de las redes de blockchain con la preservación de privacidad que ofrecen las Pruebas de Conocimiento Cero, las empresas e instituciones se benefician de lo mejor de ambos mundos: pueden mantener sus conjuntos de datos internos en privado mientras los aprovechan en entornos de ejecución fiables propios de las aplicaciones de contratos inteligentes.

Consulta el Whitepaper de Chainlink 2.0 para profundizar en el papel de las redes descentralizadas de oráculos en el entorno de contratos inteligentes que preservan la confidencialidad y suscríbete al boletín oficial de Chainlink para recibir las últimas actualizaciones sobre la red Chainlink.

--

--

Comunidad de Chainlink en español

Unofficial Chainlink Medium in Spanish. This account is not managed by the official team. Lowering the language barrier to entry to becoming part of Chainlink.