¿Qué es el mecanismo de consenso de una Blockchain?

Rubén Colomer, 3 junio 2021

La blockchain o cadena de bloques es un sistema distribuido y descentralizado. Dado que la cadena de bloques puede incluir transacciones financieras y acuerdos comerciales, es importante que todas las partes implicadas puedan rastrear las transacciones y asegurarse de que son reales. Por lo tanto, uno de los componentes más importantes de la cadena de bloques es la idea del consenso de grupo.

La cadena de bloques está diseñada para ser un libro de contabilidad histórico compartido y sincronizado, lo que significa que en algún momento tiene que haber una decisión final sobre lo que debe y no debe incluirse en el registro oficial. Como la cadena de bloques está descentralizada, no hay una “autoridad superior” que pueda sellar y finalizar el contenido de un bloque de la cadena de bloques.

Consenso

Aunque pueda parecer muy moderno, las blockchains suelen ser sistemas muy ineficientes ya que estamos pidiendo a múltiples nodos, a veces decenas de miles de nodos informáticos, que repitan todos el mismo trabajo. Todos guardan una copia de los mismos datos.

Sin embargo, la causa de esta ineficiencia es la búsqueda de un sistema de consenso ya que si podemos conseguir que todos o la mayoría de esos nodos se pongan de acuerdo sobre cuál es la verdad, podemos tener mucha confianza en que esa es realmente la verdad, que ese registro no ha sido manipulado o alterado o cambiado de alguna manera. Por lo tanto, el consenso es la base de la cadena de bloques.

Esencialmente, cuando hablamos de consenso, puedes pensar en cada bloque de una cadena de bloques como si fuera una hoja de papel. Tiene una cantidad fija de espacio. Escribimos una transacción en cada línea, y cuando esa hoja de papel está llena, es importante que todos, como grupo, nos reunamos y comparemos nuestras diferentes hojas y seleccionemos la versión con la que la mayoría esté de acuerdo.

El consenso es una forma de garantizar que los nodos de la red verifiquen las transacciones y estén de acuerdo con su orden y existencia en el libro mayor. En el caso de aplicaciones como una criptomoneda, este proceso es fundamental para evitar el doble gasto u otros datos no válidos.

Métodos de consenso

Existen varios métodos diferentes para que todos estos nodos lleguen a un consenso. La principal diferencia entre los mecanismos de consenso es la forma en que delegan y recompensan la verificación de las transacciones. Es importante mencionar que la mayoría de los ecosistemas de blockchain tienen un híbrido de diferentes mecanismos de consenso. No es necesario elegir uno sobre otro.

Proof of Work o Prueba de Trabajo

Satoshi Nakamoto inventó un algoritmo de consenso llamado Proof of Work (PoW) para el uso de Bitcoin. Sin embargo, tiene algunas limitaciones.

Actualmente, las blockchains de Proof of Work más rápidas son capaces de procesar entre 50 y 20 transacciones por segundo (TPS), lo que puede parecer mucho hasta que te das cuenta de que las redes modernas de procesamiento de pagos como Mastercard y Visa pueden escalar hasta más de 70.000 transacciones por segundo.

Como se puede ver, para competir con la tecnología convencional, blockchain necesita realmente acelerar ese ritmo de transacciones.

La seguridad del consenso de la Prueba de Trabajo se basa en la suposición de que nadie controla más de la mitad de los recursos computacionales de la red de minería de un blockchain (ataque del 51%).

Hay muchas propuestas de métodos de consenso alternativos para alcanzar ese tipo de escala. Hay cosas en producción ahora mismo como Tangle, que utiliza una solución sin bloques, y también hay métodos de consenso como Proof of Stake, Delegated Proof of Stake, Practical Byzantine Fault Tolerance, Directed Acyclic Graphs, Proof of Elapsed Time, Proof of Authority, Proof of Activity, Proof of Burn, Proof of Capacity, etc.

Lo que hay que entender es que es este consenso, esta idea de pedir a todos estos nodos, potencialmente decenas de miles de nodos, que repitan el mismo trabajo y luego se reúnan periódicamente y se pongan de acuerdo en lo que la mayoría seleccione como la versión correcta de la verdad, lo que da a blockchain ese alto nivel de confianza y lo convierte en un almacén de registros tan seguro.

En Proof of Work o PoW, los usuarios de la red blockchain que quieren crear el siguiente bloque (y ganar la recompensa) se llaman mineros. Para ganar el derecho a minar un bloque, los mineros compiten para encontrar una solución aceptable a un problema criptográfico “difícil”.

