ZK Rollups: zkSync
axlvaz
0x58C8
June 13th, 2022

En este artículo vamos a introducirnos en uno de los tipos de rollups (solución de escalabilidad de Capa 2) que se está desarrollando actualmente en el mercado: zkSync

Pero, antes de comenzar a hablar de zkSync vamos a repasar algunos conceptos importantes.

Rollups

Los rollups son soluciones de escalabilidad de capa 2 o L2 que realizan operaciones de transacción (ejecución) fuera de la blockchain principal de Ethereum (off-chain), pero aún así, publican los datos de la transacción en la capa 1 o L1 (Ethereum). Teniendo en cuenta que los datos de la transacción están en la L1, los rollups están protegidos por la misma seguridad de la capa 1. De hecho, esta es la característica más importante que los rollups ofrecen a los usuarios.

Los rollups son útiles porque reducen el gas fee, aumentan el rendimiento de las transacciones y amplían la participación. En general, un rollup implementa un conjunto de contratos inteligentes en la blockchain subyacente que son responsables de procesar los depósitos y retiros y verificar que las transacciones sean válidas.

Existen 2 tipos de rollups: Optimistic Rollups y ZK Rollups

Optimistic Rollups

Los Optimistic Rollups asumen que las transacciones son válidas de forma predeterminada “optimistas” y solo ejecutan el cálculo a través de una fraud proof (prueba de fraude), lo que significa que solo presenta evidencia de que una transición de estado fue incorrecta, en el acto en que alguien decide cuestionar la transacción.
Se ubican en paralelo a Ethereum Mainnet en la capa 2 y no realizan ningún cálculo (ecuaciones matemáticas) de forma predeterminada. Una vez que se completan las transacciones, envían el nuevo estado a la L1, notarizando la transacción.

Las transacciones optimisticas se escriben en la blockchain de Ethereum, lo que optimiza aún más las transacciones al reducir el costo del gas.

Optimistic Rollup funcionando en producción:

ZK Rollups

Los Zero-Knowledge Rollups (ZK Rollups) o rollups de cero conocimiento agrupan cientos de transacciones off-chain y generan una prueba criptográfica. Estas pruebas pueden venir en forma de SNARK (argumento de conocimiento sucinto no interactivo) o STARK (argumento de conocimiento transparente escalable). Los SNARK y STARK se conocen como validity proofs (pruebas de validez) y se publican en la L1.

El contrato inteligente ZK Rollup mantiene el estado de todas las transacciones en la L2, y este estado solo se puede actualizar con una prueba de validez. Esto significa que los ZK Rollups solo necesitan la prueba de validez en lugar de todos los datos de la transacción. Con ZK Rollup, validar un bloque es más rápido y económico porque se incluyen menos datos.

ZK Rollups en desarrollo y en producción:

Estos conceptos sirvieron de repaso, ahora vamos a desarrollar en profundidad en zkSync.  ¿Todavía surgen dudas o preguntas sobre las soluciones de escalabilidad L2?  recomendamos este articulo de  0xJoxes “Preguntas frecuentes sobre L2 de Ethereum, Parte 1”

Comencemos

¿Qué es Matter Labs?

Matter Labs es la organización detrás del desarrollo de zkSync. Pionero en la tecnología de prueba de conocimiento cero (zero-knowledge proof) en Ethereum. La compañía lanzó el primer prototipo de ZK Rollup público a principios de 2019, fue la primera en implementar pruebas ZK recursivas en Ethereum y creó el primer hardware práctico basado en FPGA para la aceleración de ZKP en 2020. Matter Labs lanzó una red de prueba zkEVM, lo que convierte a zkSync en el primer ZK Rollup capaz de ejecutar contratos inteligentes nativos de Ethereum.

zkSync 1.0

zkSync es un protocolo L2 basado en la tecnologia ZK Rollup. ZK rollup es una variante de una familia más amplia de "rollups", explicado anteriormente.

¿Cómo funciona?

Los fondos se mantienen mediante un contrato inteligente en la cadena principal, mientras que el cálculo y el almacenamiento se realizan off-chain. La idea principal es que en lugar de verificar cada transacción por separado, las transacciones se "agrupan" o “rolled up” en un solo elemento (bloque rollup), que luego se verifica, aprobándolos todos simultáneamente.

