Puedes demostrar que eres mayor de 18 años sin revelar tu fecha de nacimiento. Puedes demostrar que tienes suficiente dinero para una transacción sin revelar tu saldo. Puedes demostrar que un cálculo se realizó correctamente sin revelar las entradas. Las pruebas de conocimiento cero hacen posible todo esto, y silenciosamente se están convirtiendo en el primitivo criptográfico más importante en blockchain desde la función hash.
Resumen
La mayoría de las introducciones a las pruebas de conocimiento cero comienzan con la analogía de la cueva de Alí Babá, donde alguien demuestra que conoce la palabra secreta para abrir una puerta saliendo consistentemente por el lado que el verificador solicita, sin revelar nunca la palabra. La analogía es encantadora y completamente inútil para entender por qué las pruebas ZK importan en la práctica. Te dice que tal prueba es posible. No te dice por qué alguien la necesitaría en una blockchain.
El punto de partida práctico es más simple. Cada blockchain enfrenta la misma tensión: la transparencia permite la confianza, pero la transparencia también destruye la privacidad. El libro mayor de Bitcoin es público. Cada transacción, cada saldo, cada dirección es visible para cualquiera. Ethereum es igual. Esta transparencia es lo que hace que el sistema sea auditable y confiable, pero también significa que cualquiera que aprenda qué dirección te pertenece puede ver cada transacción que has hecho, cada token que posees y cada protocolo con el que has interactuado.
Las pruebas de conocimiento cero resuelven esta tensión. Te permiten probar hechos sobre tus datos sin revelar los datos en sí. Puedes demostrar que tu saldo de cuenta supera un umbral sin revelar el saldo exacto. Puedes demostrar que una transacción es válida sin revelar el remitente, destinatario o monto. Puedes demostrar que no estás en una lista de sanciones sin revelar tu identidad.
Las matemáticas detrás de esto son profundas. Las aplicaciones son inmediatas.
Las tres propiedades que toda prueba ZK debe tener
Todo sistema de prueba de conocimiento cero debe satisfacer tres propiedades, y entenderlas es esencial para evaluar cualquier protocolo basado en ZK.
Completitud. Si la declaración es verdadera y tanto el probador como el verificador siguen el protocolo, el verificador siempre estará convencido. Una prueba válida nunca falla en la verificación. Si realmente conoces el secreto, la prueba siempre funcionará.
Solidez. Si la declaración es falsa, ningún probador deshonesto puede convencer al verificador de que es verdadera, excepto con probabilidad insignificante. Un probador deshonesto no puede fabricar una prueba válida. La probabilidad de que una prueba falsa pase la verificación es tan pequeña (típicamente menos de uno en 2^128) que es efectivamente imposible.
Conocimiento cero. El verificador no aprende nada más allá del hecho de que la declaración es verdadera. La prueba no filtra ninguna información sobre el secreto en sí, ningún cálculo intermedio, ni ningún dato utilizado para generar la prueba. El conocimiento del verificador después de ver la prueba es idéntico al que tendría si alguien simplemente le dijera que la declaración es verdadera.
La tercera propiedad es lo que hace que las pruebas ZK sean útiles en lugar de meramente correctas. Las firmas digitales estándar prueban que un mensaje fue firmado por una clave específica, pero revelan el contenido del mensaje. Los compromisos hash estándar prueban que un valor fue comprometido, pero revelan el valor cuando se abre. Las pruebas ZK prueban que existe una relación entre valores secretos sin revelar esos valores en ningún momento.
Cómo difieren zk-SNARKs y zk-STARKs
Los dos sistemas de prueba ZK dominantes en blockchain son zk-SNARKs y zk-STARKs. Resuelven el mismo problema con diferentes compensaciones.
zk-SNARKs (Argumentos de Conocimiento Sucintos No Interactivos de Conocimiento Cero) producen pruebas pequeñas que son rápidas de verificar. Una prueba zk-SNARK típica tiene alrededor de 200 a 300 bytes y se puede verificar en cadena por aproximadamente 200,000 a 300,000 gas en Ethereum. El tiempo de verificación es constante independientemente de la complejidad del cálculo que se está probando. Una prueba que verifica una sola transacción toma el mismo tiempo de verificación que una prueba que verifica diez mil transacciones.
El costo de esta concisión es una configuración confiable. La mayoría de los sistemas zk-SNARK requieren una ceremonia única donde se generan parámetros aleatorios y la aleatoriedad se destruye después. Si la aleatoriedad de esta ceremonia no se destruye adecuadamente, un atacante podría falsificar pruebas. Zcash llevó a cabo una de las ceremonias de configuración confiable más elaboradas en la historia criptográfica (la ceremonia "Powers of Tau") que involucró a cientos de participantes en todo el mundo, donde el supuesto de seguridad es que al menos un participante destruyó honestamente su aleatoriedad.
Los sistemas SNARK más nuevos como PLONK y Halo 2 han reducido o eliminado el requisito de configuración confiable, pero la percepción persiste. Algunos proyectos evitan los SNARK específicamente por la preocupación de la configuración confiable, incluso cuando las implementaciones que usarían no requieren una.
zk-STARKs (Argumentos de Conocimiento Transparentes y Escalables de Conocimiento Cero) eliminan por completo la configuración confiable. Derivan su seguridad de funciones hash en lugar de supuestos de curvas elípticas, lo que los hace transparentes (sin parámetros secretos) y teóricamente resistentes a la computación cuántica (se cree que la criptografía basada en hash es segura contra computadoras cuánticas, mientras que la criptografía de curvas elípticas no lo es).
La compensación es el tamaño. Las pruebas STARK son significativamente más grandes que las pruebas SNARK, típicamente de decenas a cientos de kilobytes en comparación con cientos de bytes. En una cadena de bloques donde el almacenamiento de datos cuesta gas, pruebas más grandes significan costos de verificación más altos. StarkWare, el principal desarrollador de la tecnología STARK, aborda esto mediante la composición recursiva de pruebas: probar que una prueba es válida, luego probar que la prueba de la prueba es válida, comprimiendo la huella final en la cadena.
En la práctica, la distinción importa menos que hace cinco años. Los sistemas de prueba modernos combinan cada vez más técnicas de ambas familias, y el enfoque de ingeniería ha pasado de qué sistema de prueba usar a qué tan rápido el probador puede generar pruebas y qué tan barato el verificador puede verificarlas.
Pruebas ZK para escalado de blockchain
La aplicación de escalado de las pruebas ZK es conceptualmente sencilla. Un rollup ejecuta un lote de transacciones fuera de la cadena, genera una prueba de que el lote se ejecutó correctamente y publica la prueba en Ethereum. El contrato verificador de Ethereum verifica la prueba en una sola operación y acepta el nuevo estado.
Lo que hace esto poderoso es la asimetría entre probar y verificar. Generar la prueba para un lote de 10,000 transacciones podría tomar a una máquina potente varios minutos. Verificar la prueba toma una fracción de segundo y cuesta una cantidad fija de gas independientemente de cuántas transacciones haya en el lote. Esta asimetría es lo que permite a los rollups ZK comprimir miles de transacciones en una sola verificación de Ethereum.
Los principales rollups ZK adoptan cada uno un enfoque diferente para esta arquitectura.
zkSync Era utiliza una máquina virtual personalizada (zkEVM) que es compatible con Solidity a nivel de lenguaje pero compila a un conjunto de instrucciones diferente optimizado para la generación de pruebas ZK. Los contratos existentes de Ethereum pueden recompilarse para zkSync con cambios mínimos.
StarkNet utiliza el lenguaje de programación Cairo y pruebas STARK. Cairo es un lenguaje diseñado específicamente para computación demostrable, lo que le da ventajas de rendimiento pero requiere que los desarrolladores aprendan un nuevo lenguaje y paradigma.
Polygon zkEVM apunta a la equivalencia con EVM, lo que significa que puede ejecutar el mismo bytecode que Ethereum sin recompilación. Esto maximiza la compatibilidad pero introduce complejidad de ingeniería al hacer demostrable cada opcode de EVM.
Scroll también apunta a la equivalencia total con EVM y utiliza un enfoque impulsado por la comunidad para su implementación de zkEVM, con el objetivo de ser el rollup ZK más compatible con Ethereum.
La competencia entre estos enfoques es, en última instancia, una competencia entre compatibilidad y rendimiento. Cuanto más compatible sea un rollup ZK con las herramientas existentes de Ethereum, más fácil será para los desarrolladores migrar. Cuanto más optimice el rollup su conjunto de instrucciones para la demostrabilidad, más rápidas y baratas serán sus pruebas.
Pruebas ZK para privacidad
La aplicación de privacidad es donde las pruebas ZK se vuelven más consecuentes y más controvertidas.
Una transacción estándar de Ethereum revela la dirección del remitente, la dirección del destinatario, el monto transferido y el contrato inteligente llamado. Esta información es permanentemente pública. Empresas de análisis de cadenas como Chainalysis y Elliptic han construido negocios enteros sobre el rastreo de flujos de transacciones a través del libro mayor transparente, vinculando direcciones a identidades del mundo real a través de datos KYC de intercambios, etiquetas de entidades conocidas y patrones de comportamiento.
Los protocolos de privacidad ZK rompen esta cadena de visibilidad. En una transacción privada basada en ZK, el usuario genera una prueba de que su transacción es válida (el remitente tiene fondos suficientes, no se produce doble gasto, los montos cuadran) sin revelar quién la envió, quién la recibió o cuánto se transfirió. La prueba se publica en la cadena y es verificada por la red, pero los detalles subyacentes de la transacción permanecen cifrados.
Zcash fue la primera implementación importante de este concepto, lanzándose en 2016 con transacciones blindadas usando zk-SNARKs. Un usuario de Zcash puede elegir entre transacciones transparentes (idénticas al libro mayor público de Bitcoin) y transacciones blindadas (donde el remitente, el destinatario y el monto están ocultos detrás de una prueba ZK). En la práctica, la adopción de transacciones blindadas en Zcash ha sido menor de lo que los defensores esperaban, con la mayoría de las transacciones de Zcash todavía usando el pool transparente.
Los protocolos más nuevos están construyendo privacidad programable, donde no solo las transferencias de tokens sino también la lógica arbitraria de contratos inteligentes puede ejecutarse de forma privada. Aztec Network está construyendo una capa 2 centrada en la privacidad sobre Ethereum donde todas las transacciones son privadas por defecto. Aleo está construyendo una blockchain de capa 1 con soporte nativo de ZK para contratos inteligentes privados. Ambos usan pruebas ZK para verificar transiciones de estado sin revelar la computación o los datos involucrados.
El potencial para la privacidad se extiende más allá de las transacciones individuales. Las pruebas ZK pueden habilitar votación privada (probar que votaste sin revelar tu elección), verificación de identidad privada (probar que eres ciudadano de un país específico sin revelar tu número de pasaporte) y DeFi privado (proporcionar liquidez a un pool sin revelar tu dirección o el tamaño de tu posición).
La colisión regulatoria
La privacidad en cripto ocupa un espacio legal disputado que aún se está definiendo.
En agosto de 2022, la Oficina de Control de Activos Extranjeros (OFAC) del Tesoro de EE. UU. sancionó a Tornado Cash, un mezclador basado en Ethereum que usaba pruebas ZK para romper el vínculo entre las direcciones de depósito y retiro. La sanción de código de contrato inteligente de código abierto, en lugar de una persona o empresa, no tenía precedentes y envió ondas de choque a través de la comunidad de privacidad cripto.
En mayo de 2024, Alexey Pertsev, uno de los desarrolladores de Tornado Cash, fue condenado por un tribunal holandés por facilitar el lavado de dinero. La condena estableció un precedente legal de que escribir código que preserva la privacidad puede conllevar responsabilidad penal si la herramienta se usa para fines ilícitos, independientemente de si el desarrollador facilitó personalmente la actividad ilegal.
Estas acciones han dado forma a la dirección del desarrollo de la privacidad ZK. La generación actual de protocolos de privacidad se está construyendo en torno a las restricciones regulatorias en lugar de ignorarlas.
Divulgación selectiva permite a un usuario probar hechos específicos sobre su identidad o historial de transacciones sin revelar todo. Un usuario podría probar que pasó KYC con un intercambio con licencia, probar que no está en la lista de sanciones de OFAC, o probar que sus fondos no se originaron de una dirección sancionada, todo usando pruebas ZK que no revelan nada más allá de la afirmación específica que se está verificando.
Pools de privacidad, un concepto formalizado por Vitalik Buterin y otros, permiten a los usuarios probar que su retiro de un conjunto de privacidad pertenece a un subconjunto limpio de depósitos. En lugar de mezclar todos los depósitos indiscriminadamente, el protocolo mantiene conjuntos de asociación que excluyen direcciones ilícitas conocidas. Los usuarios prueban membresía en el conjunto limpio sin revelar qué depósito específico están retirando.
Si estos compromisos satisfacen a los reguladores queda por verse. La tensión fundamental, de que la privacidad y la vigilancia son arquitectónicamente incompatibles, no se resolverá solo con tecnología. Las pruebas ZK dan a los formuladores de políticas una herramienta que nunca antes habían tenido: la capacidad de verificar el cumplimiento sin requerir divulgación. Si eligen usarla es una cuestión política, no criptográfica.
El costo de la prueba tiene implicaciones concretas para qué aplicaciones adoptan primero la tecnología ZK. Las transacciones financieras de alto valor, donde el costo de generar una prueba es insignificante en relación con el tamaño de la transacción, han sido los primeros en adoptarla. Las transferencias institucionales entre cadenas, las grandes posiciones DeFi y los sistemas de liquidación empresarial pueden absorber un costo de prueba de varios dólares por transacción sin afectar su economía. Las aplicaciones de consumo, donde las transacciones individuales pueden valer solo unos pocos dólares, necesitan que los costos de prueba caigan otro orden de magnitud antes de que la privacidad ZK sea práctica para el uso diario. Los esfuerzos de aceleración de hardware por parte de empresas que construyen ASIC específicos para ZK están apuntando directamente a esta barrera de costos.
La convergencia de las aplicaciones de escalado y privacidad es quizás el aspecto más subestimado de la tecnología ZK. Un rollup ZK que procese transacciones de forma privada combinaría los beneficios de rendimiento de la ejecución fuera de la cadena con los beneficios de confidencialidad de las transiciones de estado cifradas. Los usuarios obtendrían transacciones rápidas y baratas que también son invisibles para el análisis de la cadena. Varios proyectos, incluidos Aztec y Polygon Miden, están construyendo exactamente esta combinación, aunque la complejidad de ingeniería de fusionar ambas capacidades en un sistema de producción sigue siendo sustancial.
Lo que esto no cubre
Este artículo no cubre las matemáticas de los compromisos polinomiales, los emparejamientos de curvas elípticas o las transformaciones de Fiat-Shamir que sustentan los sistemas de prueba ZK. Comprender estos requiere álgebra abstracta de nivel de posgrado y no es necesario para evaluar protocolos basados en ZK como usuario o inversor.
Este artículo no cubre el aprendizaje automático ZK (zkML), un campo emergente que utiliza pruebas ZK para verificar que un modelo de aprendizaje automático produjo una salida específica sin revelar los pesos del modelo ni los datos de entrenamiento. Esta aplicación es experimental y sus implicaciones prácticas aún se están estudiando.
Este artículo no aborda la carrera de aceleración de hardware para la generación de pruebas ZK. Empresas como Cysic, Ingonyama y Fabric Cryptography están construyendo ASIC y FPGA personalizados específicamente para la demostración ZK, lo que podría reducir los costos de demostración en órdenes de magnitud. El panorama del hardware se mueve demasiado rápido para un análisis estático.
Comprobaciones prácticas antes de usar un protocolo basado en ZK
Verifique el estado de auditoría del sistema de prueba. Los sistemas de prueba ZK son matemáticamente complejos y los errores de implementación pueden ser catastróficos. Un error en el circuito (la representación matemática del cálculo que se está demostrando) podría permitir a un atacante falsificar pruebas y acuñar tokens o robar fondos. Verifique si el sistema de prueba y sus circuitos han sido auditados por firmas especializadas en criptografía ZK, no solo por auditores generales de contratos inteligentes.
Comprenda qué es realmente privado. No todos los protocolos basados en ZK proporcionan el mismo nivel de privacidad. Algunos ocultan los montos de las transacciones pero revelan las direcciones. Algunos ocultan las direcciones pero revelan los montos. Algunos ocultan todo. Lea la documentación del protocolo para comprender exactamente qué información se oculta y qué permanece visible. Los metadatos como el momento de las transacciones, los patrones de gas y la frecuencia de interacción a menudo pueden desanonimizar a los usuarios incluso cuando los datos centrales de la transacción están ocultos.
Verifique el estado de la configuración confiable. Si el protocolo utiliza zk-SNARKs, determine si requirió una configuración confiable y cómo se llevó a cabo esa configuración. Las ceremonias de computación multiparte con cientos de participantes son más confiables que las ceremonias pequeñas con un puñado de entidades conocidas. Los protocolos que utilizan STARKs, PLONK con configuración universal o Halo 2 no requieren configuraciones confiables en absoluto.
Evalúe el riesgo regulatorio. Los protocolos de privacidad operan en un entorno legalmente incierto. Considere si el protocolo tiene un mecanismo de cumplimiento (divulgación selectiva, grupos de privacidad, pruebas de cumplimiento opcionales) y si ese mecanismo ha sido probado contra el escrutinio regulatorio real. Usar un protocolo de privacidad que luego sea sancionado podría complicar su capacidad para mover o vender activos.
Pruebe el tiempo de prueba. Generar una prueba ZK es computacionalmente intensivo. En un dispositivo móvil, probar una transacción simple podría tomar de 30 segundos a dos minutos. En un escritorio, podría tomar unos segundos. Si el tiempo de prueba es demasiado largo para su caso de uso, el protocolo puede no ser práctico para transacciones frecuentes. Algunos protocolos descargan la prueba a servidores dedicados, lo cual es más rápido pero introduce una suposición de confianza de que el servidor no aprende sus datos privados.
¿Qué es una prueba de conocimiento cero en términos simples?
Una prueba de conocimiento cero es una forma de demostrar que algo es verdadero sin revelar por qué es verdadero. En blockchain, esto significa que puede demostrar que una transacción es válida, que posee suficientes fondos, o que un cálculo se realizó correctamente, todo sin revelar los detalles reales de la transacción, su saldo o los datos utilizados en el cálculo. El verificador se convence de que la declaración es verdadera pero no aprende nada más.
¿Cuál es la diferencia entre zk-SNARKs y zk-STARKs?
Los zk-SNARKs producen pruebas muy pequeñas (cientos de bytes) que son baratas de verificar pero históricamente requerían una ceremonia de configuración confiable para generar los parámetros iniciales del sistema. Los zk-STARKs producen pruebas más grandes (decenas a cientos de kilobytes) pero no requieren una configuración confiable y son teóricamente resistentes a ataques de computación cuántica. En la práctica, los sistemas de prueba modernos están convergiendo y las compensaciones entre tamaño, velocidad y supuestos de confianza se están volviendo menos marcadas.
¿Cómo ayudan las pruebas ZK con la escalabilidad de blockchain?
Los rollups ZK ejecutan miles de transacciones fuera de la cadena y generan una sola prueba de que todas las transacciones se ejecutaron correctamente. Esta prueba se verifica en Ethereum en una sola operación que cuesta una cantidad fija de gas independientemente de cuántas transacciones haya en el lote. La asimetría entre el costo de generar una prueba (alto pero soportado por el operador del rollup) y verificarla (bajo y pagado una vez por todo el lote) es lo que crea el efecto de escalabilidad.
¿Son ilegales las monedas de privacidad basadas en ZK?
Las monedas de privacidad basadas en ZK como Zcash no son inherentemente ilegales en la mayoría de las jurisdicciones. Sin embargo, los enfoques regulatorios varían significativamente. Algunos intercambios han retirado monedas de privacidad para cumplir con las regulaciones contra el lavado de dinero. Las sanciones de Tornado Cash en 2022 demostraron que los protocolos que preservan la privacidad pueden enfrentar acciones regulatorias. La legalidad depende de su jurisdicción y de cómo use la tecnología, no de la tecnología en sí.
¿Qué es una configuración confiable y por qué importa?
Una configuración confiable es una ceremonia única requerida por algunos sistemas zk-SNARK para generar parámetros criptográficos. Durante la ceremonia, se crean valores aleatorios que deben destruirse después. Si algún participante conserva los valores aleatorios, teóricamente podría falsificar pruebas. Las ceremonias multipartitas mitigan este riesgo al requerir que solo un participante de potencialmente cientos necesite destruir honestamente su aleatoriedad. Los sistemas de prueba más nuevos como PLONK y Halo 2 han eliminado o minimizado el requisito de configuración confiable.
¿Pueden las pruebas ZK hacer privadas todas las transacciones de blockchain?
Técnicamente, sí. Protocolos como Aztec Network y Aleo están construyendo sistemas donde todas las interacciones de contratos inteligentes son privadas por defecto, no solo transferencias de tokens. Sin embargo, la privacidad total para todas las transacciones introduce desafíos regulatorios, aumenta los costos computacionales (la generación de pruebas ZK es costosa) y cambia la experiencia del usuario (la prueba toma tiempo). Si la privacidad total en la cadena se convierte en estándar depende tanto de las decisiones regulatorias como de la capacidad técnica.
¿Cómo funcionan los grupos de privacidad?
Los grupos de privacidad permiten a los usuarios depositar fondos en un grupo compartido y retirar desde una dirección diferente, rompiendo el vínculo en la cadena entre las dos direcciones. A diferencia de los mezcladores simples, los grupos de privacidad usan pruebas ZK combinadas con conjuntos de asociación para permitir a los usuarios demostrar que su retiro pertenece a un subconjunto de depósitos que excluye direcciones ilícitas conocidas. Esto da a los usuarios privacidad mientras proporciona un mecanismo para el cumplimiento. El usuario demuestra que está en el conjunto limpio sin revelar qué depósito específico está retirando.
¿Cuáles son los principales riesgos de usar protocolos basados en ZK?
Los principales riesgos incluyen errores de implementación en los circuitos ZK (que podrían permitir pruebas falsificadas), vulnerabilidades de configuración confiable en sistemas SNARK más antiguos, acciones regulatorias contra características de privacidad, altos requisitos computacionales para la generación de pruebas en hardware de consumo, y la relativa inmadurez de las herramientas ZK en comparación con el desarrollo estándar de contratos inteligentes. Además, la fuga de metadatos (tiempo de transacción, patrones de gas, frecuencia de interacción) a veces puede desanonimizar a los usuarios incluso cuando los datos de la transacción central son privados.






