__wf_reserved_heredar
Blog__wf_reserved_heredar
Creación de infraestructura para productos de cadena de bloques de conocimiento cero: experiencia detallada de Dysnix—ZKSync
__wf_reserved_heredar

Creación de infraestructura para productos de cadena de bloques de conocimiento cero: experiencia detallada de Dysnix—ZKSync

__wf_reserved_heredar
__wf_reserved_heredar
Daniel Yavorovych
August 29, 2023

Una prueba de conocimiento cero (ZK) en blockchain

En primer lugar, aclaremos que cualquier hecho o acción puede probarse sin conocimiento alguno. Este concepto se desarrolló en el principios de los 80 en los trabajos de matemáticas y luego se aplicó en múltiples aplicaciones, encontrando su mejor ajuste en el área de la cadena de bloques. En este caso, una prueba de conocimiento cero (ZKP) hace referencia a un método criptográfico que permite a una parte demostrar la validez de una declaración a otra parte sin revelar ninguno de los datos subyacentes, y ambas partes estarán 100% seguras de que es cierta.

La forma de explicar el ZKP con «¿Dónde está Wally?»: Enseñas a Wally e incluso una parte de los alrededores (a la derecha) a tus amigos, lo que demuestra que sabes dónde está. Pero no les ayuda saber exactamente dónde está Wally (la imagen completa a la izquierda).

Aquí encontrará aún más formas de entender el ZKP y explicárselo incluso a un niño.

Este método, si se usa correctamente de la A a la Z, brinda a los participantes un paquete completo de beneficios de la cadena de bloques: seguridad y anonimato mejorados, protección de la sensibilidad de los datos, confiabilidad, escalabilidad, rapidez, bajo costo y libertad de uso. Estos son algunos comentarios sobre cómo ZK proof convierte cualquier cadena de bloques en un auténtico yo:

  • Potenciamos la privacidad.
    Las pruebas de conocimiento cero permiten verificar las transacciones sin revelar el remitente, el destinatario o la suma de la transacción. Preserva la privacidad de los participantes y, al mismo tiempo, mantiene la integridad y el estado de la cadena de bloques.
  • Aumentar la eficiencia, reducir los recursos computacionales necesarios y mejorar la escalabilidad.
    Al evitar la regla según la cual cada nodo debe validar cada transacción, las pruebas de ZK permiten descargar ciertos cálculos para demostrar la validez de las transacciones sin necesidad de que todos los nodos las ejecuten. Por lo tanto, las redes procesan un mayor número de transacciones sin aumentar significativamente la demanda de recursos.
  • Variedad de tipos de prueba para una amplia gama de aplicaciones.
    Los zk-SNARKS (argumentos del conocimiento transparentes y escalables con conocimiento cero), los zk-STARKS (argumentos del conocimiento transparentes y escalables con conocimiento cero), SNORK (argumentos del conocimiento ecuménicos (universales) sucintos y no interactivos) y Bulletproofs tienen varias características y aplicaciones en transacciones anónimas, verificación de datos, computación verificable, contratos inteligentes seguros y más.
Attributes STARK SNARK SNORK Bulletproof
Trusted setup No Yes Yes No
Post-quantum security Yes No No No
Prove Actual data Actual data Actual data Range
Universality No No Yes No
Prover-verifier Interaction Multiple times Once Once Depends
Prove Size Large Small Small Small
  • La falta de confianza en pocas palabras.
    Las pruebas de ZK mantienen la naturaleza descentralizada y sin confianza de las cadenas de bloques y permiten a los participantes verificar la exactitud de las transacciones por sí mismos.
  • El núcleo de los proyectos de cadenas de bloques criptosaturadas.
    La implementación de los ZKP en los sistemas de cadenas de bloques es compleja e intensiva desde el punto de vista computacional, pero es posible para desarrolladores de nivel experto como Dysnix. Garantizar la seguridad de los protocolos criptográficos subyacentes, la escalabilidad asequible y la estabilidad de las aplicaciones son las tareas que abordamos en primer lugar.

