Saltar al contenido
Lecciones

Zcash

Pruebas de conocimiento cero, con intuición

zk-SNARKs en lenguaje claro — completitud, solidez, conocimiento cero — y qué demuestra realmente una prueba sobre una transacción blindada de Zcash.

10 min Actualizado 30 may 2026

Imaginad que convencéis a un amigo de que sabéis la contraseña de un club — sin decir la contraseña, sin susurrarla, sin dejar ni una sola pista de cuál es. Se marcha seguro de que la sabéis y sin la menor idea de cuál es.

Ese truco que suena imposible tiene nombre: una prueba de conocimiento cero. Es el motor que permite a Zcash decir “esta transacción es válida, fíate de mí” mientras no os muestra absolutamente nada sobre quién pagó a quién ni cuánto.

Qué es realmente una prueba de conocimiento cero

Antes de leer — adivina

Adivina: en una prueba de conocimiento cero, ¿con qué se queda el verificador?

Siempre hay dos personajes. Un probador quiere convencer a un verificador de que cierta afirmación es cierta. El truco: el probador no debe revelar nada más allá del mero hecho de que es cierta.

Para contar como una verdadera prueba de conocimiento cero, tiene que clavar tres propiedades. Memorizad las palabras exactas — aparecen en todas partes.

  • Completitud — si la afirmación es cierta y el probador es honesto, el verificador acaba convencido. (Las afirmaciones honestas siempre pasan.)
  • Solidez — un probador deshonesto no puede convencer al verificador de una afirmación falsa, salvo con una probabilidad ínfimamente pequeña. (No puedes colarte de farol.)
  • Conocimiento cero — el verificador no aprende nada más allá de la veracidad de la afirmación. En particular, nunca aprende el secreto — el testigo — que la hizo cierta.
Info:

El “testigo” es lo privado que conoce el probador: una contraseña, una clave, una solución. Todo el juego consiste en demostrar que posees un testigo válido sin entregarlo — ni siquiera insinuarlo.

Fijad el vocabulario produciéndolo, no solo leyéndolo:

Completa la definición central de memoria.

Elige la opción correcta para cada hueco y comprueba.

Una prueba de conocimiento cero convence a un de que una afirmación es cierta sin revelar más allá de su veracidad. El secreto privado que posee el probador se llama el .

Ahora relaciona cada propiedad con lo que promete exactamente:

Elige un término y luego haz clic en su definición.

La cueva de Alí Babá

Antes de leer — adivina

Adivina: en una cueva donde una rama necesita la palabra secreta, ¿cómo convence Peggy a Víctor de que la sabe SIN decirla?

La forma clásica de sentir esto viene de Quisquater y sus colegas: la cueva de Alí Babá.

Imaginad una cueva con forma de anillo, como un bucle. Hay una sola entrada, y el bucle se divide en una rama izquierda y una rama derecha que se juntan al fondo. Bloqueando ese punto de encuentro hay una puerta mágica que solo se abre para quien conoce la palabra secreta.

Nuestro reparto: Peggy la probadora (afirma conocer la palabra) y Víctor el verificador (quiere una prueba, pero Peggy se niega a decirle la palabra sin más).

Aquí está el baile. Estos pasos sí son secuenciales — avanza por una ronda:

  1. Víctor mira hacia otro lado. Peggy entra sola en la cueva y baja por la rama izquierda O la derecha, según ella decida. Víctor, fuera, no tiene ni idea de cuál tomó.
  2. Víctor lanza una exigencia. Víctor se acerca a la entrada y grita la rama por la que quiere que ella SALGA — “¡Sal por la izquierda!” (o la derecha). Lo elige al azar.
  3. Peggy obedece. Si subió por la rama que él nombró, simplemente sale caminando — no necesita magia. Si subió por la OTRA rama, tiene que abrir la puerta mágica del fondo para cruzar al otro lado. Eso requiere la palabra secreta.
  4. Una ronda = lanzar una moneda. Si Peggy estuviera fingiendo, solo podría adivinar qué rama nombraría Víctor. Sobrevive a una sola ronda por suerte con probabilidad 1/2 — simplemente le tocó elegir la rama que él pide.
  5. Repetir, repetir, repetir. Hazlo otra vez. Y otra. Una tramposa tiene que ganar TODOS los lanzamientos de moneda seguidos. Tras n rondas, sus probabilidades de farolear hasta el final son 1/2^n — algo que se desvanece.
  6. Veredicto. Peggy sale por la rama exigida cada vez, a lo largo de muchas rondas. Víctor está ahora convencido de que conoce la palabra — y, sin embargo, nunca la oyó. Completitud, solidez y conocimiento cero, todo en un mismo paseo.

