0Pricing
Cryptology Academy · Lección

Protocolos Sigma e identificación de Schnorr

Implemente un protocolo Sigma y siga el funcionamiento de la prueba de Schnorr.

Protocolos Sigma e identificación de Schnorr es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Estructura de un protocolo Sigma

Un protocolo Sigma tiene 3 mensajes: (1) Compromiso: el probador envía un compromiso con un valor aleatorio. (2) Desafío: el verificador envía un desafío aleatorio. (3) Respuesta: el probador envía una respuesta calculada a partir del desafío y del secreto. El verificador acepta o rechaza.

Identificación de Schnorr

El probador conoce el secreto x (clave privada); clave pública = g^x mod p (o punto X = x*G en una curva elíptica). El objetivo es demostrar que conoce x sin revelarlo. Esto es una prueba de conocimiento del logaritmo discreto.

Pasos del protocolo de Schnorr

(1) El probador elige un valor aleatorio r y envía el compromiso R = r*G. (2) El verificador envía el desafío c (un entero aleatorio). (3) El probador envía la respuesta s = r + c*x. (4) El verificador comprueba s*G == R + c*X. Si se cumple, acepta. El probador conoce x; la respuesta s solo se puede calcular con x.

Análisis de seguridad

Completitud: un probador honesto siempre satisface s*G = r*G + c*x*G = R + c*X. Solidez: dos transcripciones con el mismo R pero con desafíos distintos c y c' producen s y s', a partir de los cuales se puede recuperar x = (s-s')/(c-c'); por tanto, un tramposo no puede producir dos respuestas válidas para el mismo R.

Conocimiento cero de Schnorr

Simulador (sin conocer x): elige valores aleatorios s y c y establece R = s*G - c*X. Esta terna (R, c, s) tiene una distribución de transcripción válida. El verificador no puede distinguir las transcripciones reales de las simuladas; Schnorr ofrece conocimiento cero ante verificadores honestos.

Transformación de Fiat-Shamir

Haga que Schnorr no sea interactivo: sustituya el desafío del verificador por c = Hash(R || message). El probador calcula c por sí mismo y responde. El resultado es una prueba de 2 elementos (R, s) que cualquiera puede verificar. Este es el esquema de firma de Schnorr.

Firmas de Schnorr

Sign(x, m): r ← aleatorio; R = r*G; c = Hash(R||m); s = r + c*x. Firma = (R, s). Verify: s*G == R + Hash(R||m)*X. Compacta (64 bytes para P-256), verificable por lotes y demostrablemente segura en el ROM. Adoptada en Bitcoin Taproot (BIP-340).

Compromisos de Pedersen

C = r*G + v*H, donde H es un segundo generador independiente. Compromete el valor v usando la aleatoriedad r. Vinculación: no se puede abrir para un v diferente (logaritmo discreto). Ocultación: C se distribuye uniformemente. Se utiliza en pruebas de rango basadas en Schnorr y en Bulletproofs.

Composición: pruebas AND

Demuestre que conoce x1 AND x2 simultáneamente: ejecute dos protocolos de Schnorr con el mismo desafío (comparta el desafío mediante Fiat-Shamir). El verificador acepta solo si ambas subpruebas son válidas. Esto permite demostrar varias afirmaciones en una sola interacción.

Composición: pruebas OR

Demuestre que conoce x1 OR x2 sin revelar cuál de los dos: utilice el simulador para una de las ramas para calcular una transcripción falsa y, después, divida el desafío entre ambas. El verificador ve dos transcripciones que parecen válidas y cuya suma es igual al desafío real. Se denominan "firmas de anillo".

Aplicaciones

Identificaciones Schnorr: pasaportes electrónicos (protocolo PACE). Firmas Schnorr: Bitcoin Taproot, Monero (RingCT utiliza pruebas OR de Schnorr), Signal Protocol (acuerdo de claves X3DH). Compromisos de Pedersen: transacciones confidenciales, Bulletproofs y cifrado de notas de Zcash Sapling.

Comprobación rápida

En el protocolo de identificación de Schnorr, ¿qué comprueba el verificador en el paso final?

Repaso

Protocolos Sigma: comprometerse-desafiar-responder. Schnorr demuestra el conocimiento de un logaritmo discreto. Fiat-Shamir lo convierte en no interactivo (firma de Schnorr). Siguiente tema: zk-SNARKs para pruebas no interactivas sucintas.

Preguntas frecuentes

¿La lección «Protocolos Sigma e identificación de Schnorr» es gratis?

Sí — el texto completo de «Protocolos Sigma e identificación de Schnorr» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Protocolos Sigma e identificación de Schnorr»?

Implemente un protocolo Sigma y siga el funcionamiento de la prueba de Schnorr. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Protocolos Sigma e identificación de Schnorr»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Intuición sobre ZKP: la cueva de Alí Babá
  2. Protocolos Sigma e identificación de Schnorr
  3. zk-SNARK: argumentos sucintos no interactivos
  4. Aplicaciones de ZKP: ZK Rollups y monedas privadas
← Volver a Cryptology Academy