Hemos mencionado algunas formas de implementar ZK proof en la cadena de bloques, pero vamos a detallar algunas más para tener una visión más amplia.

Dominios de aplicación: en la cadena de bloques y más allá

La versatilidad de este método de computación hace que esté disponible para todos los participantes de la cadena de bloques y resuelve muchas incertidumbres haciendo que las zonas grises sean más confiables y transparentes. Y aunque sea supercomplejo a primera vista, aporta el gran avance en funcionalidad y eficiencia de muchos proyectos impulsados por Web3 o blockchain.

El método ZKP puede aportar suficientes cambios en la vida social, financiera y política de la humanidad si se implementa correctamente.

Transacciones que preservan la privacidad

Este ejemplo de prueba de conocimiento cero permite transacciones privadas en una cadena de bloques pública y amplía las posibilidades para una sola persona en la escala de la cadena de bloques. Las transacciones con privacidad preservada garantizan que los montos de las transacciones, las direcciones del remitente y del destinatario y otros detalles confidenciales sean confidenciales mientras se mantiene la integridad de la cadena de bloques.

Identificación y autenticación

Las pruebas ZK se utilizan activamente para crear métodos de autenticación seguros y anónimos. Este es un método fiable y seguro para iniciar sesión o iniciar sesión sin compartir ninguna información personal con el servicio.

DEXes

Los intercambios descentralizados pueden usar pruebas ZK para habilitar los intercambios atómicos, lo que permite a los usuarios comerciar con diferentes criptomonedas sin la necesidad de una autoridad central ni de revelar detalles comerciales. ¡Más libertad para un solo operador!

Es un excelente lugar para mencionar la plataforma PancakeSwap DEX, que es familiarizado de cerca con nuestras soluciones.

Contratos inteligentes

Utilice las pruebas de ZK para validar ciertas condiciones o cálculos dentro de los contratos inteligentes y, al mismo tiempo, mantener la privacidad de los datos subyacentes. No se necesitan partes adicionales.

Verificación de datos fuera de la cadena e interoperabilidad entre cadenas

Puede validar los datos fuera de la cadena y dar fe de su exactitud, lo que permite que las aplicaciones de la cadena de bloques interactúen con el mundo exterior de forma segura. Los ZKP pueden facilitar las interacciones sin confianza entre diferentes cadenas de bloques, lo que permite la interoperabilidad y preserva la privacidad.

Soluciones de escalabilidad impulsadas por ZK

Este método puede mejorar la escalabilidad de la cadena de bloques al permitir la verificación eficiente de cálculos complejos fuera de la cadena y, al mismo tiempo, proporcionar una prueba concisa de su exactitud.

Criptomonedas y sistemas de fichas

Esta es, literalmente, la principal forma de mejorar la privacidad y la seguridad de las transacciones de criptomonedas, como garantizar el suministro total de tokens sin revelar los saldos de las carteras individuales.

Servicios de Oracle de conocimiento cero

Este método se puede utilizar para crear servicios de oráculo de cadena de bloques que proporcionen datos precisos fuera de la cadena a contratos inteligentes sin revelar los datos sin procesar.

Mecanismos de votación

¿Elecciones descentralizadas? ¡Mmmm, suena a democracia! Esta es la manera de derrotar la corrupción mediante la votación mediante sistemas de votación verificables y anónimos, garantizando que los votos se cuenten con precisión sin comprometer la privacidad de los votantes.

Cadena de suministro y procedencia

En las subastas gubernamentales que eliminan deliberadamente los esquemas corruptos, es importante mantener el anonimato de las partes, así como mantener el máximo control y una distribución estricta de las responsabilidades con respecto a la calidad de los productos. Las pruebas de ZK pueden ayudar a verificar la autenticidad e integridad de los productos en las cadenas de suministro sin revelar información confidencial.

Auditoría y cumplimiento de normas

Este método puede facilitar las auditorías al demostrar el cumplimiento de ciertas regulaciones o reglas sin exponer los datos confidenciales ni las propias personas de los auditores.

Uso compartido y agregación de datos

