La Prueba de Trabajo de Bitcoin
El algoritmo de Proof of Work es considerado por la comunidad como el más seguro para un proyecto Blockchain, aunque presenta varios inconvenientes
En el primer artículo de este blog presentábamos Bitcoin como la primera moneda 100% digital, que aspiraba a ser el nuevo medio de pago de toda la sociedad, con una estructura segura, transparente y eficaz. Una de las claves de dicha seguridad era lo que llamábamos el algoritmo de consenso, que no era más que el conjunto de reglas que tenían que seguir todos los participantes de la red de Bitcoin para considerar un bloque de transacciones como válido. Este algoritmo es, en el caso de Bitcoin, la Prueba de Trabajo, y en los siguientes párrafos veremos cómo funciona.
Este algoritmo consiste básicamente en la resolución de un problema matemático (basado en la “función hash”) para el que es necesario un equipo con una gran potencia computacional. Los participantes tienen un máximo de 10 minutos para resolver el problema y, pasado ese tiempo, el primero que lo haya resuelto correctamente elige qué transacciones se incorporan a la red, cobra una recompensa en nuevas bitcoin por su trabajo (de ahí el concepto de “minería”), y el proceso vuelve a empezar. El problema es que este desafío matemático es cada vez más complejo, por lo que la potencia que se requiere es cada vez mayor. Esto implica mayores niveles de seguridad, pero también reduce el número de participantes con recursos suficientes para resolver el problema.
Al reducir progresivamente el número de participantes que pueden resolver el algoritmo, se ve afectada la descentralización (la ausencia de control por parte de una entidad central), que era uno de los objetivos iniciales de la moneda. Poco a poco, los participantes con mejores recursos tecnológicos van monopolizando la verificación de nuevas transacciones, en un proceso que además tiene un coste energético muy elevado.
Por otro lado, el hecho de que este algoritmo sea tan seguro (a costa de los recursos que exige) hace que sea lento a la hora de procesar las transacciones. Cada bloque de transacciones tarda 10 minutos en ser “minado”, lo que, dado el número de transacciones que caben en un bloque, significa que apenas se pueden verificar 7 transacciones por segundo, muy lejos de las 56.000 transacciones por segundo que pueden llegar a ser procesadas por sistemas tradicionales los de tarjetas de crédito/débito.
Esta dificultad de procesamiento a gran escala es la otra gran área de mejora del algoritmo, la escalabilidad (capacidad de crecimiento de usuarios sin afectar al rendimiento de la red). Un proceso que tiene tantos problemas para crecer al ritmo que lo hacen sus usuarios tiene muy complicado competir con los sistemas tradicionales por ser el nuevo medio de pago universal. Es por eso por lo que en la actualidad, tanto Bitcoin como otras criptomonedas buscan continuamente soluciones para dar un paso adelante en la velocidad y capacidad de procesamiento sin afectar negativamente al rendimiento y a la seguridad de la red.
Algunas soluciones propuestas pasan por aumentar el tamaño de los bloques, utilizar otros algoritmos menos costosos, etc., pero de momento no hay una solución universal para este problema, teniendo además en cuenta que se trata de una tecnología muy nueva y cuyos casos de uso aún están en fases muy iniciales de desarrollo.