Hasta ahora habéis oído que Zcash puede ocultar quién pagó a quién, cuánto y por qué. Un marketing precioso. Pero “cripto mágica con privacidad” no es una explicación: es encogerse de hombros con pasos extra. Esta lección abre el capó y os enseña la maquinaria real: las direcciones, los objetos criptográficos y el truco ingenioso que evita que gastéis la misma moneda dos veces sin que nadie descubra qué moneda gastasteis.
Esta es la densa. Coged café. Usaremos muchas analogías de billetes, porque resultan ser inquietantemente exactas.
Direcciones: quién puede ver qué
Antes de leer — adivina
Adivina: en una transferencia totalmente blindada (z → z), ¿qué aprende la red?
Zcash tiene dos mundos viviendo en la misma cadena.
Las direcciones transparentes (direcciones t) son Bitcoin disfrazado de Zcash. Todo es público: emisor, receptor, importe, todo a la vista.
t1…— una dirección P2PKH (pay-to-public-key-hash, firma única).t3…— una dirección P2SH (pay-to-script-hash, p. ej. multifirma).
Las direcciones blindadas (direcciones z) son donde vive la privacidad:
zc…— la dirección blindada Sprout heredada (el diseño original de 2016).zs…— la dirección blindada Sapling moderna.
Y luego está la versión adulta que todo el mundo debería usar hoy:
u1…— una Dirección Unificada (UA), introducida en ZIP 316. Una sola cadena que agrupa varios receptores (transparente + Sapling + Orchard) para que la cartera del emisor elija automáticamente la mejor que ambas carteras admitan. Pensad en ella como un único número de teléfono que sabe sin ruido si debe sonar en vuestro fijo, vuestro móvil o vuestra línea cifrada.
Chuleta de prefijos
t1 = transparente de firma única · t3 = transparente multifirma · zc =
Sprout · zs = Sapling · u1 = Dirección Unificada. Si solo memorizáis uno:
u1 es el valor por defecto moderno.
Clasifica cada prefijo de dirección según a qué mundo pertenece.
Coloca cada elemento en el grupo correcto.
- zc… (Sprout)
- t1… (P2PKH)
- u1… (Dirección Unificada)
- t3… (P2SH)
- zs… (Sapling)
Los cuatro tipos de transferencia
Como el dinero puede saltar entre el mundo transparente y el blindado, cada transacción de Zcash es de uno de cuatro sabores, según en qué lado empiezan y terminan las monedas:
| Transferencia | Nombre | Qué es público | Qué se oculta |
|---|---|---|---|
| t → t | Transparente | Todo (al estilo Bitcoin) | Nada |
| t → z | Blindaje | Dirección de origen + importe | Destino |
| z → t | Desblindaje | Destino + importe (se revela al salir) | Origen |
| z → z | Totalmente blindada | Nada | Emisor, receptor, importe y memo |
El escenario ideal es z → z: emisor, receptor, importe e incluso el memo
cifrado quedan todos ocultos. Las peligrosas son los cruces de frontera —el
blindaje y el desblindaje filtran un importe, y los importes son
sorprendentemente fáciles de rastrear. (Más sobre cómo la gente se delata sin
querer en la próxima lección.)
Nombra de memoria los dos tipos de transferencia que cruzan la frontera.
Elige la opción correcta para cada hueco y comprueba.
Mover fondos t → z se llama , y moverlos z → t se llama . Ambos filtran un .
Los objetos criptográficos
Antes de leer — adivina
Adivina: ¿cómo rastrea las monedas el lado blindado de Zcash si no puede usar UTXO públicos como Bitcoin?
Bitcoin registra el dinero como UTXO públicos: monedas no gastadas que cualquiera puede ver. El lado blindado de Zcash no puede hacer eso; toda la gracia es que las monedas son invisibles. Así que reemplaza cada concepto público por uno privado.
Notas — la moneda blindada
Una nota es el análogo blindado de un UTXO: un registro (cifrado) que dice “este valor pertenece a esta dirección blindada.” Es vuestra moneda, sellada en un sobre que solo vosotros podéis abrir.
Analogía: una nota es un billete sellado cuya denominación solo el propietario puede leer.
Compromiso de nota — la huella pública
No podéis publicar la nota (eso revelaría el valor), pero la cadena necesita algo a lo que apuntar. Así que Zcash publica un compromiso de nota: una huella criptográfica de la nota. Tiene dos propiedades mágicas:
- Ocultación — no podéis averiguar el valor de la nota a partir del compromiso.
- Vinculación — el emisor no puede cambiar después el valor y reclamar el mismo compromiso. Queda fijado.
Analogía: el compromiso es una pegatina de número de serie con sello de seguridad que el mundo entero puede ver pero no leer a través de ella. Todos saben que existe un billete; nadie puede leer su valor nominal.
Fija las dos propiedades de un compromiso de nota.
Elige la opción correcta para cada hueco y comprueba.
Un compromiso de nota es (no puedes averiguar el valor a partir de él) y (el emisor no puede cambiar el valor después).
El árbol de Merkle de compromisos de nota
Cada compromiso jamás creado se añade como hoja a un único y gigantesco árbol de Merkle de solo adición. Cuando gastáis, vuestra prueba de conocimiento cero demuestra la pertenencia al árbol de Merkle —“una nota que coincide con este compromiso existe en el árbol”— sin revelar qué hoja es. Demostráis que tenéis una entrada real sin mostrar el número de asiento de la entrada.
Nullifier — el resguardo de “gastado”
Aquí está la parte elegante, y el corazón de todo el sistema. Cuando gastáis una nota, reveláis su nullifier (anulador): un número de serie único derivado de la nota.
- Existe exactamente un nullifier válido por nota.
- Los nodos completos mantienen un conjunto de nullifiers. Gastáis una nota y su nullifier se une al conjunto.
- Si un nullifier aparece dos veces, eso es un doble gasto → la transacción se rechaza.
- Y lo crucial: el nullifier no revela de qué nota proviene. Así que el gasto no puede vincularse al compromiso que creó la nota.
Ese es el truco: prevención del doble gasto sin revelar la nota.
Analogía: el nullifier es un resguardo único de “gastado” que arrancáis al cobrar un billete, para que la misma nota nunca pueda cobrarse dos veces, y sin embargo el resguardo no dice de qué billete proviene. El cajero sabe que se gastó una nota; no que sea la vuestra.
Por qué esto lo es todo
Las monedas de libro mayor público (Bitcoin) previenen los dobles gastos haciendo visible el historial de cada moneda. Zcash los previene con nullifiers —un marcador de “usado” unidireccional— así que consigue la misma seguridad con nada de visibilidad. Privacidad e integridad al mismo tiempo.
Elige un término y luego pulsa su definición.
Autoridad de gasto
Dentro de la prueba de conocimiento cero, el demostrador aporta de forma privada los valores de las notas, las aperturas de compromiso (los datos secretos que produjeron cada compromiso) y las claves secretas que autorizan el gasto. La prueba dice “conozco todo esto y es consistente”, y no revela nada de ello.
Compromisos de valor y balance homomórfico
¿Cómo confirma la red que las entradas son iguales a las salidas (sin monedas sacadas de la nada) cuando todos los importes están ocultos? Con compromisos de valor de Pedersen, que son homomórficos —podéis hacer cálculos sobre los valores sellados sin abrirlos—. Se exige que los compromisos de valor de entrada y de salida sumen cero.
Si cuadran, entradas = salidas. Punto.
Comprobación de precisión (importante)
La prueba no “revela que los importes son iguales”. No revela absolutamente nada sobre los importes. Que los compromisos homomórficos sumen cero es lo que demuestra el balance: los propios números siguen sellados. Decidlo mal y un criptógrafo suspirará de forma audible.
¿Cómo demuestran los compromisos de valor homomórficos que una transacción blindada cuadra?
Campo de memo cifrado
Cada salida blindada lleva un memo cifrado (512 bytes), legible solo por el destinatario —o por cualquiera a quien el destinatario entregue una clave de visualización—. Es una nota sellada metida dentro del billete sellado: referencias de pago, identificadores de factura, “gracias por la comida”, lo que sea. Cifrado para todos los demás.
Recuerdo activo: la salida de emergencia del memo.
Elige la opción correcta para cada hueco y comprueba.
El memo cifrado de una salida blindada lo puede leer el destinatario —o cualquiera a quien el destinatario entregue una .
Un gasto z → z, paso a paso
Antes de leer — adivina
Adivina: cuando un gasto z → z aterriza en la cadena, ¿qué dos cosas opacas aparecen?
Veamos cómo ocurre un gasto totalmente blindado. Fijaos en cuánto se demuestra frente a lo poco que se publica. Este es genuinamente secuencial, así que id avanzando paso a paso.
- Una nota ya vive en el árbol. En algún momento anterior, alguien os pagó. Eso creó una nota para vosotros y añadió su compromiso como hoja en el árbol de Merkle global de compromisos de nota. Los observadores públicos ven aparecer una hoja anónima más, nada más.
- Construís las entradas privadas de la prueba. Para gastar, vuestra cartera reúne en privado las cosas secretas: el valor de la nota, su apertura de compromiso y la clave de gasto. Nada de esto sale de vuestra máquina en claro.
- Demostrar la pertenencia en conocimiento cero. La prueba demuestra que una nota que coincide con un compromiso real existe en el árbol —sin revelar qué hoja—. Pertenencia: demostrada. Identidad de la hoja: oculta.
- Demostrar la autoridad de gasto + derivar el nullifier. La prueba también demuestra que poseéis la clave que autoriza el gasto de esta nota, y deriva el único nullifier de la nota.
- Demostrar el balance con compromisos de valor. Usando compromisos de valor homomórficos que suman cero, la prueba demuestra que las entradas son iguales a las salidas —sin inflación— mientras mantiene sellado cada importe.
- Publicar el nullifier + el nuevo compromiso. En la cadena, el mundo solo ve dos cosas opacas nuevas: el nullifier (para que esta nota nunca pueda volver a gastarse) y un compromiso de nota nuevo para el destinatario. Emisor, receptor, importe, memo: invisibles.
Y ya está. Una moneda se movió. La cadena mantuvo su integridad y su resistencia al doble gasto. Y un observador no aprendió prácticamente nada.
Durante ese gasto z → z, ¿qué datos siguieron sellados y cuáles se hicieron públicos?
Coloca cada elemento en el grupo correcto.
- El valor / importe de la nota
- Un compromiso de nota nuevo para el destinatario
- Qué hoja del árbol se gastó
- El nullifier de la nota gastada
- El memo cifrado
Los pools blindados, y cómo evolucionó la criptografía
Antes de leer — adivina
Adivina: ¿qué pool blindado de Zcash NO necesita ceremonia de confianza?
Zcash no llegó aquí de un solo golpe. La maquinaria blindada ha tenido tres generaciones, cada una con un sistema de prueba distinto. (Un “sistema de prueba” es el motor de conocimiento cero que produce y verifica esas pruebas.)
| Pool | Activado | Sistema de prueba | Curva(s) | ¿Ceremonia de confianza? |
|---|---|---|---|---|
| Sprout | Lanzamiento 2016 | BCTV14, luego Groth16 | Familia BN-254 | Sí — ceremonia de 6 participantes |
| Sapling | Oct 2018 | Groth16 | BLS12-381 (+ Jubjub en circuito) | Sí — Powers of Tau + MPC de Sapling, ~90 participantes |
| Orchard | NU5, May 2022 | Halo 2 | Pallas + Vesta (“Pasta”) | No hay ceremonia de confianza |
Algunas notas de precisión que conviene interiorizar:
- Sprout se lanzó con BCTV14 y más tarde se actualizó a Groth16. No fue Groth16 desde el primer día.
- Sapling usa Groth16 sobre BLS12-381. Jubjub es la curva en circuito (definida sobre el cuerpo escalar de BLS12-381) usada para operaciones en circuito —no es la curva de la prueba—. Mantened esas dos bien diferenciadas; son una confusión clásica.
- Sapling fue un salto de eficiencia monstruoso: aproximadamente un 97% menos de memoria (hasta ~40 MB) y cerca de un 81% más rápido en la demostración. Eso es lo que hizo que las carteras móviles blindadas fueran realmente factibles en lugar de una fantasía capaz de fundir un portátil.
- NU5 (May 2022) trajo tres cosas a la vez: Halo 2, el pool Orchard y las Direcciones Unificadas. Tres regalos de cumpleaños, una sola actualización.
Asocia cada sistema de prueba al pool que lo usa.
Coloca cada elemento en el grupo correcto.
- BCTV14, luego Groth16
- Halo 2
- Groth16 sobre BLS12-381
¿Qué TRES cosas se lanzaron juntas en NU5 (May 2022)? (Selecciona todas.)
Ceremonia de confianza, residuo tóxico y cómo Halo 2 lo fulminó
Antes de leer — adivina
Adivina: ¿cuál es el peligro si alguien guarda una copia de la aleatoriedad secreta de una ceremonia de confianza?
Aquí está la parte incómoda de los SNARK más antiguos como Groth16: necesitan una Cadena de Referencia Común (CRS) generada a partir de aleatoriedad secreta. Ese secreto se llama residuo tóxico, y se gana el nombre: si alguien guarda una copia, puede falsificar pruebas y acuñar monedas sin que se detecte. Dinero falso, sin saltar ninguna alarma.
Entonces, ¿cómo generas un secreto que nadie guarda? Celebras una ceremonia.
- Powers of Tau es la primera fase, independiente del circuito, de la ceremonia de computación multipartita (MPC). Produce parámetros reutilizables sobre los que se construyen circuitos posteriores.
- El modelo de seguridad es “1 de N honesto”: muchos participantes inyectan cada uno su propia aleatoriedad, y la configuración es segura mientras al menos uno de los participantes haya destruido de verdad su secreto. Todos los demás pueden estar comprometidos.
- Sprout usó 6 participantes, que destruyeron físicamente el hardware después. La ceremonia de Sapling tuvo ~90 participantes —más gente, más margen, ya que solo hace falta un destructor honesto—.
Analogía: la ceremonia de confianza es un ritual grupal en el que todos trituran un trozo de una llave maestra. Mientras una persona triture de verdad la suya, nadie puede reensamblarla para falsificar. La pesadilla es que todos guarden en secreto una copia.
Recuerda el modelo de seguridad con tus propias palabras.
Elige la opción correcta para cada hueco y comprueba.
Una ceremonia de confianza es segura bajo el modelo honesto: aguanta mientras al menos de los participantes haya destruido de verdad su parte del secreto.
Entonces apareció Halo 2 y preguntó: ¿y si simplemente… no hiciéramos el ritual?
Halo 2 elimina por completo la ceremonia de confianza. Usa un compromiso polinómico de argumento de producto interno (en el espíritu de Bulletproofs), así que no hay residuo tóxico de entrada, más composición recursiva de pruebas. Orchard está construido sobre Halo 2 → sin ceremonia, sin riesgo de residuo tóxico, nada que confiar.
Analogía: Halo 2 es ningún ritual en absoluto. No hay llave maestra que triturar, porque nunca se fabricó una.
El resumen en una línea
Las notas reemplazan a los UTXO · los compromisos son huellas públicas · el árbol de Merkle demuestra que una nota existe sin decir cuál · los nullifiers previenen los dobles gastos sin revelar la nota · los compromisos de valor homomórficos demuestran el balance sin revelar importes · y Orchard (Halo 2) no necesita ceremonia de confianza.
Recuerdo espaciado — enlázalo con la primera idea que viste.
Elige la opción correcta para cada hueco y comprueba.
Un evita que una nota se gaste dos veces sin revelar qué nota era, y el sistema de prueba de Orchard, , elimina por completo la ceremonia de confianza.
La visión de conjunto
Visión de conjunto
Por dentro de Zcash en una imagen
- Por dentro de Zcash
- Direcciones
- Direccion t publica
- Direccion z blindada
- u1 Unificada agrupa ambas
- Objetos cripto
- Nota reemplaza al UTXO
- Compromiso oculta y vincula
- Arbol de Merkle prueba pertenencia
- Nullifier detiene doble gasto
- Compromisos de valor suman cero
- Gasto z a z
- Demostrar en privado
- Publicar nullifier y compromiso
- Pools
- Sprout 2016
- Sapling 2018
- Orchard NU5 2022
- Ceremonia de confianza
- Riesgo de residuo toxico
- 1 de N honesto
- Halo 2 la elimina
- Direcciones
Ponte a prueba
¿Qué consigue un nullifier cuando se gasta una nota blindada?
Comprueba tu respuesta para continuar.
A continuación: usarlo de verdad (y los errores que delatan a la gente)
Ahora conocéis las piezas: notas, compromisos, el árbol de Merkle, nullifiers, compromisos de valor, los pools y por qué Halo 2 dejó obsoleta la ceremonia de confianza. En la lección final lo ponemos en práctica —haciendo una transacción genuinamente anónima de principio a fin— y, más importante, catalogamos los errores de novato que desenmascaran a la gente sin ruido (rastreo por importes, desblindaje descuidado, reutilización de direcciones y pistas temporales). La criptografía es a prueba de balas; los humanos, menos.