¡Hola a todos!

Como bien ustedes deben saber, Ethereum es una red gigantesca de ordenadores conectados entre sí, sin embargo que sea una red totalmente descentralizada no implica que se trate de un sistema caótico en el que no haya control sobre nada de lo que sucede, muy por el contrario, Ethereum tiene una excelente forma de llevar el control sobre lo que es cierto y es a través de la famosa Blockchain (una tecnología que actúa como libro de contabilidad distribuido donde todas las transacciones de la red han sido registradas y validadas por cada uno de los ordenadores conectados a la red).

Las validaciones en la red se producen mediante un algoritmo de consenso llamado Prueba de Trabajo, que hasta la fecha ha demostrado ser eficiente manteniendo la red completamente segura, pero que al parecer no ha sido lo suficientemente amigable con el gasto energético. Para los desarrolladores de Ethereum la Prueba de Participación parece un buen candidato. Vamos a ver en que consiste de cada uno 😉

Prueba de Trabajo (PoW)

En la prueba de trabajo la probabilidad de encontrar un bloque de transacciones es proporcional a la capacidad de cómputo del minero. En un comienzo este algoritmo funcionaba correctamente ya que los participantes de la red eran menos, por lo que la capacidad de cómputo y gasto energético necesario para encontrar un bloque de transacciones era inferior a la actual (dificultad de minado). Recordemos: Más dificultad = Más capacidad de cómputo = Más costo eléctrico.

La única forma de vulnerar este algoritmo de consenso es mediante un ataque del 51%. Esto quiere decir que para que un atacante pueda “perturbar” la información almacenada en la blockchain original, debe poseer una capacidad de cómputo que sea equivalente a la mitad de la capacidad de cómputo actual de la red más 1, algo totalmente imposible hasta el momento.

La dificultad de minado inicial en Ethereum era de 0.121 TH (30 de Julio de 2015), actualmente 1619.968 TH (7 de Agosto de 2017). Gráfico del crecimiento de la dificultad para encontrar un bloque de transacciones en Ethereum:

Prueba de Participación (PoS)

En la prueba de participación la probabilidad de encontrar un bloque de transacciones es proporcional a la cantidad de ETHER que el minero posea. A mayor cantidad de ETHER, menor es la dificultad de minado, por ende menor gasto energético. Esta rebaja de dificultad se da porque la red asume que quienes poseen más cantidad de ETHER están más interesados en mantener la red viva y en correcto funcionamiento. La única forma de vulnerar este algoritmo de consenso es almacenando una gran cantidad de ETHER emitido.

Sin embargo no todo parece ser bueno en la implementación de este algoritmo de consenso, para ser implementado los desarrolladores de Ethereum Project deben solucionar una serie de problemas que PoS presenta…

Problemas de PoS (Wikipedia)

En la mismísima Wikipedia podemos encontrar las desventajas de este algoritmo de consenso:

Nada en juego

El problema de nada en juego, en inglés nothing-at-stake o también stake-grinding consiste en que realmente confirmar bloques, salvo la consideración de que están dañando el sistema del que son participantes, no tiene ningún coste real por lo que no se incentiva el consenso. Veamos un ejemplo:​

Supongamos que un atacante con una proporción de monedas inferior al 50% intenta crear una cadena alternativa de k bloques. Este ataque fallará con una probabilidad que crece exponencialmente con k. En la minería de prueba de trabajo un ataque fallido tiene un coste significativo porque el minero podría haber ganado las recompensas al minar en lugar de malgastar los recursos en el ataque fallido. Sin embargo en este tipo de algoritmos el coste no existe. Un minero puede usar su participación para minar 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. Una actuación racional de un minero podría ser constantemente intentar hacer una bifurcación de la cadena

​ Se han hecho varios intentos para solucionar este problema. La mayoría de esquemas utilizan puntos de control para prevenir bifurcaciones largas lo cual es una pequeña amenaza a considerarse un protocolo de consenso descentralizado. Ethereum ha propuesto una técnica a la que llama Slasher que permite el castigo a los mineros que intenten bifurcar la cadena.

Exposición de las monedas

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.​ Para intentar evitar este problema se ha desarrollado una variante del protocolo a la que se llama prueba de participación delegada, también conocido por las siglas DPoS (del inglés Delegated Proof of Stake). En esta variante se permite que los nodos propietarios de monedas deleguen sus privilegios para construir nuevos bloques en un nuevo tipo de nodos llamados representantes. Ejemplo de sistema usando este algoritmo es BitShares.

Ahorrar para atacar

En algunos sistemas que usan PoS es posible ahorrar derechos para conseguir mucho poder de minado para poder introducir una bifurcación de la cadena. Esto es posible incluso se usan sistemas como Slasher para desalentar las bifurcaciones. Para evitar este tipo de ataques Peercoin limita el parámetro edad a 90 días cuando calcula los coin-age.

Ataque del 51%

Si un minero obtiene el 51% de la factor de participación, entonces puede mantenerlo para siempre minando encima de sus propio bloques, tomando de esta forma el control de la cadena. Incluso si un participante emergiera, minando recompensas y transacciones, el minero del 51% obtendrá esta nueva participación y lentamente se aproximará hasta llegar al 100%. En el minado por prueba de trabajo, incluso si existiera un minero con el 51% siempre sería posible que algún nuevo minero pudiera emerger con más equipamiento de minería y energía y reducir la mayoría del minero del 51%. Con PoS es mucho más difícil evitar este problema


¿Para cuando Ethereum tendrá PoS?

Vitalik Buterin dice que no existe una fecha exacta para la implementación de la Prueba de Participación, pero que esto podría ocurrir a fines de 2017 mediante una actualización del software llamada Casper.

¿Y a tí qué te parece la migración de Prueba de Trabajo a Prueba de Participación? Déjanos tu opinión más abajo 😀

Saludos etherians!