La primera fase de Ethereum 2.0 tiene como objetivo implementar la Beacon Chain. Una cadena que sirva de pilar sobre la que se construya el nuevo algoritmo de consenso PoS (Proof of Stake) Casper FFG y permita gestionar las Shard Chains, teniendo como claro objetivo mejorar la seguridad y la escalabilidad de la actual cadena Ethereum 1.0.

¿Qué es la Beacon Chain?

La Beacon Chain es una nueva cadena de bloques con prueba de participación PoS (Proof of Stake) que implementa el protocolo de consenso Casper FFG

La Beacon Chain se está implementando en la primera fase (Fase 0) de las evoluciones que están planificadas para desarrollar Ethereum 2.0, también llamado Eth 2.0 o Serenity. Esta previsto que esté lista para su utilización a lo largo del 2020. 

Se podría definir de varias formas, entre las cuales tenemos las siguientes:

  • La columna vertebral que soporta la totalidad del nuevo sistema Ethereum 2.0. 
  • El latido del corazón que mantiene vivo el sistema.
  • El conductor que coordina a todos los jugadores.

A continuación vamos a profundizar en detalle en su funcionamiento y características. 

¿Qué funciones tiene la Beacon Chain?

La Beacon Chain se encarga de coordinar todo el sistema, administrando el protocolo de prueba de participación para sí misma y para todas las Shard Chains.

En concreto, se encarga de gestionar las siguientes funciones:

  • Permitir que los nodos validadores ingresen en el sistema de Proof of Stake y que construyan la cadena de bloques en la Beacon Chain en lugar de los mineros.
  • La gestión de los nodos validadores y sus intereses.
  • Nominar al proponente de bloque “Proposer” elegido para para la Beacon Chain, y para cada Shard en cada latido/slot (cada 12 segundos).
  • Organizar a los nodos validadores “Attester” en comités  para votar sobre la validez de los bloques propuestos .
  • Aplicar las reglas de consenso.
  • Aplicar recompensas y penalizaciones a los nodos validadores según su comportamiento.
  • Almacenar las referencias de estado de los Shards.

Es importante entender que los bloques de la Beacon Chain no almacenan los saldos de cuentas, ubicaciones de tokens, estado de dApps, ni ninguna otra información que almacene la actual cadena de bloques PoW.  Almacena la lista de validadores, los testimonios/votaciones de los comités, y estados de los shards, entre otra información (Figura 1).

Beacon Chain y Shards Master Blockchain

Figura 1: la Beacon Chain sincroniza las 64 cadenas Shard. Fuente

¿Cómo se realiza la gestión de los nodos validadores?

Una de las funciones más importantes que tiene la Beacon Chain es mantener y gestionar el conjunto de nodos validadores.

Un validador es un nodo (entidad persona o empresa) que ha colocado la participación requerida de 32 ETH para participar en el algoritmo de consenso PoS, y es el responsable de ejecutar el sistema Ethereum 2.0. 

El validador debe ejecutar un software cliente específico para la Beacon Chain. En la actualidad, existen nueve equipos diferentes trabajando en distintos clientes Ethereum 2.0. Por ejemplo, el equipo prysmaticlabs ha elaborado el cliente Prysm que permite formar parte de la Beacon Chain en la testnet Topaz, la cual se puede explorar mediante el navegador de bloques etherscan.

Los nodos se unen al conjunto de nodos validadores enviando, a un contrato en la PoW Main Chain de Ethereum 1.0, una participación de 32 ETH, junto con una clave pública usada para firmar testimonios, y además una clave pública para retirar los fondos de las recompensas (Figura 2).  Pasado un tiempo, la Beacon Chain le asigna al nodo validador una tarjeta de membresía y cambia su estado a «Activo». A partir de este momento, el nodo validador pasa a formar parte del protocolo Ethereum 2.0, empezando a proponer y a dar testimonio de bloques cuando sea propuesto para ello.

Contrato Membresia Beacon Chain Master Blockchain

Figura 2: proceso de membresía del nodo validador a la Beacon Chain.

En cada época (epoch), compuesta de 32 slots (de 12 segundos cada uno de duración), la Beacon Chain forma un comité de nodos validadores para cada uno de los slots (con un mínimo de 128 validadores por comité). Dentro de cada uno de estos 32 comités, se selecciona un validador para que se encargue de proponer un nuevo bloque, dejando al resto de validadores del comité que se encarguen de dar testimonio sobre el nuevo bloque. Al término de cada época el proceso se repite de nuevo (Figura 3).

Comites Master Blockchain Online

Figura 3: elección de proponentes y comités en cada época. Fuente

En resumen, un nodo validador es el minero moderno, pero un minero que no desperdicia electricidad para confirmar transacciones. Un validador, o bien propone nuevos bloques si el sistema lo selecciona para ello, o bien da testimonio de que el nuevo bloque propuesto es correcto. Los validadores juntos construyen la nueva cadena Beacon Chain, y ningún validador es más poderoso que otro. 

 

Proponentes de Bloques

