Desglosando ETH 2.0 – zk-SNARKS y zk-Rollups

Ethereum 2.0 desencadenará un cambio sísmico en el espacio criptográfico. Algunos de los cambios que va a desencadenar esta actualización son:

  • La transición al protocolo Casper
  • Fragmentación
  • Canales estatales de Raiden
  • Plasma

Raiden y Plasma son protocolos de capa 2 que permiten a Ethereum realizar miles de transacciones fuera de la cadena en forma de canales estatales y cadenas laterales. Plasma, en particular, teóricamente puede permitir que una cadena lateral procese miles de transacciones y envíe un solo hash a la cadena de bloques principal de Ethereum. Si bien esto suena bastante sorprendente en el papel, aquí hay un problema importante. Si hay alguna disputa en una de estas cadenas de plasma laterales, no existe un mecanismo adecuado que los usuarios puedan usar para salir del protocolo de manera eficiente.

Lograr escalabilidad y disponibilidad de capa 2 con zk-Rollups

Aquí es donde entra en juego una técnica llamada “ZK-Rollups”. Con la integración inteligente de zk-SNARKS, un protocolo de privacidad, será posible para ETH 2.0 crear una capa-2 inmensamente escalable, que aún tiene la seguridad y los datos disponibilidad que se espera de Ethereum.

Sin embargo, antes de entrar en eso, primero comprendamos qué son zk-SNARKS y las pruebas de conocimiento cero.

NOTA: Le recomendamos encarecidamente que lea nuestro artículo sobre Raiden y Plasma antes de continuar aquí.

Zk-SNARKS: ¿Qué son las pruebas de conocimiento cero?

zk-SNARKS es el protocolo de criptografía de privacidad que Zcash hizo famoso, una moneda de privacidad. En esencia, se encuentra el concepto de pruebas de conocimiento cero o ZKP. Para entender cómo funciona, veamos las dos partes involucradas en una prueba: Probador y Verificador.

  • Prover: Quiere probar una hipótesis.
  • Verificador: Quiere juzgar la honestidad del Prover.

La idea central detrás de ZKP es esta: demuestre que posee un conocimiento específico sin revelar realmente de qué se trata. P.ej. Demostrar que está por encima de cierto límite de edad con solo mostrar los dos últimos dígitos de su año de nacimiento. En esencia, el ZKP formula las dos preguntas siguientes:

  • Cuestione la moralidad del Verificador en lugar del Probador.
  • ¿Cómo puede el Probador mantener la confidencialidad de su conocimiento sin exponerlo al Verificador?

Explicación de Zk-SNARKS: ejemplos de pruebas de conocimiento cero

Un ZKP tiene las siguientes propiedades:

  • Integridad: una declaración es verdadera si un probador honesto puede convencer a un verificador honesto.
  • Solidez: si el probador es deshonesto, no puede engañar al verificador.
  • Conocimiento cero: el verificador no sabrá cuál es realmente la declaración.

Veamos algunos ejemplos.

1 Daltonismo y manzanas

Mire el siguiente diagrama para comprender cómo funciona la visión normal y cómo la visión daltónica.

En nuestro escenario hipotético, el probador tiene una visión normal y el verificador tiene daltonismo. El primero tiene dos manzanas: roja y verde. El verificador piensa que ambas manzanas son del mismo color y el probador quiere refutar esto sin decirles explícitamente cuáles son los colores.

Así es como funciona:

  • El verificador muestra las manzanas al probador.
  • Luego esconde sus manos detrás del prover y cambia las manzanas o las mantiene como están.
  • Ahora vuelve a revelar al probador sus manos.
  • Si el verificador ha hecho el cambio, el probador podrá señalarlo instantáneamente. Esto prueba que las manzanas son de diferentes colores.

El verificador puede repetir la prueba varias veces para asegurarse de que el resultado no fue una casualidad. Veamos cómo esto verifica las propiedades de ZKP.

  • Integridad: Dado que el probador fue honesto, pudo dar la respuesta correcta varias veces.
  • Solidez: El verificador llevó a cabo la prueba varias veces para asegurarse de que los resultados no presentaran problemas.
  • Conocimiento cero: el probador nunca reveló los colores de las manzanas.

2 la cueva de Alibaba

A continuación, tenemos uno de los ejemplos de ZKP más famosos en criptografía teórica.

