“Dominar ZoKrates: el kit de herramientas de privacidad de Ethereum” — Parte 1

May 01 2023
La privacidad y la seguridad se han convertido en preocupaciones primordiales en la era actual. Esta guía será una serie de 3 artículos para familiarizarlo con el dominio y el uso del kit de herramientas de Zokrates.

La privacidad y la seguridad se han convertido en preocupaciones primordiales en la era actual. Esta guía será una serie de 3 artículos para familiarizarlo con el dominio y el uso del kit de herramientas de Zokrates .

Nota : para aprovechar al máximo este artículo, siéntase libre de navegar por los contenidos y omita la sección si ya está familiarizado con el mismo.

La Parte 1 de la serie Mastering ZoKrates incluirá:

  1. Introducción a la serie
  2. Descripción general de zkSNARK y su importancia en las aplicaciones de preservación de la privacidad
  3. Introducción a ZoKrates y su motivación
  4. Antecedentes y descripción técnica de ZoKrates

Bienvenidos todos a esta serie en profundidad de Mastering ZoKrates. Pasaremos de 0 a 1, así que ya sea que sea un entusiasta de blockchain o simplemente un gato curioso, lo tengo cubierto.

  • La privacidad es el nuevo negro: en el mundo de hoy, compartimos datos, o podemos decir que compartimos datos en exceso, recuperar la privacidad es una de las principales preocupaciones y, con la ayuda de zkSNARKs y ZoKrates, vamos a restaurar eso.
  • Agregar capa de invisibilidad: zkSNARKs y ZoKrates ayudarán a incluir la invisibilidad en nuestras transacciones e interacciones con Ethereum Blockchain.
  • La transparencia en Ethereum es un mito: Public Blockchain parece un libro abierto, pero a veces necesitamos registrar alguna información privada. Entonces, al usar zkSNARKs y ZoKrates, haremos que Ethereum Blockchain sea más seguro y privado que nunca.

Si desea dar un paso atrás y obtener una descripción general de ZKP, consulte este .

Pruebas de conocimiento cero: un método para conservar la privacidad.

Efecto zkSNARKs: Elevar la privacidad en Ethereum:

Los zkSNARK (argumentos de conocimiento sucintos no interactivos de conocimiento cero) brindan un método impresionante para validar cálculos correctos sin ejecutarlos ni revelar los detalles, lo que garantiza que ni siquiera sabrá qué se ejecutó.

Esto tiene tres propiedades principales:

  • Conocimiento cero: el probador puede demostrar la posesión de información específica sin revelar la información en sí, lo que garantiza la privacidad.
  • Concisión: el tamaño de la prueba es relativamente pequeño y el proceso de verificación es eficiente , lo que permite una implementación práctica.
  • No interactivo: la prueba se puede verificar sin necesidad de interacción entre el probador y el verificador , lo que agiliza el proceso.
  1. Codificación como un problema polinómico : el proceso de codificación de cálculos en ecuaciones polinómicas para su verificación.
  2. Concisión por muestreo aleatorio: elegir una pequeña sección aleatoria para verificar con el fin de reducir el tiempo y el esfuerzo necesarios para la verificación.
  3. Codificación/cifrado homomórfico : manipular los contenidos (realizar cálculos) sin ver los datos reales.
  4. Conocimiento Cero : Demostrar posesión de información específica sin revelar la información misma.
  1. Codificación como problema polinomial: cocinando una receta ‍

2. Concisión por muestreo aleatorio: verificación de obras de arte

Suponga que desea verificar que una obra de arte grande es genuina sin examinar toda la pieza. La brevedad lograda a través del muestreo aleatorio es como elegir una sección pequeña y aleatoria de la obra de arte para inspeccionarla. Este enfoque reduce significativamente el tiempo y el esfuerzo necesarios para la verificación, al mismo tiempo que mantiene una alta confianza en la autenticidad de la obra de arte.

3. Codificación/cifrado homomórfico: bloqueo de un cofre del tesoro

La codificación/cifrado homomórfico es como guardar objetos valiosos dentro de un cofre del tesoro. El probador puede manipular los contenidos (realizar cálculos) sin siquiera ver los elementos reales, al igual que puede calcular valores cifrados sin conocer el punto de evaluación secreto.

4. Conocimiento Cero: Un Truco de Mago

El aspecto de conocimiento cero de zkSNARKs es similar al truco de un mago. El mago convence a la audiencia de que han realizado una hazaña aparentemente imposible sin revelar cómo se hizo. En zkSNARK, el probador ofusca los valores encriptados mientras permite que el verificador verifique su corrección, manteniendo la privacidad de los datos subyacentes.