Relaciónalo de vuelta con las tres propiedades y encaja. Clasifica cada hecho de la cueva bajo la propiedad que demuestra:

¿Qué propiedad demuestra cada parte del protocolo de la cueva?

Coloca cada elemento en el grupo correcto.

  • Víctor la ve emerger, pero nunca oye la palabra en sí
  • Una farsante tiene que ganar cada lanzamiento; sus probabilidades caen a 1/2^n
  • Peggy conoce la palabra, así que siempre sale por la rama que nombra Víctor
Info:

La intuición de la solidez en una línea: cada ronda divide a la mitad las probabilidades de supervivencia de un tramposo. Una ronda = 1/2. Diez rondas = 1/1024. Veinte rondas ≈ una entre un millón. Nunca llegamos a cero, pero nos acercamos ínfimamente — y esa “probabilidad ínfima” es exactamente lo que promete la solidez.

Clava la matemática de la solidez.

Elige la opción correcta para cada hueco y comprueba.

En una sola ronda de la cueva, una farsante sobrevive por suerte con probabilidad uno entre . A lo largo de n rondas independientes, las probabilidades de supervivencia pasan a ser 1 entre 2 elevado a , encogiéndose hacia .

Una segunda óptica: ¿Dónde está Wally?

Aquí va un recurso didáctico puramente ilustrativo (no un protocolo formal): ¿Dónde está Wally?

Afirmáis que habéis encontrado a Wally en una página enorme y abarrotada. Para demostrarlo, cubrís toda la página con una sábana gigante que tiene un agujerito — colocado justo sobre la cara de Wally. Vuestro amigo mira por el agujero y ve a Wally, claramente dentro de la imagen.

Pero la sábana oculta los bordes de la página, así que no puede saber dónde de la página está ese agujero. Queda convencido de que Wally está ahí (la afirmación es cierta) sin aprender su ubicación (el testigo). Verdad revelada, secreto guardado.

En el recurso de ¿Dónde está Wally?, ¿qué parte hace de testigo — el secreto que se mantiene oculto?

SNARK: el sabor práctico que usa Zcash

Antes de leer — adivina

Adivina: ¿qué dos mejoras harían usable el protocolo de la cueva en una blockchain?

Las rondas en la cueva son entrañables pero lentas — tanto griterío de ida y vuelta. Zcash necesita algo que un verificador pueda comprobar en milisegundos sin conversación alguna. Aquí entra el zk-SNARK:

Zero-Knowledge Succinct Non-interactive ARgument of Knowledge (argumento de conocimiento sucinto y no interactivo de conocimiento cero). Desglosado:

  • Sucinto — la prueba es pequeña y rápida de verificar. Comprobarla es mucho más barato que volver a ejecutar el cálculo del que trata. (Un verificador confirma que un cálculo enorme ocurrió correctamente sin rehacerlo.)
  • No interactivo — sin idas y vueltas. El probador produce una prueba, la publica en la cadena, y cualquiera puede verificarla después, por su cuenta. Sin gritos en directo.
  • Argumento de conocimiento — es sólido, y además certifica que el probador genuinamente conoce un testigo válido (no solo que exista alguno por ahí).
Info:

“Sin idas y vueltas” podría sonar más débil que la cueva interactiva. No lo es. Una transformación al estilo Fiat–Shamir sustituye los gritos aleatorios de Víctor por la salida de una función hash, colapsando todas esas rondas en una única prueba autónoma — con las mismas garantías.

Desgrana las piezas del acrónimo de memoria.

Elige la opción correcta para cada hueco y comprueba.

En zk-SNARK, '' significa que la prueba es pequeña y rápida de verificar, '' significa una prueba sin idas y vueltas, y la transformación que elimina la interacción lleva el nombre de .

Qué demuestra realmente un SNARK de Zcash

Antes de leer — adivina

Adivina: cuando hacéis un gasto blindado, ¿qué revela a la red el SNARK adjunto?

Aquí está la recompensa. Cuando hacéis un gasto blindado en Zcash, la prueba adjunta convence a cada nodo de que todo lo siguiente es cierto — mientras no revela ninguno de los secretos subyacentes:

  1. La nota existe — la nota que se gasta está realmente en el árbol de Merkle de compromisos de notas (el probador conoce un camino de Merkle válido hasta ella).
  2. Estás autorizado — el probador conoce la clave de gasto que controla esa nota.
  3. El nullifier es honesto — el nullifier está correctamente derivado de la nota, que es lo que impide que la misma nota se gaste dos veces.
  4. Las cuentas cuadran — las entradas igualan a las salidas; los compromisos de valor suman correctamente, así que no se conjura dinero de la nada.

