Mecanismos de Consenso Explicados

Publicado en

Este artículo fue originalmente publicado por el autor en Hackernoon. Fue traducido, editado y extendido por Software Guru con el permiso del autor [1].

Siendo el blockchain un libro contable distribuido, a diferencia de centralizado, requerimos establecer un mecanismo para que todos los participantes en la red estén de acuerdo en el contenido sobre el contenido del libro contable. Esto es lo que se conoce como un mecanismo de consenso.

El propósito de un mecanismo de consenso es verificar que la información agregada al libro sea válida. Esto asegura que el siguiente bloque que se agregue represente correctamente y hasta el último momento todas las transacciones de la red, previniendo así que se registren gastos dobles o datos inválidos.

Conforme las plataformas blockchain han ido madurando, han surgido distintos mecanismos de consenso, cada uno con sus pros y contras. La principal diferencia entre ellos es la forma en la que delegan y recompensan la verificación de transacciones.

Los mecanismos de consenso más populares actualmente son el de “prueba de trabajo” (proof of work, PoW) y el de “prueba de participación” (proof of stake, PoS), los cuales explicaré a continuación. Al final también menciono otros mecanismos que están surgiendo.

Proof of Work (PoW)

El concepto de prueba de trabajo ya existía antes de la llegada de las criptomonedas. La idea fue originalmente publicada por Cynthia Dwork y Moni Naor en un artículo en 1993, aunque fue hasta 1999 cuando fue bautizada como “Proof of Work” por Markus Jakobsson.

En el whitepaper de Bitcoin de Satoshi Nakamoto, se propone el uso de un sistema de prueba de trabajo para prevenir que alguna entidad pueda obtener un control mayoritario de una red. La aplicación de este mecanismo es fundamental para el Bitcoin, ya que permite obtener consenso distribuido entre entidades desconocidas.

A grandes rasgos, el minado en Bitcoin funciona de la siguiente manera:

  1. Un grupo de transacciones se agrupan en un espacio de memoria (mempool).

  2. Los mineros resuelven acertijos (puzzles) matemáticos para verificar que las transacciones en el mempool sean legítimas.

  3. El primer minero en resolver un acertijo obtiene la recompensa en forma de nuevas monedas así como una comisión de la transacción.

  4. El mempool verificado, ahora considerado un bloque, se agrega al blockchain.

Los acertijos que los mineros deben resolver tienen ciertas características, que definen al sistema Proof of Work:

Son asimétricos, es decir que es difícil obtener la respuesta pero es sencillo validar si esta es correcta.

No requieren habilidad, solo se resuelven con fuerza bruta. Esto busca que los mineros no ganen ventaja injusta. La única forma en la que un minero aumenta su probabilidad de resolver un acertijo es adquiriendo mayor poder computacional.

Los parámetros del acertijo son actualizados periódicamente para mantener constante el tiempo de bloque. Por ejemplo, el protocolo Bitcoin tiene un tiempo objetivo de 10 minutos por bloque, entonces conforme la red de cómputo se hace más poderosa, también se aumenta la dificultad para mantener constante el tiempo en que se logra resolver.

Proof of Stake (PoS)

En los sistemas con prueba de participación no se requiere resolver un acertijo matemático, sino que el creador de un nuevo bloque se escoje de forma determinística basándose en su participación; la participación se mide en base a cuántas monedas o tokens posee. Por ejemplo, una persona que posee 50 monedas tiene 5 veces más probabilidad de ser escogida para validar el siguiente bloque que una persona con 10 monedas.

La principal ventaja de este sistema es menor consumo de energía ya que se elimina el proceso de minado por medio de la resolución de acertijos. Adicionalmente, se fomenta que quienes hagan el minado sean aquellos que están realmente interesados en la red, a diferencia de un sistema PoW donde los mineros pueden no tener ningún interés en la red más allá de obtener una compensación por su trabajo.

Es importante destacar que en una red PoS no se crean nuevas monedas sino que todas las monedas son creadas desde un inicio. Así que a quienes hacen la validación de bloques se les recompensa por medio de comisiones por transacción, en lugar de con monedas nuevas. Dado que no se está minando nuevas monedas, a estas personas que hacen la validación en un sistema PoS se les llama forjadores (forger).

