Cardano Foundation muestra cómo verificar una prueba de conocimiento cero en Cardano

La primera entrega de una serie para desarrolladores de cinco partes muestra cómo construir una prueba Groth16 de 192 bytes y verificarla en Aiken utilizando operaciones criptográficas ya disponibles en Plutus V3.

By SongMarketCap

Updated:

Cardano News - Cardano Foundation muestra cómo verificar una prueba de conocimiento cero en Cardano

Un contrato inteligente de Cardano puede comprobar si alguien conoce ocho números que satisfacen una ecuación sin recibir los propios números. Cardano Foundation usa ese ejemplo para presentar su nueva serie sobre pruebas de conocimiento cero. El primer tutorial sigue el proceso desde escribir la ecuación como un conjunto de restricciones hasta generar la prueba fuera de cadena y verificarla en una prueba de Aiken.

Ocho números privados, un resultado público

El ejemplo agrupa ocho números en cuatro pares. El probador multiplica los dos números de cada par y suma los cuatro productos. La suma debe ser igual a 100. Ese resultado es público, mientras que los ocho números permanecen privados.

El tutorial expresa el cálculo como cinco restricciones matemáticas. Cuatro comprueban los productos individuales y la quinta verifica que suman el resultado público. Una prueba válida establece que el probador conoce un conjunto de números que satisface esas restricciones sin revelar qué conjunto utilizó.

Cómo Aiken verifica una prueba Groth16 de 192 bytes

El tutorial genera la prueba fuera de cadena. La prueba Groth16 consta de tres puntos de curva elíptica que ocupan 192 bytes en el formato BLS12-381 comprimido usado en el ejemplo. El verificador comprueba la prueba frente a las entradas públicas y una clave de verificación vinculada al circuito.

El recorrido termina con una prueba de Aiken que usa las mismas operaciones BLS12-381 disponibles para los scripts de Plutus V3 en la red principal de Cardano. Para hacer que el ejemplo sea reproducible, el tutorial utiliza valores fijos y de conocimiento público para la parte normalmente secreta de la configuración. En una configuración Groth16 de producción, cualquiera que conserve esos valores secretos de configuración podría falsificar pruebas.

Por qué la verificación en cadena es importante para Cardano

Los desarrolladores de Cardano pueden incorporar un verificador Groth16 en un contrato inteligente de Aiken utilizando las operaciones existentes de Plutus V3. Una aplicación puede generar la prueba fuera de cadena y luego pasarla al contrato para que el validador decida si una transacción satisface una condición. La prueba y cualquier entrada pública requerida están disponibles para el validador, mientras que los datos privados subyacentes pueden permanecer fuera de cadena.

En una aplicación de credenciales, esa división determina qué necesita revelar un usuario. Un contrato podría comprobar si el titular de una credencial cumple un requisito de edad sin recibir su fecha de nacimiento, siempre que el circuito y el diseño de la credencial impongan la afirmación que se está probando.

[NEWSBREAK]

Qué cubrirán las próximas cuatro entregas

La segunda entrega mostrará cómo acelerar la generación de pruebas y cómo funcionan las ceremonias de configuración de producción. También comparará Groth16 con otros sistemas de pruebas y explorará cómo las máquinas virtuales de conocimiento cero pueden demostrar que un programa se ejecutó correctamente sin requerir que los desarrolladores diseñen un circuito a mano.

La tercera entrega mostrará cómo las pruebas de propiedad de claves pueden vincularse a direcciones de Cardano. La cuarta se centrará en la divulgación selectiva. En un ejemplo planificado, el titular de una credencial demuestra que tiene al menos 21 años sin revelar su fecha de nacimiento ni su dirección en la cadena de bloques.

La entrega final examinará sistemas de pruebas resistentes a la computación cuántica, con enfoque en enfoques basados en retículas que podrían reemplazar los supuestos de curvas elípticas utilizados en Groth16.