Ethereum 2.0 y su nuevo mecanismo de consenso

Hola a todos, en el post de hoy vamos a hablar sobre Ethereum 2.0 y su nuevo mecanismo de consenso, ya que hace poco que ha salido esta nueva versión o génesis de la famosa cadena de bloques Ethereum.

En este post no vamos a centrarnos en analizar o hablar sobre Ethereum desde una perspectiva de la criptomoneda o el futuro de esta cadena de bloques, si no que nos vamos a centrar en su nuevo mecanismo de consenso y en la seguridad de este.

El pasado 1 de diciembre del 2020, era anunciado Ethereum2.0 un nacimiento muy enfocado en estabilidad, eficiencia y seguridad de la cadena de bloques.

La diferencia entre la versión 1.0 y 2.0 de Ethereum radica en el cambio de mecanismo en cuanto a consenso para añadir nuevos bloques a la cadena de bloques. Mientras que Ethereum 1.0 utiliza un mecanismo de consenso llamado PoW (Proof of Work) o prueba de trabajo, en Ethereum 2.0 se utiliza un mecanismo llamado PoS (Proof os Stake) o prueba de participación.

Bitcoin utiliza PoW como mecanismo para el consenso de nuevos bloques, por lo que el primero en resolver el desafío es el que obtiene recompensas, en este caso bitcoins. Ethereum 2.0 propone utilizar PoS como mecanismo de consenso, donde en lugar de tener que resolver un desafío, lo que existe es la figura de validadores, los cuales validaran la transición por la cual se añadirán nuevos bloques a la cadena de bloques. Para poder ser validador necesitas tener participación dentro de la cadena de bloques, esta participación de consigue utilizando la cadena de bloques y por lo tanto la moneda asociada a dicha cadena de bloques. 

Ethereum 2.0 no ha sido la primera cadena de bloques en utilizar PoS como mecanismo de consenso de nuevo bloques o mecanismo de validación de transacciones, en el mercado ya existen cadenas de bloques que hacen uso de él.

PoS como ya hemos nombrado antes, se basa en la suposición de que quienes poseen más participación en la cadena de bloques, en este caso pueden ser smart contracts, criptomonedas o dapps, están especialmente interesados en el buen funcionamiento de la red, por lo que son los más indicados para tener la responsabilidad de proteger el sistema de la cadena de bloques contra posibles ataques. El proceso es aleatorio entre los usuarios que más participación poseen y no depende mayormente del poder computacional del usuario.

¿Pero entonces que recompensa obtienen los validadores? En el caso de PoW lo que obtienen normalmente son criptomonedas asociadas a dicha cadena de bloques, en el caso de PoS lo que obtienen es menor dificultad a la hora de encontrar nuevos bloques.

Entonces alguien puede pensar que la persona que tenga en este caso mucha participación y por lo tanto mucha divisa asociada a esa cadena de bloques será validador siempre y por lo tanto puede no llegar a ser un consenso. Es por ello que se han desarrollado 2 algoritmos de PoS:

  • Participación pura: Consiste en simplemente hacer la construcción de bloques más fácil para aquellos que pueden demostrar que controlan una gran cantidad de la moneda. La desventaja de este enfoque es que después de construir un bloque, el más rico siempre tiene más facilidad para encontrar nuevos bloques.
  • Prueba de depósito (Proof-of-deposit): En este enfoque cuando las monedas son usadas por los creadores de bloques para crear un bloque, son congeladas hasta que se confirmen cierta cantidad de bloques. En lugar de recompensar a un usuario por almacenar monedas que no han sido gastadas durante un largo tiempo, el sistema recompensa a los usuarios que están dispuestos a tener monedas inmóviles durante un largo periodo de tiempo.

Los algoritmos de PoS están en constante investigación, ya que plantean una serie de problemas:

Problema de nada en juego

Consiste en que realmente confirmar bloques no supone un coste real por lo que no se incentiva el consenso.

En PoW un ataque fallido tiene un coste significativo porque el usuario podría haber ganado las recompensas al validar una transacción, en lugar de malgastar los recursos en el ataque fallido. Sin embargo, en PoS el coste no existe. Un usuario puede usar su participación para validar una transacción en la actual cadena más larga, mientras simultáneamente intenta crear una bifurcación de la cadena. Si su cadena alternativa tiene éxito habrá consumido una cantidad grande de su participación. Si falla, el registro de su intento fallido no será reflejada en la cadena más larga.

Exposición de monederos

Con PoS la probabilidad de encontrar un bloque de transacciones es directamente proporcional a la cantidad de monedas que uno tiene acumuladas, lo cual en primera instancia implica que el monedero esté conectado a la red, lo cual a su vez implica que el monedero está expuesto a posibles problemas de seguridad.

Se presentan soluciones a este problema con la figura de representantes y la aparición de DPoS o prueba de participación delegada. En esta variante se permite a los nodos delegar los privilegios en representantes, para no tener exposición.

Ahorro

En algunos sistemas que usan PoS es posible ahorrar para conseguir mucho poder a la hora de añadir nuevos bloques, y por lo tanto, intentar crear una bifurcación de la cadena.

Esto se soluciona con limites de tiempo para los cuales son válidas tu participación (es decir las monedas asociadas a la cadena de bloques) en la cadena y con el añadido de checkpoints o puntos de revisado, donde cada x tiempo se valida la cadena para comprobar que no hay bifurcaciones.

Y como ya ocurre en el PoW, el ataque del 51%

Si un usuario obtiene el 51% del factor de participación, entonces puede mantenerlo para siempre, tomando de esta forma el control de la cadena. En el algoritmo de PoW, incluso si existiera un usuario con el 51% siempre sería posible que algún nuevo usuario pudiera emerger con con mayor capacidad de cómputo y reducir la mayoría del usuario del 51%. Con PoS es mucho más difícil evitar este problema, pero aún así existen métodos para evitar que esto ocurra.

Veremos como se desarrolla Ethereum 2.0 a lo largo del año que viene. Mientras tanto hoy he decidido escribir sobre este tema porque me parecía muy interesante, espero que a los que están leyendo esto también se lo parezca.

Un criptosaludo a todos :)


Comentarios

Entradas populares de este blog

Realizando hash con PowerShell

Cracking hashes con Hashcat - 4

Cracking hashes con Hashcat - 2