Comparación

Costo y energía

Los sistemas PoS tienen el potencial para consumir mucho menos energía que los PoW. Por ejemplo, la red Bitcoin tiene un consumo anual de energía de 57.6 TWh, que es similar al consumo de todo el país de Colombia.

Nota de Software Guru: El consumo mencionado por el autor fue en abril de 2018. Al momento de publicar este artículo, en agosto del 2018 el consumo anual ya es de 73.1 TWh [2].

Seguridad

Los sistemas PoS son mucho más nuevos que los PoW y por lo tanto no han sido probados tan rigurosamente.

Generar copias (forks) de un blockchain frecuentemente no es bueno para la salud de la red y genera inestabilidad. En los sistemas PoW, cuando se copia un blockchain los mineros tienen que decidir entre continuar soportando el original o moverse al nuevo, ya que si quisieran soportar ambos tendrían que dividir sus recursos computacionales, lo cual no es rentable. De esta manera, los sistemas desincentivan los forks naturalmente.

En comparación, cuando se copia un sistema PoS, los validadores reciben una copia duplicada de su participación (monedas o tokens) en el nuevo blockchain. Si un validador se autentica en ambos lados, podría obtener el doble de comisiones así como hacer gastos duplicados. Esto es porque los participantes no requieren aumentar su participación para poder validar transacciones en distintas copias del blockchain, así que no hay ningún incentivo para prevenir este comportamiento negativo.

Una solución posible a este problema es requerir un depósito que se mantenga congelado durante cierto tiempo. Ethereum planea moverse de PoW hacia un sistema PoS utilizando un nuevo protocolo de consenso llamado Casper que requerirá que los validadores hagan un depósito mínimo para poder participar. Si el protocolo determina que un participante ha violado las reglas, como por ejemplo participar en varias copias, entonces confiscaría el depósito.

Centralización

Una preocupación que va en aumento en el caso de los sistemas PoW es la centralización. Si la validación requiere un gran poder computacional que solamente es alcanzable por grandes centros de cómputo con grandes economías de escala, entonces el control del blockchain queda en manos de unos cuantos, lo cual es justamente lo opuesto de lo que se desea en un blockchain.

Otros mecanismos

Delegated Proof of Stake (DPOS). Es una variente de PoS donde los poseedores de tokens escogen delegados que crearán los bloques y operarán la red en representación suya. Cada token corresponde a un voto, así que los miembros con más tokens tienen más poder para escoger delegados.

Proof of Elapsed Time (PoET). Se basa en el principio de una lotería donde todos los nodos tienen la misma probabilidad de ser elegidos para validar un bloque. Funciona en base a tiempos de espera aleatorios. Básicamente, todos los participantes en la red generan un tiempo de espera aleatorio y se ponen a dormir durante dicho tiempo, y el primero que despierte -es decir, el que tuvo el tiempo más corto- gana el derecho de validar el siguiente bloque y le avisa al resto de la red. Su ventaja es que es más justo con todos los nodos y consume poca energía [3].

Federated Byzantine Agreements. Uno de los mecanismos más novedosos es el denominado Federated Byzantine Agreement (FBA), utilizado por el protocolo Stellar [4].  Es un mecanismo de consenso que asume que los participantes conocen a otros participantes y eligen en quienes confiar. El nodo en cuestión espera a que los nodos en los que confía se pongan de acuerdo sobre una transacción para entonces ellos mismos también aceptarla. A su vez, cada uno de esos nodos esperó a que los nodos en los que ellos confían se pusiera de acuerdo sobre la transacción. Si cad auno de los nodos en la red hace esto, se crea de forma orgánica una red de validación donde se excluye a los que tienen mal desempeño, ya que no son incluidos en grupos de confianza.

Referencias

  1. T. Schumann. “Consensus Mechanisms Explained: PoW vs. PoS“, Hackernoon, abril 2018. http://swgu.ru/xa

  2. “Bitcoin Energy Consumption Index”, Digiconomist. http://swgu.ru/xb

  3. “Proof of Elapsed Time”, Investopedia. http://swgu.ru/xc

  4. “On Worldwide Consensus, a Stellar Journey”, Stellar.org. http://swgu.ru/xd