Todo eso se demuestra manteniendo completamente ocultos el valor de la nota, la dirección y qué nota se está gastando. La red obtiene la certeza de que la transacción es legítima, y no aprende nada más.

Clasifica lo que la prueba garantiza frente a lo que mantiene en secreto a propósito:

En un gasto blindado, ¿qué DEMUESTRA el SNARK frente a qué OCULTA?

Coloca cada elemento en el grupo correcto.

  • El valor de la nota
  • El nullifier está bien derivado (sin doble gasto)
  • Qué nota concreta se gasta
  • La nota existe en el árbol de Merkle
  • Las entradas cuadran con las salidas
  • La dirección implicada
  • El gastador conoce la clave de gasto
Info:

No os preocupéis si “nota”, “nullifier”, “compromiso” y “camino de Merkle” os resultan borrosos — ese es el trabajo entero de la siguiente lección. Por ahora, absorbed solo la forma: un SNARK demuestra un paquete de hechos ciertos sobre un pago sin exponer ninguno de ellos.

Recuerda la pieza anti-doble-gasto.

Elige la opción correcta para cada hueco y comprueba.

El valor que se deriva correctamente de una nota y le impide gastarse dos veces es el , y la prueba muestra que la nota está en el árbol de de compromisos de notas.

Tres ideas equivocadas que conviene derribar

Antes de leer — adivina

Adivina: ¿una prueba de conocimiento cero es básicamente lo mismo que cifrar el secreto?

No. El cifrado oculta datos tras una clave que alguien podría descifrar. El conocimiento cero demuestra un hecho sin filtrar nada de más — puede que no haya ningún texto cifrado que descifrar. Tiene que ver con lo que revela la prueba, no con cifrar un mensaje.

No. Sucinto significa que la prueba es pequeña y rápida de comprobar — no que el testigo esté embutido en algún sitio. El testigo nunca está en la prueba. No podrías extraer el secreto de ella aunque lo intentaras.

No. Las transformaciones al estilo Fiat–Shamir convierten protocolos interactivos en no interactivos con las mismas garantías de solidez y conocimiento cero. Una prueba publicada, verificable por cualquiera, sin conversación necesaria.

Una pequeña pseudo-afirmación, solo para hacer concreto “demostrar un hecho, ocultar el testigo”:

prove: "I know x such that hash(x) = H"  // reveal H and the proof — never reveal x

En ese pseudocódigo, x es el testigo — lo que mantienes en secreto — y H más la prueba son todo lo que el verificador llega a ver.

Lee la pseudo-afirmación de arriba y nombra las partes.

Elige la opción correcta para cada hueco y comprueba.

En `prove: I know x such that hash(x) = H`, el secreto oculto — el testigo — es , mientras que el valor publicado junto a la prueba es .

Visión de conjunto y comprobación final

Ya tenéis la intuición: una prueba de conocimiento cero os compra certeza sin divulgación, y un zk-SNARK hace que esa certeza sea pequeña, rápida y no interactiva lo suficiente como para vivir en una blockchain.

Visión de conjunto

Las pruebas de conocimiento cero en una imagen

  • Prueba de conocimiento cero
    • Reparto
      • El probador conoce el testigo
      • El verificador comprueba la afirmación
    • Tres propiedades
      • Completitud — el probador honesto convence
      • Solidez — el mentiroso no puede, salvo ínfimamente
      • Conocimiento cero — el testigo sigue secreto
    • Intuiciones
      • Cueva de Alí Babá — rondas al azar, 1 entre 2 elevado a n
      • Dónde está Wally — verlo, no dónde
    • zk-SNARK
      • Sucinto — pequeña, rápida de verificar
      • No interactivo — una prueba, Fiat-Shamir
      • Argumento de conocimiento — conoce de verdad el testigo
    • El gasto blindado de Zcash demuestra
      • La nota existe en el árbol de Merkle
      • Conoce la clave de gasto
      • Nullifier correcto — sin doble gasto
      • Las entradas cuadran con las salidas
      • Oculta valor, dirección y qué nota
Una sola estructura que enlaza cada sección: las tres propiedades, la intuición de la cueva, las mejoras del SNARK y qué demuestra un gasto de Zcash.

Una comprobación final mixta — abarca toda la lección, así que recupera lo de secciones anteriores:

Pregunta 1 de 50 correct

En la cueva de Alí Babá, ¿por qué importa repetir las rondas?

Check your answer to continue.

Lo siguiente: abrir la máquina por dentro

Hemos estado señalando “notas”, “compromisos”, “nullifiers” y “pools blindados” como si fueran obvios. No lo son — todavía. Es hora de abrir la auténtica máquina de Zcash.

A continuación: direcciones, notas, compromisos y nullifiers — las piezas móviles de las que está hecha de verdad una transacción blindada.