Los ZKP ayudan a las partes a compartir datos agregados (por ejemplo, estadísticas) sin revelar puntos de datos individuales, manteniendo la privacidad y permitiendo la toma de decisiones basadas en datos.

Teoría de juegos y mecanismos de incentivos

Las pruebas ZK pueden ayudar a diseñar mecanismos de incentivos y juegos con resultados verificables y, al mismo tiempo, mantener la privacidad de las estrategias de los jugadores. Esta aplicación puede ser un gran avance para muchos desafíos que aún son irresolubles.

Se podría pensar que eso es simplemente GUAU. El precio que se paga por esta flexibilidad y universalidad es el complejo trabajo matemático y de código que hay detrás. No solo hay que entender el concepto, sino que hay que adaptar sus principios a la realidad y hacer que funcione en diferentes condiciones y de la misma manera esperada.

Nos complace compartir más detalles sobre nuestro caso de ZkSync que hemos descrito brevemente anteriormente. Estamos entre las pocas empresas del mundo que pueden gestionar un producto con tecnología ZKP de principio a fin, creando el diseño y la arquitectura que mejor se adapten a sus necesidades.

Creación de un producto con tecnología ZK a partir del ejemplo de ZkSync

Al equipo de ZKSync solo se le ocurrió una idea y logró la implementación completa de sus intenciones con las tecnologías más adecuadas y los enfoques innovadores.

Acerca de ZKSync

En 2020, ZKSync, una de las primeras empresas con pruebas de conocimiento cero, se convirtió en una solución de escalado de nivel 2 para Ethereum que utilizaba zk-Rollups, una variante de las pruebas de conocimiento cero, para agregar y comprimir múltiples transacciones en una sola prueba, que luego se valida en cadena. Este enfoque mejora significativamente el rendimiento de las transacciones de Ethereum y reduce las comisiones, y fue la principal propuesta de valor de este proyecto.

Poco después del lanzamiento, ZKSync consiguió muchos socios importantes (DEx, por ejemplo) y se integró con más de 200 proyectos de Web3. Era más fácil delegar cualquier cantidad de transacciones en ZkSync que transmitir cada transacción a la red, pagar comisiones, esperar a que se validara, etc. Todo esto ocurre sin problemas de seguridad gracias a la funcionalidad básica basada en el método ZKP.

Cumplir con los requisitos

La solución detrás de esta plataforma simple, elegante y útil se basó en la arquitectura creada por los ingenieros de Dysnix. Se compone de:

  • Múltiples clústeres de servidores impulsados por Kubernetes que se escalan de acuerdo con las métricas empresariales de las aplicaciones del cliente;
  • El núcleo de validación: empaquetar fuera de la cadena el flujo ilimitado de transacciones y prepararlas para probarse en la cadena;
  • Conexiones con las aplicaciones y la cadena de bloques.

Ahora, el equipo de ZkSync ha desarrollado ZkSync Era, el protocolo reinventado en comparación con la primera versión, pero en la misma infraestructura que creamos entonces, en 2020. Es fantástico recordar cómo nuestro esfuerzo de infraestructura se alineó con la arquitectura de una solución tan sólida.

Un ejemplo de una arquitectura similar de Nodo secuenciador confiable zKevM Polygon.

¿Busca la solución de servidor que mejor se adapte?

Tras una breve introducción con los objetivos de nuestra cooperación, empezamos a negociar con algunos representantes de ventas de las capas subyacentes más populares: GCP, AWS y Azure Cloud. Buscábamos una oferta rentable de servidores de alta disponibilidad a los que se pudiera acceder en muchas variantes diferentes y durante unas pocas horas: de 10 a 200 servidores a petición, en función de la cantidad de pruebas.

Y GCP encontró algo que ofrecer para nuestra solicitud. Acordamos usar las instancias puntuales, que se usarán solo durante un breve período de tiempo y luego se cancelarán. También era la opción más barata y no perjudicaba la funcionalidad. Esta arquitectura de servidor se ajusta perfectamente a nuestras necesidades, ya que solo se usaron en la fase de prueba del trabajo con ZkSync. Proporcionan al proyecto un rendimiento extremadamente alto.