Por lo tanto, Proof of Work incentiva a los mineros a utilizar tantas máquinas de minería como sea posible para maximizar la probabilidad de que sean los primeros en encontrar una solución al problema. Dado que los ordenadores de minería requieren dinero para su compra y para su funcionamiento, la cantidad de control que un usuario puede ejercer sobre la red de blockchain está limitada por la cantidad de dinero que tiene disponible para invertir en equipos de minería.

Proof of Stake

Los usuarios de una red de blockchain Proof of Stake o PoS pueden “apostar” o prometer no utilizar los tokens que poseen. Esto les da la oportunidad de ser seleccionados como el siguiente usuario para crear un nuevo bloque y ganar la recompensa. Un forjador de bloques se selecciona de forma pseudoaleatoria entre todos los usuarios que han apostado parte de sus activos, y el proceso de selección está sesgado en función del tamaño de la apuesta.

Por ejemplo, imaginemos que una rueda se divide en secciones en las que el tamaño de una sección es proporcional al tamaño de la apuesta de un usuario. El siguiente creador de bloques se elegiría haciendo girar la rueda y viendo qué sección sale en primer lugar. En Proof of Stake, cada usuario tiene una copia de la rueda y todas están sincronizadas para que cada persona pueda determinar independientemente la selección y obtener el mismo resultado. Por eso Proof of Stake utiliza un proceso de selección pseudoaleatorio en lugar de aleatorio.

En Proof of Stake, un atacante necesita controlar la suficiente cantidad de moneda apostada para garantizar que será seleccionado para crear cada bloque. Dado que la criptomoneda es un activo limitado, comprar suficiente cantidad para hacer esto es caro, lo que hace que los ataques a los sistemas Proof of Stake sean económicamente inviables. Además, no es necesario tener tanta potencia de cálculo en los sistemas PoS (comparado con los PoW).

Con Proof of Stake tenemos “Validadores”, en lugar de “Mineros”.

Con PoS, tenemos validadores que envían un tipo especial de transacción a través de la red, que se bloquea en un depósito (también conocido como pool de validadores) y que se llama “staking”.

Una vez que este validador ha apostado la cantidad de tokens deseada, entonces un algoritmo selecciona de forma pseudo-aleatoria un validador durante cada intervalo de tiempo (por ejemplo, cada periodo de 10 segundos podría ser un intervalo de tiempo), y asigna a ese validador el derecho a crear un único bloque. Este bloque debe apuntar a algún bloque anterior al final de la cadena más larga anterior, y con el tiempo, la mayoría de los bloques convergen en una única cadena en constante crecimiento.

Una vez seleccionado el validador, el siguiente paso para crear un bloque es validar una agrupación de transacciones. Una vez completado esto, recibe sus fondos apostados de vuelta, más las tasas de transacción (a veces recompensas cuando la oferta de monedas se infla de vez en cuando) para ese bloque.

Si el validador decide actuar de forma incorrecta, como un mal actor, y valida transacciones fraudulentas, pierde su participación en ese momento y es expulsado del grupo de validadores en adelante (perdiendo los derechos de falsificación). Se trata de un mecanismo de incentivo integrado para garantizar que forjan transacciones válidas y no fraudulentas.

Resumen

La cadena de bloques es ineficiente y redundante, y eso es por diseño. Eso es lo que nos da la inmutabilidad. Y otra cosa que nos da es un nivel extremo de tolerancia a los fallos.

En su esencia, blockchain funciona en una arquitectura de red entre pares en la que cada nodo se considera igual a todos los demás. Y a diferencia de los modelos tradicionales cliente-servidor, cada nodo actúa como cliente y como servidor.

Como cualquier sistema peer-to-peer, tenemos un grado extremadamente alto de tolerancia a los fallos. De hecho, si tenemos dos o más nodos en línea en un sistema de cadena de bloques, seguimos teniendo una cadena de bloques que funciona. Así que, si buscas una plataforma de soluciones que te ofrezca ese tipo de increíble tolerancia a los fallos, si quieres desplegar una solución en áreas con una infraestructura menos que ideal o en condiciones en las que los nodos pueden conectarse y desconectarse con frecuencia, entonces blockchain puede ser una plataforma realmente buena para tener en cuenta.

Para ponerse de acuerdo, los pares utilizan un sistema de consenso que consiste en una serie de algoritmos. La red Bitcoin utiliza un consenso PoW que demanda mucha potencia de cálculo y, además, es bastante lento. En la actualidad, otras blockchains diferentes a la del Bitcoin utilizan otros métodos de consenso más modernos que tienen un mayor rendimiento y mayor seguridad entre los que destaca el PoS.

Lemming at Work puede usar cookies para recopilar estadísticas, optimizar la funcionalidad del sitio y ofrecerte publicidad basada en tus intereses. Si sigues navegando estarás aceptando su uso. Más información de nuestras políticas.