Una pool de minería es un espacio que le permite a los mineros trabajar de forma cooperativa para poder minar bloques de criptomonedas. Fueron creados con la finalidad de facilitar enormemente el trabajo de minería y para hacer frente de forma más efectiva a la creciente dificultad de minar Bitcoins y otras criptomonedas.
Índice
Una pool de minería es un espacio que le permite a los mineros trabajar de forma cooperativa para poder minar bloques de criptomonedas. Fueron creados con la finalidad de facilitar enormemente el trabajo de minería y para hacer frente de forma más efectiva a la creciente dificultad de minar Bitcoins y otras criptomonedas.
La creación de estas agrupaciones responde a la necesidad de poder resolver satisfactoriamente los acertijos de una blockchain a medida que se aumenta el poder de su red y la dificultad de la minería. Un trabajo que de forma individual sería muy difícil de concretar para cada minero.
La primera pool de minería Bitcoin
La primera pool de minería que fue creada se llama SlushPool. Fue presentada en el foro Bitcointalk el día 27 de noviembre de 2010 por el usuario Slush. Este usuario, es actualmente CEO y cofundador de Trezor. SlushPool se implementó en Europa, concretamente en Polonia, país de procedencia del propio Slush. La intención de su creador, era unir las fuerzas de los mineros con poca potencia. Esto con el fin de hacer frente a la creciente práctica de minería por GPU que nacía en Bitcoin. El resultado de esta interesante visión fue sorprendente al permitir a dichos mineros obtener mejores ganancias en grupo
¿Cómo funciona una pool de minería?
El funcionamiento de las pools de minería depende de tres claros actores, responsables de la cooperatividad entre todas las unidades de minería integrantes de dicha pool.
Protocolo de trabajo cooperativo
El funcionamiento de las pools de minería no sería posible si el protocolo Bitcoin no permitiera esta función. En primer lugar, el responsable de esto es una función que está integrada en el cliente base de Bitcoin. Dicha funcionalidad se conoció en su momento como getwork. Esta permitía a un grupo minero disperso tuviera un bloque objetivo para minar de forma cooperativa. De esta forma, se concentra el poder minero en un objetivo específico en lugar de otros individuales. Por lo tanto sirve para optimizar el proceso de minería global.
Getwork en realidad lo que hacía era comunicar a un grupo de mineros para que juntos minaran un mismo bloque. Cada minero trabajando en soluciones únicas hasta que uno de ellos pudiera resolverlo de forma satisfactoria. De esta forma, el bloque se minaría de forma más rápida y se evitan retrasos en la red por el aumento de dificultad que se avecinaba. En ese entonces Bitcoin crecía rápidamente, de minar por CPU se pasó a las GPUs, mientras los FPGAs y las ASICs estaban asomándose a las puertas.
Sin embargo, Getwork tenía algunas debilidades que luego fueron superadas gracias a la función getblocktemplate. Esta nueva función permite superar las debilidades del antiguo sistemas permitiendo una mejor escalabilidad y seguridad.
Servicio de minería cooperativa (Servidor)
Para poder permitir que varios mineros puedan congregar su poder de cómputo en un punto, es necesario tener un servidor que sirva de enlace. Puede sonar irónico que una tecnología descentralizada como la blockchain dependa de un servicio centralizado. Pero hay buenas razones para ello: mantener el ritmo de producción de bloque y permitir ganancias a los más pequeños.
Los software para servidores de minería cooperativa más comunes son el propio servicio oficial de Bitcoin, el bitcoind. Otros softwares bastante comunes son BFGMiner, p2pool, ecoinpool o stratum. En cualquiera de estos casos el funcionamiento es básicamente el mismo.
En primer lugar, se instala el software del servicio a utilizar, por ejemplo, bitcoind. Este servicio se configura de tal forma que pueda escuchar las conexiones que llegan desde Internet a su servidor. De esta forma, se puede abrir un canal de comunicación entre los mineros y el servidor de minería cooperativa. En este punto, cada minero debe tener una cuenta registrada de forma que el servidor pueda darle acceso al servicio. Pero no solo eso, el registro también sirve para repartir las ganancias de la minería entre quienes forman parte de la pool.
El trabajo de servidor es simple:
- Recibir las transacciones de la red.
- Comunicar a los mineros la información.
- Controlar y monitorizar el trabajo.
- Enviar a la red los bloques resueltos correctamente.
- Realizar la contabilidad de bloques resueltos y del trabajo aportado por los mineros.
- Por último, enviar la correspondiente ganancia a los mineros de la pool.