Glosario cripto

Diversidad de clientes

Definición

La diversidad de clientes consiste en repartir los nodos de una red entre varias implementaciones de software independientes para que un fallo no la tumbe.

Un cliente es el software que ejecuta un nodo para seguir el protocolo. Ethereum tiene varios a propósito: clientes de ejecución como Geth, Nethermind, Besu, Erigon o Reth, y clientes de consenso como Prysm, Lighthouse, Teku, Nimbus o Lodestar. Cada uno lo escribe un equipo distinto, a menudo en otro lenguaje de programación, a partir de la misma especificación.

Si todos los validadores usaran el mismo cliente, un único error podría hacer que la red finalizara una cadena inválida o se detuviera por completo. Con diversidad, un cliente defectuoso solo afecta a su parte de los nodos. Los umbrales importan: en Ethereum, un cliente usado por más de dos tercios del stake podría finalizar una cadena errónea y sus validadores sufrir fuertes penalizaciones, así que la comunidad hace campaña para que ningún cliente supere un tercio.

La diversidad tiene costes: las especificaciones deben ser muy precisas, cada actualización se implementa y prueba varias veces y las diferencias entre clientes pueden provocar divisiones. Bitcoin sigue el camino contrario y casi todos sus nodos usan Bitcoin Core para evitar divergencias de consenso. En la práctica, los clientes de ejecución de Ethereum han estado mucho tiempo dominados por una sola implementación.

Ejemplo

Cuando un error en un cliente de ejecución de Ethereum hizo que sus nodos dejaran de producir bloques válidos a principios de 2024, la cadena siguió finalizando porque la mayoría de los validadores usaba otros clientes.

Términos relacionados