En este caso, tenemos un probador (P), un verificador (V) y una cueva con una puerta mágica en la parte trasera. P dice que conoce la contraseña secreta que abre esta puerta mágica. Entonces, ¿cómo le demuestra P a V que conocen la contraseña sin revelar cuál es?

  • P baja por el camino A o B y llega a la puerta secreta.
  • En este punto, P llama a V, quien entra en la cueva.
  • V le dice a P que siga el camino B. Si P realmente conoce la frase de contraseña, no tendrá ningún problema en seguir ninguno de los caminos.
  • V repite el experimento varias veces para asegurarse de que no se deje engañar.
  • Si P es honesto, no deberían tener problemas para seguir ninguno de los caminos.

¿Cómo se satisfacen las tres propiedades del conocimiento cero?

  • Integridad: Dado que el probador fue honesto, pudo dar la respuesta correcta varias veces.
  • Solidez: El verificador llevó a cabo la prueba varias veces para asegurarse de que los resultados no presentaran problemas.
  • Conocimiento cero: P no tuvo que revelar cuál era realmente la frase de contraseña.

¿Qué es Zk-SNARKS? Hacer que ZKP no sea interactivo

Uno de los principales problemas del ZKP tradicional es que es un sistema muy interactivo. En los dos ejemplos que le mostramos anteriormente (Alibaba’s Cave y Apples), es necesario que tanto el probador como el verificador estén presentes simultáneamente. Como puede imaginar, esta no es una técnica escalable. En 1986, la heurística de Fiat-Shamir mostró cómo esto podía funcionar con logaritmos discretos. Veremos tanto la versión interactiva como la no interactiva.

Interactivo

  • El comprobador P quiere mostrarle al verificador V que conoce x, de modo que y = g ^ x a la base g.
  • P toma un valor v del conjunto Z y calcula t tal que, t = g ^ v. Luego envía t a V.
  • Luego, V toma un valor aleatorio c del mismo conjunto Z y lo envía a P.
  • P calcula un valor r = v-c ^ x y lo envía a V.
  • Ahora, dado que r = v-c * x, y = g ^ x y por simple sustitución, g ^ (v-c * x) * g ^ c * x = g ^ v = t.
  • Entonces, V verificará g ^ r * y ^ c y verá si es “t” o no.
  • Por lo tanto, sin conocer explícitamente el valor de “x”, V aún puede verificar si t = g ^ r * y ^ c, o no.
  • Como tal, V podrá decir si P está siendo sincero sobre la posesión de la información secreta o no.

El intercambio anterior satisface las propiedades de ZKP, pero aún requiere que Alice y Bob estén presentes simultáneamente.

No interactivo

Entonces, ¿cómo hacemos que los ZKP no sean interactivos? ¡Con funciones hash criptográficas!

  • El comprobador P quiere mostrarle al verificador V que conoce x, de modo que y = g ^ x a la base g.
  • P toma un valor v del conjunto Z y calcula t tal que, t = g ^ v. Luego envía t a V.
  • P calcula un valor c = H (g, y, t) donde H () es una función hash.
  • Finalmente, P calcula r = v – c * x y lo envía a V.
  • Siempre que V se conecte, pueden verificar si t = g ^ r * y ^ c, o no.

Esta interacción también es completamente de conocimiento cero, pero no requirió que el Probador y el Verificador estuvieran presentes al mismo tiempo. Esta innovación fue fundamental en la creación de zk-SNARKS.

Hablando de que….

¿Qué es zk-SNARKs?

Zk-SNARKS significa “Argumento de conocimiento sucinto y no interactivo de conocimiento cero”. Ahora que sabemos cómo funciona la teoría con ZKP, pongámoslo todo en una formación algorítmica.

En nuestro típico zk-SNARK, tenemos tres algoritmos únicos:

  • Probador (P): este algoritmo toma tres términos como entradas: clave de prueba (pk), una entrada aleatoria (x) y la declaración (w) que quieren probar. Este algoritmo toma estas entradas y da una prueba de la declaración prf.
  • Verificador (V): toma el prf del algoritmo P y devuelve VERDADERO si es válido o FALSO si no. Junto con la prf, este algoritmo toma dos valores más: la entrada aleatoria “x” y la clave de verificación “vk”.
  • Generador de claves (G): Tomado de un valor “Lambda” secreto y un programa “C” para generar pk y vk. El valor lambda debe mantenerse privado y confidencial. Si alguien tiene en sus manos este valor, puede usarlo para generar claves de prueba y verificación. Pueden usar esto para construir pruebas falsas, a voluntad.

