Algoritmos de consenso en blockchain explicados
Las blockchains fueron posibles gracias al desarrollo de un mecanismo crucial conocido como algoritmo de consenso, que facilita la coordinación entre usuarios o máquinas en un entorno distribuido. La función principal de este algoritmo es asegurar que todos los agentes del sistema puedan ponerse de acuerdo en una única fuente de la verdad, incluso si algunos agentes fallan. Esta tolerancia a fallos es esencial para el éxito del sistema.
En contraste con una configuración centralizada, donde una sola entidad tiene control total sobre el sistema y puede hacer cambios a su antojo, un formato descentralizado presenta un desafío significativo. En el caso de una base de datos distribuida, por ejemplo, ¿cómo podemos acordar qué entradas deben añadirse?
La respuesta reside en desarrollar un sistema de gobernanza complejo que permita a desconocidos que no se confían entre sí llegar a un consenso. Superar este desafío fue un hito importante en el desarrollo de las blockchains, que dependen de los algoritmos de consenso para garantizar la integridad del sistema.
Algoritmos de consenso en cripto
La blockchain actúa como la base de datos de las criptomonedas, registrando los saldos de los usuarios. Todos los nodos de la red deben mantener una copia idéntica de la base de datos para evitar información conflictiva, lo que socavaría todo el propósito de la red de criptomonedas.
Se utiliza criptografía de clave pública para asegurar que los usuarios no puedan gastar las monedas de otros. Sin embargo, sigue siendo necesaria una fuente única de la verdad para que los participantes de la red determinen si los fondos ya han sido gastados.
Para coordinar a los participantes en Bitcoin, su creador Satoshi Nakamoto propuso un sistema de Prueba de Trabajo (Proof of Work, PoW), que explicaremos a continuación. Pero antes de eso, examinemos los rasgos comunes de los algoritmos de consenso.
En primer lugar, los validadores que desean añadir bloques deben aportar un stake, lo que desalienta comportamientos deshonestos. El stake puede ser potencia de cómputo, criptomoneda o reputación. Si hacen trampa, perderán su stake. Existe una recompensa disponible, que consiste en la criptomoneda nativa del protocolo, la cual puede comprender comisiones pagadas por otros usuarios, unidades de criptomoneda recién generadas o ambas.
Por último, la transparencia es vital para detectar trampas. Debe ser costoso para los validadores producir bloques, pero barato para que otros los validen. Esto asegura que los validadores estén controlados por los usuarios comunes.
Los algoritmos de consenso más comunes
Proof of Work
Proof of Work es un algoritmo de consenso clásico que se popularizó con Bitcoin, aunque existe desde hace tiempo. Este algoritmo requiere que los validadores, llamados mineros, hasheen los datos que quieren añadir a la cadena hasta encontrar una solución específica. Un hash es una cadena de letras y números generada cuando los datos se procesan con una función hash, y cambiar incluso un pequeño detalle producirá un resultado completamente distinto.
El protocolo Proof of Work establece ciertas condiciones para que un bloque sea válido. Por ejemplo, un bloque cuyo hash empiece con 00 podría considerarse válido. Para crear un bloque que cumpla esos criterios, los mineros necesitan forzar combinaciones de entradas, ajustando parámetros de los datos hasta obtener el hash correcto. En las blockchains principales, el listón está muy alto, y los mineros necesitan mucho hardware especializado de hashing y electricidad para competir.
En el sistema Proof of Work, los mineros deben aportar un stake en forma del costo de las máquinas y la electricidad requerida para minar. Los ASICs, o hardware de minería especializado, son caros y no tienen uso fuera de la minería de criptomonedas. Sin embargo, la minería puede generar recompensas significativas por añadir con éxito un nuevo bloque a la blockchain.
Es fácil para la red verificar si un minero ha creado un bloque válido. Aunque hayan probado trillones de combinaciones para obtener el hash correcto, la red solo necesita ejecutar los datos a través de la función una vez. Si los datos producen un hash válido, el minero recibe la recompensa; si no, la red rechazará el bloque.
Proof of Stake
Una alternativa a Proof of Work, conocida como Proof of Stake (PoS), se propuso en los primeros días de Bitcoin. Elimina la necesidad de hardware especializado, el consumo masivo de energía y los mineros. En su lugar, requiere que los stakers posean una cantidad mínima de criptomoneda para ser elegibles para stakear.
Una vez elegible, el staker bloquea sus fondos en una cartera y acuerda con otros validadores qué transacciones irán en el siguiente bloque. El protocolo elige entonces un bloque, y el validador con el bloque seleccionado recibe una parte de las comisiones de transacción según su stake. Cuantos más fondos bloqueados, mayor será la ganancia. Hacer trampa conlleva la pérdida de una porción o la totalidad del stake.
El Proof of Stake puro solo se ha usado en criptomonedas menores, y su viabilidad como alternativa a PoW no está del todo clara. Generalmente, no hay monedas recién creadas como parte de la recompensa para los validadores. La moneda nativa de la blockchain debe por tanto emitirse de otra forma, como una distribución inicial (por ejemplo, una ICO o IEO) o haciendo que el protocolo se lance con PoW antes de pasar posteriormente a PoS.
La transición a PoS es un campo de teoría de juegos e incentivos financieros. Solo será factible en una red activa, ya que cualquiera con el conocimiento para "hackear" un sistema PoS solo lo intentaría si pudiera obtener beneficios.
Otros algoritmos de consenso
Existen una variedad de algoritmos de consenso además de Proof of Work y Proof of Stake. Estas alternativas tienen cada una sus ventajas y desventajas. Aquí hay una lista de algunas de ellas:
- Delayed Proof of Work
- Leased Proof of Stake
- Proof of Authority
- Proof of Burn
- Delegated Proof of Stake
- Hybrid PoW/PoS Consensus
Conclusión
La utilización de mecanismos de consenso es vital para el funcionamiento de los sistemas distribuidos. Se considera ampliamente que la innovación más importante de Bitcoin fue la introducción de Proof of Work, que facilita el acuerdo entre usuarios sobre un conjunto compartido de hechos.
Los algoritmos de consenso son la base de los sistemas de moneda digital y las blockchains, permitiendo a los desarrolladores ejecutar código en una red distribuida. Son un componente fundamental de la tecnología blockchain, y la viabilidad a largo plazo de las redes existentes depende de ellos.
Proof of Work sigue siendo el algoritmo de consenso más prevalente, y todavía no ha surgido una alternativa más confiable o segura. No obstante, hay una enorme cantidad de investigación y desarrollo centrados en reemplazar PoW, y es probable que surjan más alternativas en los próximos años.