Pruebas programables de conocimiento cero usando zk-SNARKs: Parte 1

Esta publicación fue publicada por primera vez en Promedio.

Prueba de conocimiento con clave privada sin firmas

En teoría, un Prueba de conocimiento cero Se puede generar un ZKP para cualquier problema matemático¹, sin exponer esta solución. En la práctica, el desarrollo de ZKP a menudo requiere la invención de un algoritmo de cifrado completamente nuevo. No tiene una receta estándar y requiere un conocimiento extenso y profundo de la codificación. por ejemplo, rompecabezas ZK Incluye protocolos ∑ y . Guía de declaración clave ZK Las obligaciones de Pedersen y la orientación de Fiat Shamir.

Los zk-SNARK estandarizan la generación de ZKP para problemas arbitrarios. Solo se necesita expresar el problema original a probar en formato ZK, como Idioma específico del dominio (DSL) circunvalación o Sócrates. Todo lo demás lo maneja el marco genérico zk-SNARK, que oculta todas las complejidades de la criptografía básica.

Antes de zk-SNARK, crear un ZKP para un nuevo problema era como construir un nuevo ASIC cada vez que se necesitaba una nueva implementación de ZKP. Los zk-SNARK permiten construir el nuevo ZKP simplemente programando una «CPU ZK» de propósito general. El primero requiere que uno sea un diseñador de codificación, mientras que el segundo solo requiere que uno sea un programador, lo que reduce en gran medida la barrera de entrada para los ZKP.

Para demostrar el poder de este cambio de paradigma, lo usamos para construir el ZKP más popular: Conocimiento llave secreta para una clave pública específica, también conocida como logaritmo discreto.

ZKP definido con una clave privada

Para transferir bitcoins bloqueados a una clave/dirección pública, el propietario debe demostrar que conoce la clave privada correspondiente. Pero simplemente no puede revelarlo, de lo contrario, se pueden robar bitcoins. Esto se hace a través de una firma digital, una forma de ZKP². Mostramos una forma alternativa de lograr lo mismo usando zk-SNARK.

READ  Aprenda a administrar, analizar y visualizar datos por solo $35

En Bitcoin, una clave pública s Es simplemente la clave privada. Dr Generador se duplica j.

Ecuación: Q donde la clave privada d multiplica el generador G

El siguiente código Circom realiza una multiplicación estándar BitcoinCurva elipse secp256k1. Podemos probarlo fácilmente s es la clave pública de Dr:

  • Configure la escala de entrada en la línea 3 para Dr: Darse cuenta de Especial Por lo tanto, se mantiene confidencial
  • Establezca el punto de inserción en la línea 4 para j
  • Configure la salida en la línea 6 para s.

Multiplica el punto numérico. se le atribuye: 0xPARC / circom-ecdsa

Usamos el estándar Doble algoritmo y agreguepara una fácil visualización. Algoritmo más eficiente se puede encontrar aqui. El ciclo principal ocurre desde la línea 33 hasta la línea 65. Usamos Secp256k1 añadir desigual en la línea 42 para sumar los puntos, y doble secp256k1 En la línea 43 para duplicar los puntos. Seguimos duplicando en la línea 355-358 en cada iteración. También agregamos si el bit actual está establecido.

Una vez que tenemos el código Circom, podemos usar Nuestra biblioteca pública zk-SNARK Acreditar el conocimiento de una clave privada, manteniéndola en secreto. ¡Hemos demostrado el conocimiento sin una firma digital!

Estén atentos para ver más ejemplos de ZKP que aprovechan la capacidad de programación de zk-SNARK.

gracias y aprecio

Este artículo fue inspirado por Esta es una excelente escritura.

***

Notas:

[1] De hecho, ZKP se puede crear para cualquier NP problema.

[2] Usamos ZK flojamente aqui.

¿Nuevo en Bitcoin? Echa un vistazo a CoinGeek Bitcoin para principiantes Sección, La guía de recursos definitiva para obtener más información sobre Bitcoin, según lo previsto por Satoshi Nakamoto, y la cadena de bloques.

READ  Detalles del proceso de diseño del Oppo F21 Pro antes del lanzamiento

You May Also Like

About the Author: Pino Toribio

"Fanático de Internet en general. Gurú de Twitter sin complejos. Introvertido. Lector total. Ninja de la cultura pop. Entusiasta de las redes sociales".

Deja una respuesta

Tu dirección de correo electrónico no será publicada.