Desafíos de la configuración de escalado

Es posible que haya oído hablar de nuestro producto PredictKube, que hemos creado en base a modelos de AI/ML. Admitimos que para crearlo nos inspiramos en proyectos como ZkSync.

Por cierto, puedes pruébalo gratis.

Sin embargo, la solución de escalado que creamos para ZkSync no tenía nada que ver con la IA o el aprendizaje automático, ya que creamos un modelo matemático sólido que se ajustaba a todos los escenarios posibles, sin ningún esfuerzo adicional. El equipo de ZkSync lo implementó en el código y, hasta ahora, funciona sin problemas.

Pero había un problema.

Cumplimos con la limitación de rendimiento del centro de datos de GCP al lanzar muchos nodos. En el entorno de prueba, todo funcionó bastante bien: la ampliación de uno a cinco nodos se realizó sin problemas. Sin embargo, desde el punto de vista de la producción, cumplimos con las limitaciones del centro de datos y nuestros nodos estuvieron lanzándose durante mucho tiempo. Para resolver este problema, nuestros ingenieros decidieron usar el protocolo S3 aplicado a GCP Object Storage.

Gracias a las funciones de paralelización disponibles a través del protocolo S3, gestionamos el flujo de datos a través de múltiples objetos y réplicas entre el centro de datos y nuestro proyecto. De este modo, superamos el límite de 60 Gb/s y aumentamos la velocidad de lanzamiento del nuevo nodo para el probador zkSynx. Esto nos ayudó a cambiar el patrón de arranque de los nodos nuevos, pasando de ser iterativos, 5 veces y luego otros 5, a uno explosivo: todo lo que necesitamos a la vez y durante menos de una hora.

El papel del protocolo ZK en este proyecto

  1. Seguridad

Cada transacción es segura y no se puede cambiar después de firmarla y enviarla a ZkSync para su aprobación y validación en el bloque. Todo lo que puede suceder con TX es que puede (o no) incluirse en el siguiente bloque.

  1. Escalabilidad

La solución del algoritmo matemático para escalar cubre todas las necesidades del ZkSync. Incluso la carga de transacciones de gran volumen no afectará al funcionamiento del método ZKP.

  1. Mayor velocidad

Debido a la alta disponibilidad y las capacidades operativas, la validación como proceso pasó a ser cuestión de milisegundos para ZkSync. Eso es mucho, mucho más de lo que el propio Ethereum puede ofrecer.

  1. Costos reducidos

Gracias a la arquitectura de servidor cuidadosamente seleccionada para ZkSync, ofrecen literalmente el mejor precio del mercado para la validación de transacciones. Con la implementación de dicho protocolo, los costos operativos también se mantienen bajos.

Por dónde empezar si quieres aplicar el método ZKP en tu aplicación

Para domesticar toda esta historia de probadores y verificadores, hay que tener una idea para la implementación. Como puede ver, el ámbito de aplicación es extremadamente amplio, pero aun así, eso no significa que todos estos ámbitos cuenten ya con la solución basada en blockchain mejor implementada y a prueba de conocimiento cero.

Basándose en la historia de ZkSync, verá que la idea correcta tiene un potencial de desarrollo que nutrirá su proyecto con nuevas etapas e implementaciones de productos.

Esperamos haber conseguido explicarle el significado de cero pruebas. ¡No dudes en pedirnos más detalles!

__wf_reserved_heredar
Daniel Yavorovych
CTO and Co-founder at Dysnix
Brainpower and problem-solver, meditating and mountain hiking.
Tabla de contenido
Artículos relacionados
Suscríbete al blog
La mejor fuente de información para el servicio al cliente, consejos de ventas, guías y mejores prácticas de la industria. Únase a nosotros.
Gracias por suscribirte al blog de Dysnix
Ahora serás el primero en enterarte cuando publiquemos un nuevo post
Lo tengo
¡Uy! Algo salió mal al enviar el formulario.
__wf_reserved_heredar
Copiado al portapapeles
Pégalo donde quieras