Explicación de Zk-SNARKs: uniendo los algoritmos

El programa C toma la declaración secreta del comprobador “w” y el valor x y realiza la siguiente función:

Entonces, veamos cómo podemos incorporar todo esto junto con los algoritmos y valores que hemos declarado en la sección anterior.

  • El verificador utiliza el generador G para crear las claves de prueba y verificación.
  • El verificador coloca un valor lambda secreto para generar estas claves de modo que G (C, lambda) = (pk, vk).
  • El probador ahora debe tomar pk y probar la validez de su enunciado creando una prueba de enunciado prf, tal que prf = P (pk, x, w). Aquí, x es el hash SHA-256 de w.
  • Prover envía prf al Verificador, quien valida la afirmación ejecutando su algoritmo de verificación, como V (vk, x, prf).
  • V devuelve VERDADERO si Prover es honesto. De lo contrario, devuelve FALSE.

Muy bien, ahora con la explicación de zk-SNARKS, comencemos con zk-Rollups.

ZK-Rollups: una introducción

Antes de continuar, comprendamos qué significa realmente un resumen. Muy similar a Plasma, un Rollup es una solución de escalado de capa 2 en la que cada contrato tiene un compromiso criptográfico sucinto de un estado de cadena lateral más grande. Los usuarios mantienen estos estados sin poner estrés adicional en la capa 1, también conocida como la capa base de la cadena de bloques. El cofundador de Ethereum cree que los paquetes acumulativos serán la mejor manera de incorporar la funcionalidad de capa 2 a Ethereum 2.0, ya que mitiga el problema más importante de Plasma: la disponibilidad de datos.

Disponibilidad de plasma y datos

Para darle una breve descripción general, plasma reestructura la cadena de bloques Ethereum de esta manera:

ihyixxq66pdvrrddgkna_plasma_and_data_availability-6827612

La idea es usar Ethereum como la cadena raíz principal, mientras que varias cadenas de plasma están brotando de ella. La cadena de la raíz permanece desprovista de actividad, mientras que delega cálculos y funciones complejas a estas cadenas de plasma.

Si bien es una buena idea en papel, tiene un gran defecto: la disponibilidad de datos.

Imagina esta situación.

2gnmmd61grzo7aaymaqgo_aliceplasma-7678961

Alice tiene 1 ETH en el bloque de plasma 3, pero ya no lo ve en el bloque 4. Esto obviamente significa que el validador del bloque de plasma 4 está funcionando maliciosamente. Inmediatamente plantea una disputa y envía una prueba de fraude a la cadena raíz, que verifica si hay alguna validez en su reclamo o no. Si es así, revierte los datos en el bloque de plasma 4 y lo invalida.

¿Ves el problema aquí?

Aquí hay un problema de disponibilidad considerable. El sistema es rehén durante un breve período por el propietario malintencionado del bloque de plasma 4. En un sistema zk-Rollup, el bloque de plasma solo contendrá las pruebas ZK de los datos y no los datos reales en sí.

Aparte de esto, zk-Rollups aumenta la escalabilidad al agrupar cientos de transferencias en una sola transacción. Su contrato inteligente puede desintegrar estas transferencias y verificarlas todas en una sola transacción.

Descripción general de Zk-Rollups

Un esquema zk-Rollup tiene dos usuarios: transactores y retransmisores.

Transactores

Crean y difunden transferencias a toda la red. Estos datos transferidos incluyen: una dirección indexada “para” y “de”, un valor de transacción, las tarifas de la red y el nonce.

  • Las direcciones se almacenan en una versión indexada abreviada de 3 bytes. Esto reduce la potencia de procesamiento necesaria para manejar estas direcciones.
  • La transacción es mayor o menor que cero, lo que significa si es un depósito o un retiro.
  • El contrato inteligente zk-Rollup tiene dos árboles Merkle: uno para direcciones y otro para montos de transferencia.

Retransmisores

Si bien los transeúntes están a cargo de las transacciones y la transmisión, los retransmisores tienen dos roles principales:

  • Recolectando una gran cantidad de transferencias y creando un rollup.
  • Genere la prueba SNARK, que representa el estado de la cadena de bloques. Esta prueba compara una instantánea de la cadena de bloques antes y después de las transferencias. Solo informa algo si ha habido cambios en el estado subyacente.