Ref: La referencia de la explicación anterior se ha tomado de este documento . Si desea profundizar más en la técnica , consulte el documento vinculado.
Gracias Cris

Introducción a ZoKrates y su motivación:

ZoKrates ofrece una solución integral para integrar zkSNARK en sus aplicaciones descentralizadas (DApps) basadas en Ethereum. Este kit de herramientas simplifica todo el proceso de utilizar computación verificable en su DApp. Desde definir su programa en un lenguaje de alto nivel fácil de usar hasta generar y verificar pruebas de cálculo dentro de Solidity, ZoKrates lo tiene cubierto.

Déjame desglosar el párrafo anterior para ti:

  1. ZoKrates es una herramienta útil para agregar privacidad a las DApps de Ethereum.
  2. Hace que el uso de funciones de privacidad sea fácil para los desarrolladores.
  3. Con ZoKrates, puede:
    a. Escriba su programa en lenguaje simple (DSL).
    b. Cree pruebas de privacidad especiales.
    C. Compruebe las pruebas de privacidad en la cadena de bloques de Ethereum.
  4. ZoKrates hace que su DApp sea más privada y segura.

Pero, ¿por qué necesitamos esto? La motivación detrás de esto:

  • La red de Ethereum ejecuta cálculos en todos los nodos, lo que genera altos costos, complejidad limitada y poca privacidad.
  • Los zkSNARK brindan una solución más rentable para verificar los cálculos en cadena sin revelar datos confidenciales, pero pueden ser difíciles de implementar.
  • ZoKrates es una caja de herramientas que simplifica el uso de zkSNARK al permitir a los desarrolladores crear programas fuera de la cadena e integrarlos con la cadena de bloques de Ethereum, ampliando el potencial de sus DApps.
  • Con ZoKrates, los desarrolladores pueden usar lenguajes de programación de alto nivel para especificar sus cálculos, generar pruebas de cálculo y verificarlos dentro del lenguaje de contratos inteligentes de Solidity.
  • Esto aumenta la privacidad y la eficiencia de las DApps, al tiempo que reduce los costos y las limitaciones asociadas con los cálculos en cadena.

Profundicemos en algunos antecedentes o historia de ZoKrates:

  • ZoKrates se creó en 2018 como un conjunto de herramientas de código abierto para zkSNARKs en Ethereum.
  • Fue desarrollado por Jacob Eberhardt y Alex Gluchowski , ambos con Ph.D. estudiantes de la Universidad Técnica de Darmstadt.
  • ZoKrates ha sido objeto de varias actualizaciones desde su lanzamiento, con nuevas funciones añadidas y errores corregidos.
  • El equipo de desarrollo continúa manteniendo y mejorando ZoKrates, y la última versión estable es la versión 0.8.7 a partir de mayo de 2023.
  • ZoKrates ha ganado popularidad en la comunidad de desarrolladores de Ethereum como una forma sencilla y fácil de usar para implementar zkSNARK.
  • El uso de ZoKrates ha llevado a la creación de varias DApps que preservan la privacidad .
  • ZoKrates es una caja de herramientas de programación para crear pruebas de conocimiento cero (ZKP) utilizando programas de lenguaje específico de dominio (DSL) de alto nivel compilados en circuitos.
  • ZoKrates DSL es similar a la programación en C e incluye variables, bucles y declaraciones condicionales.
  • ZoKrates usa libsnark, una biblioteca zkSNARKs de C++, para generar pruebas y claves de verificación.
  • ZoKrates admite criptografía de curva elíptica, aritmética modular, funciones hash y otras operaciones criptográficas.
  • ZoKrates utiliza el sistema de prueba Groth16 para generar y verificar ZKP de manera rápida y eficiente.
  • ZoKrates se puede integrar con Solidity para el desarrollo de contratos inteligentes que preservan la privacidad en la cadena de bloques de Ethereum.
  • ZoKrates tiene licencia del MIT y es un proyecto de código abierto abierto a contribuciones de la comunidad.

Entonces, en esta parte, hemos comenzado nuestro viaje con ZoKrates y zkSNARKs . En la siguiente parte, profundizaremos en las funciones y sus componentes principales: compilador, bibliotecas y herramientas. Además, aprender a escribir código y AZ de implementación.

Cosas que vamos a aprender en esta serie.

Por favor, hágamelo saber si tiene alguna consulta, y estaré muy contento si puede compartir más información conmigo. Siempre feliz de aprender más, así que conectemos y exploremos juntos
Twitter , Lens , Farcaster — @pranshurastogi,
Linkedin , Github , Youtube