# Simulador de firmas de umbral BLS (Boneh–Lynn–Shacham) + generación distribuida de claves

Simula firmas BLS12-381 de extremo a extremo: ceremonias Joint-Feldman DKG, firmas de umbral t-de-n con interpolación de Lagrange, el ataque de clave perversa y su defensa por prueba de posesión, y la agregación de atestaciones de Ethereum 2.

> Página canónica: https://elysiatools.com/es/tools/bls-boneh-lynn-shacham-threshold-signature-aggregation-distributed-key-gen-simulator

- **Categoría:** Cryptography

- **Palabras clave:** simulador firma bls, bls12-381, firmas de umbral, ceremonia dkg, joint feldman, clave perversa, prueba de posesión, ethereum 2 bls, agregación de atestaciones, shamir lagrange

## Descripción general

Un simulador educativo del esquema de firmas BLS (Boneh–Lynn–Shacham 2001, estandarizado en draft-irtf-cfrg-bls-signature-04) — el esquema detrás de las atestaciones de la beacon chain de Ethereum 2, Chia, Polkadot y Filecoin.

El cuerpo escalar es el orden real r del subgrupo de BLS12-381, así que claves privadas, participaciones Shamir, coeficientes de Lagrange y cancelaciones de clave perversa usan el módulo exacto de producción. El grupo es un grupo multiplicativo de orden primo con el emparejamiento abstracto e(g^a, g^b) = g^(ab): toda identidad bilineal de la que depende BLS (σ = H(m)^sk verificando como e(σ, g) = e(H(m), g^sk)) se conserva; la aritmética de curva elíctica y hash-to-curve (SSWU) no se ejecuta.

Escenarios:

1. Joint-Feldman DKG — cada participante reparte un polinomio aleatorio de grado t−1, publica compromisos Feldman C_i,k = g^{a_i,k} (más compromisos Pedersen opcionales) y distribuye participaciones en privado. Las comprobaciones exponen repartidores tramposos; la clave pública del grupo Π C_i,0 equivale a g^{secreto del grupo} aunque el secreto nunca se materialice. Luego firma de umbral t-de-n: las parciales σ_i = H(m)^{s_i} se combinan con coeficientes de Lagrange en una firma idéntica a la del firmante completo; los quórums por debajo del umbral se rechazan.

2. Ataque de clave perversa — el atacante publica pk* = g^α·Πpkᵢ⁻¹ (calculable solo con claves públicas) y falsifica una firma agregada que la verificación simple acepta. La defensa por prueba de posesión (PopProve = firmar el hash de tu propia clave pública) rechaza la clave perversa al registrarse.

3. Agregación de atestaciones de Ethereum 2 — n validadores firman los mismos datos; σ_agg = Πσᵢ sigue en 96 bytes y FastAggregateVerify cuesta 2 emparejamientos sin importar n; el sub-agregado del quórum de ⅔ verifica de forma incremental.

Todas las ejecuciones son deterministas dada la semilla, así que las ceremonias se repiten idénticas.

## Entradas

- **Escenario** (select)
- **Participantes n (3–9)** (number): 4
- **Umbral t (2–9)** (number): 3
- **Mensaje / Datos de atestación** (text): committee attestation: block 9182
- **Semilla determinista (repite la misma ceremonia)** (text): ceremony-2026
- **Añadir compromisos Pedersen al DKG** (checkbox)

## Cuándo usarlo

- Al diseñar o auditar protocolos criptográficos distribuidos que requieren esquemas de firma de umbral t-de-n sin un emisor central de confianza.
- Al estudiar las vulnerabilidades de agregación simple de claves públicas y evaluar la implementación de pruebas de posesión (Proof of Possession, PoP) según el estándar CFRG BLS.
- Al analizar el mecanismo de agregación y verificación de atestaciones de validadores en redes blockchain como Ethereum 2 o Filecoin.

## Cómo funciona