Cualquiera puede convertirse en un relevista siempre que tenga una participación en el contrato de acumulación. Esto asegura que tengan suficientes incentivos para trabajar en interés de la red.

Zk-Rollups: los números involucrados

Matter Labs ha estado trabajando y documentando varias implementaciones de zk-Rollups. Según sus pruebas, esto es lo que descubrieron.

  • Actualmente, el costo de los datos públicos por transacción de transferencia en Matter testnet es de 16 bytes.
  • En el Ethereum posterior a Estambul, esto costará alrededor de 272 gasolina.
  • En el peor de los casos, en el que el costo total de la prueba puede llegar a 1 millón, los zk-rollups aún pueden realizar más de 2000 transacciones por segundo. En aras de la comparación, Ethereum actualmente solo puede realizar 25 transacciones por segundo como máximo, mientras que Visa realiza alrededor de 1667 transacciones por segundo.
  • Zk-Rollups puede ofrecer cálculos más eficientes cuando se trata de grandes conjuntos de datos. La razón es que los usuarios solo tendrán que lidiar con los SNARK y no con los datos en sí.

Pros y contras de zk-Rollups

Pros

  • Significativamente más rápido que Plasma.
  • El costo del gas por transferencia de datos es significativamente bajo.
  • Permite el cálculo paralelo de los bloques, lo que ayuda en la escalabilidad y descentralización.
  • Cada transacción solo contiene las pruebas de SNARK en lugar de los datos completos en sí, lo que nuevamente aumenta la escalabilidad.

Contras

  • La computación de prueba de conocimiento cero es un proceso que requiere muchos recursos.
  • La configuración inicial de Zk-Rollups puede ser de naturaleza un poco centralizada.
  • La seguridad general del sistema depende de un cierto nivel de confianza.

NOTA: Matter Labs señaló que los recursos necesarios para crear contratos inteligentes en ZKP se habían reducido considerablemente. Los contratos acumulados siguen los mismos principios y modelos que EVM (Ethereum Virtual Machine).

Alternativa de ZK-Rollups: Optimistic Rollup

Optimistic Rollup (OR) es una alternativa al ZK-Rollup estándar que elimina por completo la necesidad de pruebas de conocimiento cero. En lugar de verificar y verificar cada transacción, la red asume que todas son correctas y permite la intervención del usuario solo si alguien informa una transacción incorrecta mediante el envío de una prueba de fraude. Si bien la sobrecarga inicial para OR puede ser menor que zk-Rollups, requiere que los usuarios publiquen el conjunto de entrada de transacciones completo cada vez. Por otro lado, zk-Rollups es mucho más flexible.

El cofundador de Ethereum, Vitalik Buterin, está extremadamente intrigado con ambas soluciones y las llama “increíbles”. Señaló que ambos paquetes acumulativos podrían permitir que Ethereum 2.0 aumente los pagos al tiempo que brinda la seguridad y disponibilidad que se espera de Ethereum.

Explicación de Zk-Rollups y zk-SNARKS: Conclusión

Lo mejor de zk-Rollups es que no es solo un concepto teórico. Loopring lanzó recientemente un intercambio zk-Rollup que ya ha logrado realizar 2500 transacciones por segundo. Los desarrolladores de Ethereum están bastante seguros de que pueden alcanzar un rendimiento de hasta 2.500-10.000 si combinan paquetes acumulativos con fragmentación.

Sin embargo, esto todavía requiere mucho trabajo antes de la implementación completa. A partir de ahora, el equipo está progresando constantemente.
Esperamos que ahora tenga una mejor idea de lo que son zk-SNARKS y zk-Rollups. ¿Quieres saber más sobre Ethereum y la codificación de contratos inteligentes? ¿Quiere prepararse antes del lanzamiento de Ethereum 2.0? Consulte nuestros cursos de blockchain para encontrar un repositorio de material educativo de blockchain de gran valor que le brindará una ventaja significativa en el mercado laboral.

CriptoMundo

CriptoMundo.com es un medio digital independiente que difunde noticias y contenido sobre criptomonedas y tendencias emergentes de tecnologías financieras. Ofrece noticias, guías, artículos de opinión y gráficos en tiempo real.

Monedas

Bitcoin

Ethereum