La Beacon Chain administra su propio protocolo de prueba de participación PoS con Casper y el de cada una de las Shard Chains.

En un sistema de prueba de trabajo PoW, el nodo que elige el siguiente bloque (el minero del bloque) es el primero en resolver el desafío de la minería. En la prueba de participación no hay minería, por lo que los proponentes de bloques se eligen de forma aleatoria para evitar que estos mismos proponentes manipulen los datos de la cadena de bloques.

En cada época de 32 slots, para cada slot, la Beacon Chain selecciona de forma aleatoria un proponente (proposer) para que proponga un nuevo bloque para la Beacon Chain, y 64 proponentes (uno por cada Shard Chain) para que propongan un nuevo bloque por cada Shard.

A diferencia del sistema PoW que se implementa en Ethereum 1.0, en el que los tiempos en la creación de los bloques son irregulares, en Ethereum 2.0 la Beacon Chain actua como un latido del corazón y los bloques se producen regularmente cada 12 segundos.

 

Comités

Un comité es un conjunto de nodos validadores “Attester” elegidos al azar en cada época para cada slot, de forma aleatoria (RANDAO+VDF), los cuales votan sobre qué bloques forman la verdadera historia de la cadena (son finalizados). Es decir, cada attester dentro de un comité emite un voto/testimonio a favor o en contra de que el bloque propuesto sea válido. 

Cada nodo Attester dispone de una época (6’4 minutos) para emitir el voto/testimonio sobre el bloque propuesto.

La Beacon Chain se encarga de contar los votos, conocidos como «testimonios», de los diferentes comités para validar los bloques propuestos.

Además, la Beacon Chain también designará subcomités formados por nodos validadores para las 64 Shard Chains que, a su debido tiempo, serán responsables de validar con sus testiminios los nuevos bloques propuestos para cada Shard.

Generador de Aleatoriedad

¿Cómo se decide en la Beacon Chain, por cada slot, que nodo validador va a proponer un nuevo bloque? ¿Cómo se decide que validadores van a formar un comité para votar esa propuesta?¿Cómo se combina esta decisión entre 64 fragmentos y las docenas de miles de validadores activos en el sistema en un momento dado? Mediante Aleatoriedad.

La Beacon Chain es la responsable de proporcionar esta aleatoriedad al resto del sistema. Un requisito clave del protocolo de PoS Casper es tener una fuente de aleatoriedad que sea distribuida, verificable, e impredecible, ya que las recompensas serán dadas a los validadores que propongan bloques o formen parte de un comité y voten/den testimonio de un nuevo bloque.

El enfoque actual para la generación de números aleatorios es una construcción RANDAO + VDF con validadores que proporcionan una «Hash Onion«.

Cada validador de Ethereum tiene que recoger una semilla y crear la denominada Hash Onion. Para ello, a la semilla se la hashea varias veces. Como resultado, la hash onion crece con cada capa que se ha asheado. La capa externa representa el compromiso que tiene el validador con la propuesta del bloque.

Cada vez que se selecciona un validador para ser el proponente de un bloque mediante el sistema RANDAO, se despega una o más capas de la cebolla proporcionando una pre-imagen del último número revelado incluyéndolo en el bloque propuesto. Todos los demás validadores pueden verificar que esto se hizo correctamente, por lo que el proponente no puede engañar al sistema cambiando su contribución.

Recompensas y Penalizaciones

Otra de las funciones principales de la Beacon Chain es el seguimiento y la actualización de los depósitos de los validadores.

Para que se inicie la Beacon Chain, se necesitarán al menos 16.384 validadores, lo que equivale a 524.288 ETH en stake. Las recompensas no se distribuirán a los validadores hasta que la Beacon Chain esté funcionando correctamente.

Los validadores reciben recompensas por comportarse bien en el protocolo PoS, haciendo propuestas de nuevos bloques y votando correctamente en los comités en los que sean asignados.

Las recompensas menos las penalizaciones se transfieren a los validadores en cada época que se ejecute. Esto es cada 384 segundos (6’4 minutos). 

Las recompensas se calculan dinámicamente en función del estado de la red al finalizar cada época. Las tasas de emisión de recompensas se calculan mediante una función que depende de la cantidad total de ETH en stake, del número de validadores ejecutados y del porcentaje de tiempo de actividad de los validadores.

Para profundizar más en las recompensas recibidas por participar en el stake de Ethereum 2.0 se puede consultar la calculadora de recompensas oficial. 

Un validador puede permanecer en el sistema por tiempo indefinido, siempre que no se comporte mal (según las reglas del protocolo PoS). Pero si los validadores rompen las reglas, son penalizados con la reducción de algunos de sus depósitos de 32 ETH y pueden ser expulsados del sistema cuando sus depósitos bajen de 16 ETH.

También hay una pequeña penalización por estar ausente (no presentarse para votar en los bloques) llamada «fuga cuadrática«. Un validador perderá parte de su stake periódicamente con el tiempo si se desconecta. Esta pérdida aumentará dramáticamente a medida que pase el tiempo, lo que significa que los periodos sin conexión más cortos serán más tolerantes que los más largos. 