En un nivel alto, funciona de la siguiente manera:

  1. Los usuarios firman transacciones y las envían a los validadores.
  2. Los “sequencers” o secuenciadores (validadores) acumulan miles de transacciones en un solo bloque y envían un submit criptográfico (el root hash) del nuevo estado al contrato inteligente en la red principal junto con una prueba “proof” criptográfica (un SNARK) de que este nuevo estado es efectivamente el resultado de la aplicación de algunas transacciones correctas al estado anterior.
  3. Además de la prueba, el estado (una pequeña cantidad de datos para cada transacción) se publica en la red principal como “calldata”. Esto permite que cualquiera pueda reconstruir el estado en cualquier momento.
  4. La prueba y el estado  son verificados por el contrato inteligente, verificando así tanto la validez de todas las transacciones incluidas en el bloque como la disponibilidad de datos del bloque.

La verificación SNARK es mucho más económica que verificar cada transacción individualmente, y almacenar el estado fuera de la cadena es significativamente más económico que almacenarlo en EVM. Por lo tanto, permite un gran impulso de escalabilidad (~100-200x capacidad de la red principal) y ahorros en costos de tx.

La arquitectura zkSync tiene las siguientes ventajas:

  • Los secuenciadores no pueden corromper el estado o robar fondos (a diferencia de las sidechains).
  • Los usuarios siempre pueden recuperar los fondos del contrato inteligente zkSync incluso si los secuenciadores dejan de cooperar, porque los datos están disponibles (a diferencia de Plasma).
  • No es necesario un tercero para monitorear los bloques ZK Rollup con el fin de prevenir el fraude (a diferencia de los sistemas de prueba de fraude, como los Optimistic Rollups).

En otras palabras, zkSync hereda las garantías de seguridad de la L1 subyacente.

Rendimiento

zkSync puede procesar 2000 TPS, esto es debido al gas limit del bloque en Ethereum (12,5M gwei) ya que zkSync necesita publicar los cambios de estados de cada transacción en Ethereum para garantizar la disponibilidad de datos.

Tiempo de finalidad de la transacción

Las transacciones en zkSync alcanzan la finalidad en Ethereum una vez que el contrato inteligente genera y acepta la prueba SNARK del bloque zkSync. El tiempo de generación de la prueba es de unos 10 minutos, es decir, 10 minutos después del envío, la transacción zkSync (proof) es tan definitiva como cualquier transacción en L1 incluida en el mismo bloque de Ethereum que la transacción con la prueba. Cuando un usuario envía una transacción, se espera que se llene el bloque, por lo que no genera la prueba de inmediato. Con un mayor rendimiento (volumen de operación) en el sistema zkSync, el tiempo entre bloques disminuirá.

Confirmaciones Instantáneas

El tiempo de finalización de 10 minutos, no afecta la usabilidad de la red. Las transacciones enviadas a zkSync se confirman instantáneamente, se muestran a la parte receptora en la interfaz de usuario y la API (aunque se marcan como no confirmadas), y los activos transferidos se pueden usar de inmediato para realizar más transferencias (que incluso podrían terminar en el mismo bloque zkSync).

Las confirmaciones instantáneas son “promesas” de los validadores zkSync para incluir la transacción en el siguiente bloque. Los usuarios que “no confíen” en los validadores deben esperar la finalización completa antes de considerar los activos como recibidos.

A futuro, los validadores agregarán un bono de seguridad “staking” a zkSync. Esto proporcionará garantías instantáneas de finalidad económica. Los secuenciadores corruptos serán slasheados y perderán parte del staking.

Fees

En zkSync el costo de cada transacción tiene dos componentes:

  • Parte Off-chain (storage + prover) : el costo del almacenamiento del estado y la generación del SNARK (zero-knowledge proof). Esta parte depende del uso de los recursos de hardware. Costo estimado  ~0,001 USD por transacción.
  • Parte On-chain (gas): por cada bloque zkSync, el validador debe pagar gas en Ethereum para verificar el SNARK, además de ~0.4k gas por transacción para publicar el estado. La parte on-chain es una variable que depende del precio actual del gas en la red.

Las transferencias en zkSync admiten "gasless meta-transaction": los usuarios pagan fees de transacción en los tokens que se transfieren. Por lo tanto, si la transferencia es en DAI, no es necesario ETH. Solo se paga el fee en una fracción de DAI.

¿zkSync es descentralizada?

El validador zkSync no tiene poder sobre los activos de los usuario sin autorización explícita. Los usuarios siempre pueden retirar todos los fondos a la red principal sin la cooperación del validador (incluso si este último está completamente cerrado y no responde).

Sin embargo, por el momento, la operación diaria de la red zkSync depende de la confianza depositada en el proveedor de servicios computacionales que genera zero-knowledge proofs para los bloques.

Actualmente, el proveedor para la red zkSync es "Stichting ZK Sync", una fundación holandesa sin fines de lucro.