- Configura el escenario deseado (DKG Joint-Feldman, ataque de clave perversa o agregación de Ethereum 2), definiendo el número de participantes (n), el umbral de firmas (t) y el mensaje de prueba.
- El simulador ejecuta los cálculos modulares sobre el orden de subgrupo exacto de BLS12-381 (r) y genera compromisos algebraicos (Feldman/Pedersen) para verificar la consistencia de los secretos compartidos.
- Se generan firmas parciales que se combinan mediante coeficientes de Lagrange o agregación multiplicativa, evaluando el emparejamiento bilineal e(σ, g) = e(H(m), pk).
- Obtén un informe estructurado que desglosa la matriz de compromisos, las comprobaciones de quórum, los resultados de verificación y las respuestas criptográficas ante quórums incompletos o claves maliciosas.

## Casos de uso

- Demostración pedagógica del funcionamiento de ceremonias DKG y firmas basadas en emparejamientos bilineales en cursos de criptografía aplicada.
- Validación conceptual de flujos de atestación y comités de consenso de validadores en infraestructuras basadas en Ethereum 2.
- Análisis de seguridad y pruebas de concepto para mitigar ataques de clave maliciosa en sistemas de custodia multifirma y billeteras threshold.

## Preguntas frecuentes

### ¿Qué módulo algebraico utiliza este simulador?

Utiliza el orden escalar primo real r del subgrupo de la curva BLS12-381, garantizando que el reparto de secretos de Shamir y los coeficientes de Lagrange coincidan con implementaciones de producción.

### ¿Qué diferencia hay entre la agregación de firmas y la firma de umbral en BLS?

La agregación combina firmas de múltiples claves públicas sobre el mismo o distintos mensajes, mientras que la firma de umbral t-de-n reconstruye una única firma válida bajo una sola clave pública grupal sin requerir a todos los participantes.

### ¿En qué consiste el ataque de clave perversa (rogue-key attack)?

Ocurre cuando un atacante resta las claves públicas de participantes honestos a la suya propia, logrando falsificar una firma agregada válida para todo el grupo sin conocer las claves privadas de los demás.

### ¿Cómo previene la Prueba de Posesión (PoP) el ataque de clave perversa?

Exige que cada participante firme el hash de su propia clave pública al registrarse, demostrando que conoce el logaritmo discreto (clave privada) de la clave declarada antes de permitir la agregación.

### ¿Los resultados de las simulaciones son reproducibles?

Sí, las ejecuciones son completamente deterministas a partir del parámetro de semilla de texto (seedText) ingresado.

## Herramientas relacionadas