La pérdida de stake se llama “Slashing” (una parte del stake es recortado) y el algoritmo que hace este recorte se llama “Slasher”.

El ETH recortado es quemado, en lugar de distribuirlo entre el resto de validadores para evitar que se intenten sabotear entre ellos para recibir una recompensa.

Los nodos validadores pueden indicar que desean salir del sistema y dejar de participar después de un período de tiempo de 2048 épocas (12 días). En este momento, sus participaciones, más las recompensas, menos las penalizaciones, se devolverán a uno de los shards (cuando estén implementados). No se devolverán los ETH a la Main Chain PoW de Ethereum 1.0.

Si se quiere profundizar en esta cuestión, en esta nota se puede consultar infromación sobre el ciclo de vida de los nodos validadores en Ethereum 2.0.

Enlaces Cruzados (CrossLinks)

Existe un conjunto de nodos validadores en la Beacon Chain, a los que se les asigna aleatoriamente el derecho de proponer nuevos bloques para las Shard Chains. Esto sucede en cada latido (slot) de la Beacon Chain (12 segundos), y para cada Shard (0 … 64).

Además, para cada Shard Chain, un conjunto de nodos validadores se seleccionan como “Attesters” en un comité. El comité de “Attesters” certificará el bloque que aprueban, y si el bloque tiene suficientes votos/testimonios, se puede agregar como un enlace cruzado en un bloque de la Beacon Chain.

Los enlaces cruzados son referencias, que se almacenan en los bloques de la Beacon Chain, hacia los bloques de las Shard  Chains. Como existen 64 Shard Chains, cada bloque de la Beacon Chain puede contener hasta 64 enlaces cruzados, uno por cada cadena Shard.

Un bloque de la Beacon Chain podría tener sólo un enlace cruzado, si en el slot en el que se propone el bloque, no existen bloques propuestos para los otros 63 shards restantes (Figura 4).

El bloque generado de la Beacon Chain también será validado por un comité de validadores “Attesters”.

Los enlaces cruzados unen todo el sistema fragmentado (Shard Chains), anclando cada fragmento a la columna vertebral que es la Beacon Chain y son el principal medio por el cual la Beacon Chain aprende sobre el estado actualizado de las Shard Chains.

Cuando se finaliza el bloque de la Beacon Chain, el bloque de la Shard Chain que tiene un Cross Link hacia dicho bloque, también se considera finalizado. Un bloque de la Beacon Chain se considera finalizado cuando es validado por la mayoría del comité creado al efecto.

Cross Links Master Blockchain Online

Figura 4: la Beacon Chain se sincroniza  con las Shard Chains mediante los Cross Links. Fuente

¿Existirán 2 tipos de ETH?

Como ya hemos visto, un nodo para convertirse en validador tiene que comprometer una participación de exactamente 32 ETH en un contrato de registro en la cadena actual de prueba de trabajo, que generará un recibo reconocible por la Beacon Chain. Ese recibo sirve como su permiso para ser un validador, pero ¿a dónde van los 32 ETH? Los 32 ETH se han quemado quedando bloqueados para siempre en una dirección de la que no se pueden recuperar.

En el contrato de registro, junto a los 32 ETH, también se indica el identificador del Shard al que se retirarán los 32 ETH al salir del grupo de validadores y la dirección en la que se retirarán. Entonces, si se deja de ser un validador, la participación se retira a un Shard específico en una dirección específica de Ethereum.

Los ETHs de la Beacon Chain no serán útiles hasta que Ehereum 2.0 esté funcionando, incluso aunque se pueda retirar al Shard asignado. Por lo tanto, el ETH PoS creado por los recibos de depósitos de PoW en el contrato de registro también es ETH, pero es muy diferente del ETH PoW ya que no tendrá ninguna utilidad durante mucho tiempo. Además, no se puede devolver a PoW porque no hay contrato de desregistro, sólo una función de salida de validación que unicamente puede retirar el ETH a una dirección de un Shard.

Como consecuencia, durante la fase de transición, mientras el PoW Ethereum aún existe y el PoS Ethereum se está desarrollando, habrá dos tokens de Ether diferentes. Uno se usará como gas y recompensa por minar los bloques en la prueba de la cadena de trabajo (Main Chain), el otro se usará como recompensa en la cadena participación (Beacon Chain).

Por lo tanto, sólo tendrá sentido mover los ETHs PoW a ETHs PoS si se quiere ser un adoptante temprano de la Beacon Chain y aprovechar las recompensas desde el período inicial.

    En conclusión

    La Beacon Chain es la base sobre la que se sustenta Ethereum 2.0 (Serenity).Es la columna vertebral que soporta todo el nuevo sistema Ethereum 2.0 que tiene como objetivos mejorar la seguridad y la escalabilidad de Ethereum 1.0. Para ello, la Beacon Chain deberá ser el conductor que coordine a todos los jugadores implicados en el correcto funcionamiento del protocolo PoS (Casper FFG), el cual viene a sustituir al protocolo PoW (Ethash) que coordina el funcionamiento de Ethereum 1.0.