En un futuro el protocolo se irá descentralizando cada vez más, introduciendo un mecanismo de consenso independiente para la construcción de bloques con dos roles diferentes: Validadores y Guardianes.

Cuando zkSync se descentralice por completo, se utilizará un token para hacer staking para ser validador en la red zkSync.

Nota: La seguridad de zkSync no se verá afectada por la introducción de un mecanismo de consenso adicional, ya que la verificación final de las pruebas de transición de estado aún se realizará mediante un contrato inteligente en la red principal de Ethereum.

zkSync 2.0

En zkSync 1.0  es un ZK Rollup disponible para pagos, transferencia de tokens y NFT.
zkSync 2.0 es un ZK Rollup compatible con la EVM, o sea se pueden implementar contratos inteligentes en un entorno similar a la EVM llamado zkEVM.

Actualmente se encuentra en testnet en la red Georli.

¿Qué es zkEVM?

zkEVM es una máquina virtual que ejecuta contratos inteligentes de una manera compatible con zero-knowledge-proof. Es la clave para construir un ZK Rollup compatible con EVM, mantiene la semántica de EVM, pero también es compatible con ZK y adopta arquitecturas de CPU tradicionales.

zkPorter

En zkSync 2.0, el estado L2 se dividirá en 2: ZK Rollup con Data Availability (disponibilidad de datos) on-chain y zkPorter con disponibilidad de datos off-chain. A través de la combinación de un zk-rollup y un validium (zk-rollup híbrido donde los datos de la transacción se publican off-chain), los volition son un híbrido que brinda a los usuarios la opción de disponibilidad de datos on-chain o off-chain

Ambas partes serán componibles e interoperables: los contratos y las address del lado de ZK Rollup podrán interactuar sin problemas con las address del lado de zkPorter, y viceversa. La elección se realiza a nivel de transacción individual, donde los datos off-chain representan tarifas más económicas y menor seguridad, mientras que los datos on-chain generan tarifas más altas y más seguridad.

zkPorter pone la data availability (datos de transacción esenciales necesarios para reconstruir el estado) off-chain en lugar de en Ethereum. En cambio, la disponibilidad de los datos se asegura mediante la prueba de participación (PoS) por parte de los stakers del token zkSync. Esto permite una escalabilidad mucho mayor (decenas de miles de TPS) y, como resultado, tarifas de transacción ultra bajas comparables con otras blockchains (en el rango de unos pocos centavos).

La data availability de las cuentas de zkPorter estará asegurada por los holders del token zkSync, denominados “Guardians” (guardianes). Realizarán un seguimiento del estado en el lado de zkPorter mediante la firma de bloques para confirmar la disponibilidad de datos de las cuentas de zkPorter. Los guardianes participan en proof of stake (PoS) con el token zkSync, por lo que cualquier falla en la disponibilidad de datos hará que se reduzcan drásticamente su participación. Esto da garantías criptoeconómicas sobre la data availability.

Es importante tener en cuenta que PoS en zkSync es significativamente más seguro que PoS en cualquier otra sidechain. Esto se debe a que los guardianes de zkSync son esencialmente impotentes: los guardianes no pueden robar fondos. Solo pueden congelar el estado zkPorter o sea congelar su propia participación (stake).

En Resumen

La carrera de desarrollo por escalar Ethereum se está acelerando y zkSync es uno de los principales corredores.

ZkSync permite transaccionar de forma rápida, económica y segura heredada de Ethereum usando ZK Rollups.
ZkPorter permite aumentar la cantidad TPS con Data Availability off-chain (todavía no disponible, en desarrollo).
zkEVM el primer ZK Rollup compatible con la EVM de Ethereum va a permitir implementar contratos inteligentes en zkSync, si bien todavía está en testnet, es un gran avance para que se desarrolle todo un ecosistema.

¿Y el token? zkSync anunció que va a lanzar un token propio para staking, pero no hay fecha oficial. Por ahora el equipo está enfocado en la escalabilidad de Ethereum.

Para estar al día con las novedades de zkSync es importante seguir sus redes sociales

Actualidad de diferentes desarrollos de escalabilidad podes unirte a la comunidad de L2 en Español.

Fuentes

Arweave TX
rn4Gt50sA6iY9eK6qcqOzDPiWPP3q_bN0UbonwDbK6Y
Ethereum Address
0x58C8a648bFDdE299D5730d7433C7f6de6E4f9CCC
Content Digest
_vjsrBEhn_JkPH8R4PPyIQf4T0a19BkXi0wTi1Tw404