No paramos de escuchar que Bitcoin, con su modelo PoW, tiene un alto coste energético o que Ethereum va a convertirse en PoS, pero ¿qué significa cada uno de estos modelos de consenso?
La semana pasada cuando hablábamos de blockchain decíamos que a la hora de validar transacciones las redes utilizan criptografía, en especial, algunos algoritmos concretos que permiten que esas transacciones sean confirmadas por la red y que nodos de la red no puedan tomar decisiones por encima del interés del resto.
Pongamos el ejemplo de Bitcoin para entender cómo funciona. Las transacciones en esta red se ponen en una “cola de espera” llamada mempool. Durante la creación de cada bloque, cada 10 minutos, se verifican esas transacciones. Son los llamados “mineros” los encargados de este proceso de verificación de transacciones o de “minado”.
El usuario que ha generado la transacción (al hacerla) envía la información al minero, el cual procede a verificarla e incluirla en el siguiente bloque disponible. Para poder incluirla en el siguiente bloque el minero ha de conocer un valor (llamado hash) del último bloque añadido, pero esta información está oculta para todos. Ese valor ha de ser incluido como referencia para poder crear el siguiente bloque, y es aquí donde se utiliza toda la potencia de procesamiento.
Para encontrar ese hash del último bloque, el minero debe probar a resolver un problema matemático con un coste computacional (según la facilidad con la que los mineros resuelven los problemas, el protocolo incrementa la dificultad cada 14 días para mantener un tiempo medio de creación de bloques de 10 minutos). Este hecho garantiza que a lo largo del tiempo vaya a ser necesaria más potencia de procesamiento.
La clave de PoW es que ese problema se resuelve “con fuerza bruta” en potencia de procesamiento. Los mineros son recompensados con Bitcoin al resolver el problema, y por lo tanto este proceso es altamente competitivo. El minero exitoso es aquel que se adelanta al resto y resuelve el problema primero. Una vez conseguido, comunica al resto haber encontrado el hash del último bloque para que los mineros restantes lo verifiquen y crea un nuevo bloque con las transacciones en el mempool tras ser verificado.
Una de las ventajas de PoW es que evita que haya un DDoS o denegación distribuida del servicio en el que nodos con intereses maliciosos tomen el control de la red. Para ello necesitarián tomar el control del 51% de la potencia de procesamiento, pero esto en sí mismo es muy costoso pues para alterar una transaccion ha de repetir ese problema matemático y alterar el registro en la mayoría de nodos de la red, lo cual a los propios mineros no les interesa pues eliminaría la confianza de los usuarios en la red (y por ende en la propia moneda con la que son recompensados).
Un problema también de estos es la baja escalabilidad de la red (pocas transacciones por segundo y cuellos de botella en momentos de alta demanda), o que, por ejemplo, dado los altos costes del minado, los mineros suelen concentrarse en zonas geográficas donde los costes energéticos sean bajos y poder así tener un negocio rentable, pero esto contribuye a una centralización geográfica poco deseable que pone en riesgo la red (Ej: prohibición de minado en China).
En el proof of stake tenemos nodos en los que los usuarios deciden depositar un número de sus propias monedas para validar las transacciones. Este proceso se conoce como staking y ayuda a hacer la red más segura pues los validadores tienen intereses (económicos) en que la red sea invulnerable y no sufra ningún ataque. Por cada transacción, los validadores reciben una comisión, y con parte de ella recompensan a los usuarios que han decidido depositar las monedas de la red con ellos.
Este modelo evita el alto coste computacional del PoW y la necesidad constante y creciente de mejorar los equipos de minado. Además, no obliga a que toda la red se involucre en el proceso de verificación de transacciones, aumentando la escabilidad. Aun así se considera un método menos seguro que PoW pues existe la posibilidad de comprar la mayoría de las monedas de una red y convertirse en el principal validador de transacciones y empezar a validar transacciones fraudulentas. (Esta posibilidad, aunque existente, es improbable, dado el altísimo coste económico de comprar una mayoría de las monedas de una red).
Por otro lado, también existiría la opción de que un solo nodo se volviera errático y empezara a validar transacciones erróneas, por ello algunos protocolos, entre ellos ETH en su futura transición a PoS, han diseñado una solución en la que estos validadores erráticos son castigados retirándoles todas las monedas que tienen en staking e impidiendo que vuelvan a ser validadores en el futuro (conocido como slashing).
Una desventaja, es que dado que cuantas más monedas tengas en tu nodo (y tu ratio de validacion de transacciones no fraudulentas sea más alto) tendrás más posibilidades de validar transacciones. Así los validadores con más monedas en su posesión ejercen una influencia inmensa sobre el sistema, lo que pone en duda la descentralización.