- [Comparador de algoritmos hash](https://elysiatools.com/es/tools/hash-algorithm-comparator): Aplica MD5, SHA-1, SHA-256, SHA-512, BLAKE2b y BLAKE3 a la misma entrada y compáralos lado a lado: longitud de salida, digest hex/Base64, estado de seguridad (roto/moderno) y benchmark de velocidad relativa. Útil para enseñanza, elegir algoritmo o verificar checksums.
- [Auditor de construcciones MAC: HMAC + BLAKE3 + SHA-3/Keccak + Poly1305 + BLAKE2 con clave](https://elysiatools.com/es/tools/hmac-blake3-sha3-keccak-keyed-hash-and-mac-construction-linter): Calcula y audita MACs en HMAC-SHA-2/SHA-3, BLAKE2 con clave, BLAKE3, KMAC y Poly1305 con autopruebas oficiales de respuesta conocida, análisis de longitudes de clave/etiqueta y una matriz de compatibilidad entre construcciones.
- [Puente de PDF (OCR) a JSON estructurado](https://elysiatools.com/es/tools/ocr-pdf-to-structured-json-bridge): Extrae la capa de texto del PDF con geometría (líneas por posición y, tablas por huecos de columna, títulos por tamaño de fuente, pares clave-valor con dos puntos) y rellena campo a campo un JSON Schema del usuario — etiquetas emparejadas por claves normalizadas, valores coaccionados a los tipos declarados y validados con ajv.
- [Validador de propagación OpenTelemetry W3C traceparent / tracestate / baggage y cabeceras OTLP](https://elysiatools.com/es/tools/opentelemetry-w3c-traceparent-tracestate-baggage-and-otlp-protobuf-headers-propagation-validator): Valida traceparent según la ABNF de W3C Trace Context (versión / trace-id de 16 bytes / parent-id de 8 bytes / trace-flags de 1 byte; rechaza ceros y versión ff, avisa en mayúsculas), tracestate (≤32 miembros, claves simples y tenant@sistema, avisos por duplicados) y baggage (valores percent-codificados con propiedades opacas); comprueba el Content-Type de exportación OTLP y el contexto binario de 25 bytes de grpc-trace-context-bin; correlaciona dos traceparent en un round-trip simulado (estabilidad del trace-id y colisión de span-id hijo aleatorio) y emite cabeceras normalizadas listas para reenviar.
- [Validador de árbol estructural lógico PDF (mapa de roles WCAG)](https://elysiatools.com/es/tools/pdf-logical-structure-tree-validator): Audita el árbol de estructura lógica PDF/UA-1: si el RoleMap termina en tipos estándar, si H1–H6 saltan niveles o el primer título no es H1, si Figure/Formula carecen de texto Alt, si la cadena de idioma es determinable y si el orden MCID estructura/contenido diverge; incluye el árbol con puntos de control Matterhorn.
- [Orquestador de verificación formal SMT-LIB 2.7 / AIGER / BTOR2 (CDCL + BMC + k-inducción + interpolación de Craig + IC3)](https://elysiatools.com/es/tools/smt-smtlib-2-7-cvc5-z3-btor2-aiger-k-induction-cddr-dbg-invariant-synthesis-orchestrator): Una pila completa de verificación formal en el navegador — sin binario de cvc5/Z3: un analizador de guiones SMT-LIB 2.7 para el núcleo QF_BV + Bool con bit-blasting Tseitin de los operadores FixedSizeBitVectors, un lector AIGER (aag ASCII y aig binario con decodificación delta; salidas como propiedades malas), un lector BTOR2 con bit-blasting a nivel de palabra y un motor SAT CDCL escrito a mano (literales doblemente vigilados, actividades tipo VSIDS, aprendizaje 1-UIP, reinicios) por debajo. Sobre modelos secuenciales ejecuta BMC con trazas testigo, k-inducción con reforzamiento de estados únicos, interpolación de Craig estilo McMillan recalificada por SAT, y un bucle IC3/PDR-lite con bloqueo de cubos.
- [Comprobador de normas de subtítulos por plataforma](https://elysiatools.com/es/tools/subtitle-platform-spec-checker): Valida subtítulos contra especificaciones de entrega: Netflix Timed Text (velocidad de lectura 20/17 CPS, 42 caracteres por línea, dos líneas, mínimo 5/6 de segundo y máximo 7 segundos, huecos de 2 fotogramas), directrices de televisión BBC (37 caracteres por línea, 160-180 ppm, pausas de 1,5 s) y reglas de subtítulos de YouTube (UTF-8 plano, marcado no reconocido) — con informe de hallazgos por entrada.
- [Divisor train/test con estratificación](https://elysiatools.com/es/tools/train-test-split-with-stratification): Lee un dataset CSV/JSON y divide en train/validation/test con muestreo estratificado por la columna objetivo (70/15/15 por defecto, semilla reproducible), o valida con k-fold estratificado; incluye informe de distribución de clases por split con barras de desviación, comprobación de fugas por filas duplicadas, vista previa de SMOTE (interpolación de vecinos sobre el split de train) y exportación de los CSV en ZIP.

## Ejemplos

- [Muestras de Trazado Distribuido](https://elysiatools.com/es/samples/distributed-tracing-samples): Ejemplos completos de trazado distribuido usando Jaeger, OpenTelemetry y herramientas de observabilidad modernas
- [Muestras de Patrones de Sistemas Distribuidos](https://elysiatools.com/es/samples/distributed-systems): Patrones completos de sistemas distribuidos cubriendo consistencia, algoritmos de consenso, sharding y mecanismos de tolerancia a fallos
- [Muestras MP3 Sin Derechos de Autor](https://elysiatools.com/es/samples/mp3-samples): Colección de muestras de audio sin derechos de autor para pruebas y desarrollo, incluyendo sonidos de la naturaleza, música de meditación y audio ambiental
- [Ejemplos de Procesamiento de Imágenes Android Java](https://elysiatools.com/es/samples/android-image-processing-java): Ejemplos de procesamiento de imágenes Android Java incluyendo lectura/escritura, escalado y conversión de formato
