Saltar al contenido principal

Mecanismo de Consenso de ULedgerNET

Descripción General

ULedgerNET emplea un mecanismo de consenso Tolerante a Fallas Bizantinas (BFT) basado en Consejo. Este diseño proporciona finalidad inmediata, elección de líder determinista y resiliencia contra fallas bizantinas de hasta ⅓ de los nodos participantes.

Modelo de Consenso

Estructura del Consejo

El consenso es gestionado por un consejo de nodos autorizados que participan en la producción y validación de bloques.

🔍 click to expand

Propiedades Clave

PropiedadValorDescripción
Umbral de Consenso66.67% (⅔)Votos requeridos para la finalización del bloque
Tamaño Mínimo del Consejo3 nodosMínimo para tolerancia a fallas byzantinas
Tolerancia a Fallasf < n/3Puede tolerar hasta ⅓ de nodos maliciosos
FinalidadInmediataNo se requiere confirmación probabilística

Protocolo de Votación de Tres Fases

ULedgerNET utiliza un protocolo de confirmación en tres fases para alcanzar el consenso:

🔍 click to expand

Detalles de las Fases

Fase 1: PreVote

🔍 click to expand

Verificaciones de Validación:

  • Integridad del hash del bloque
  • Firma válida del líder
  • Altura de bloque correcta
  • Prueba Merkle válida
  • Verificación de prueba ZK

Fase 2: PreCommit

🔍 click to expand

Fase 3: Commit

🔍 click to expand

Elección de Líder

Selección Determinista

El líder para cada ronda de votación se selecciona de forma determinista basándose en:

  • Hash del bloque anterior
  • Altura del bloque
  • Número de ronda actual
🔍 click to expand

Rotación de Líder

🔍 click to expand

Propiedades:

  • Impredecible más de un bloque por adelantado (depende del hash del bloque)
  • Determinista dados los mismos valores de entrada
  • Rota al agotarse el tiempo de la ronda para garantizar vivacidad

Tiempo de Espera y Recuperación

Mecanismo de Tiempo de Espera

🔍 click to expand

Escenarios de Recuperación

EscenarioAcción de Recuperación
Líder Sin ConexiónTiempo agotado → Nueva elección de líder
Partición de RedContinuar con la mayoría de ⅔ disponible
Líder MaliciosoVotos rechazados → Tiempo de ronda agotado
Red LentaDuración de tiempo de espera configurable

Estructura del Voto

Cada voto en el protocolo contiene:

🔍 click to expand

Validación de Votos

  1. Validación Estructural

    • El votante está en el consejo
    • Etapa de voto correcta
    • Número de ronda coincidente
    • Altura de bloque válida
  2. Validación Criptográfica

    • Verificación de firma usando la clave pública del votante
    • Verificación de integridad del mensaje

Diagrama de Flujo de Consenso

🔍 click to expand

Gestión del Consejo

Unirse al Consejo

🔍 click to expand

Abandonar el Consejo

🔍 click to expand

Consideraciones de Rendimiento

Optimizaciones

  1. Agrupación de Votos: Los votos pendientes se ponen en cola y se procesan en lotes
  2. Buffer de Propuestas: Las propuestas futuras se almacenan en buffer para entrega fuera de orden
  3. Validación Paralela: La validación de bloques ocurre de forma concurrente en todo el consejo

Escalabilidad

Tamaño del ConsejoMensajes de ConsensoImpacto en Latencia
3 nodos~6 por bloqueLínea base
5 nodos~10 por bloque+10-20%
10 nodos~20 por bloque+30-50%
20+ nodos~40+ por bloqueConsiderar fragmentación

Siguiente: Cross-Merkleization