Monedas

Criptomonedas.

Opinión

Entendiendo la prueba de participación delegada (DPOS)

-Rafael Ochoa

Los algoritmos de consenso son uno de los aspectos más importantes para las blockchains públicas. Los más conocidos son la prueba de trabajo y de la prueba de participación en la implementación llamada on-chain based. Hoy voy a explicar el funcionamiento de la prueba de participación delegada (DPOS, por sus siglas en inglés), que está basada en protocolos tolerantes a fallas bizantinas (BFT) desarrollados para sistemas distribuidos anteriores a blockchain.

¿Qué son los protocolos BFT?

Los sistemas distribuidos experimentan distintos tipos de fallas, que pueden estar relacionados con problemas internos de los elementos de la red, latencia en la comunicación o comportamientos arbitrarios de algunos de los participantes. Estas últimas se denominan fallas bizantinas, y ocurren cuando alguno de los elementos de la red actúa maliciosamente.

Existe un campo de estudio en la computación distribuida enfocado a diseñar sistemas tolerantes a fallas bizantinas, que es una condición necesaria para aplicaciones en las cuales el funcionamiento de la red no está bajo control. Los protocolos que cumplen estas condiciones son llamados BFT (por las siglas en inglés de tolerancia a fallas bizantinas).

Aunque existen variaciones, el comportamiento general de los protocolos BFT se basa en la elección de líderes rotativos que proponen las transacciones, mientras los demás participantes votan para llegar a una mayoría que permita aceptarlas o rechazarlas.

Este esquema de funcionamiento separa la elección del líder del procesamiento de transacciones, haciendo que estos sistemas sean muy rápidos para procesar transacciones y no sufran el problema de escalabilidad que afecta a las blockchains públicas actuales.

Image

Sin embargo, las siguientes razones impiden la implementación de este tipo de protocolos en blockchains públicas:

  • Para poder definir una mayoría es necesario conocer de antemano la cantidad de participantes, así que la red no puede ser completamente abierta.
  • El poder de voto de cada participante está ligado a su dirección IP y no a algún recurso escaso, de forma que un participante malintencionado podría multiplicar su poder de voto controlando varias identidades, en lo que se conoce como Ataque Sybil.
  • Para llegar a una mayoría se requiere de varias rondas de comunicación entre todos los participantes de la red y esto agrega una latencia importante si la cantidad de participantes es muy alta.

¿En qué consiste DPOS?

DPOS es una solución para que los protocolos BFT puedan ser implementados en blockchains públicas, a fin de atacar los problemas relacionados con la escalabilidad que presentan los algoritmos utilizados actualmente.

Para hacer esto posible, todos los participantes de la red eligen a unos testigos que forman un grupo que cumple las condiciones requeridas para que el protocolo BFT pueda ser implementado, ya que su cantidad es definida y limitada y existe confianza parcial en ellos.

Los testigos definen una rotación de líderes, cada testigo tiene un turno dentro de la rotación para producir un bloque y cobra una recompensa por ello. Si el testigo no está disponible cuando llega su turno, debe esperar que le llegue otra vez su lugar en la rotación, y no se generará ningún bloque en el turno perdido.

El poder de voto de cada participante de la red es proporcional a su participación, por esto se considera un derivado de los algoritmos de prueba de participación. Para favorecer la descentralización, es habitual que las redes basadas en DPOS sometan a votación decisiones relacionadas con su funcionamiento, que pueden incluir las recompensas, la cantidad de testigos, el comportamiento ante bifurcaciones de la red y otras, además de que permiten penalizar a los testigos si no se comportan de acuerdo a lo esperado.

¿Entonces DPOS es el mejor algoritmo de consenso?

DPOS resuelve uno de los problemas más relevantes que tiene blockchain, al ofrecer una velocidad de transacción muy alta con bajo consumo eléctrico. Sin embargo, para lograrlo hace un sacrificio en la descentralización, ya que el procesamiento de bloques depende de un número limitado de testigos, que pueden llegar a comportarse como un ente central.

Blockchain sigue siendo una tecnología nueva, y el campo de los algoritmos de consenso está siendo objeto de mucha investigación. Ninguna de las soluciones existentes es ideal para todos los casos, pero es positivo que existan opciones diversas que permitan a cada usuario decidir cuál es la opción más adecuada de acuerdo a los requerimientos de su aplicación particular.

Nuestras redes

© 2018 CirptoFáci. Todos los derechos reservados.Desarrollado por xoles.com