No actual cenário mineiro intensamente competitivo, os mineiros independentes de pequena escala – também conhecidos como mineiros individuais – não têm praticamente nenhuma hipótese realista de sucesso. A probabilidade de encontrar um bloco e ganhar o suficiente para cobrir os custos de eletricidade e hardware é extremamente baixa, tornando a mineração individual pouco diferente da compra de um bilhete de loteria. Mesmo os mais poderosos mineradores ASIC de consumo não podem competir com grandes fazendas de mineração comercial que operam dezenas de milhares de chips em enormes instalações de servidores localizadas perto de fontes de energia de baixo custo, como usinas hidrelétricas.
Como resultado, os mineiros cooperam cada vez mais juntando-se a pools de mineração. Num pool de mineração, o poder computacional de milhares de participantes é combinado e as recompensas são compartilhadas entre eles. Ao participar num pool, os mineiros ganham apenas uma parte da recompensa total, mas geralmente recebem pagamentos regularmente, muitas vezes diariamente, o que reduz significativamente a incerteza.
Considere um exemplo específico. Suponha que um minerador compre uma máquina capaz de produzir 6.000 GH/s de poder de hashing, ou 6 TH/s. Em agosto de 2014, tal dispositivo poderia custar cerca de US$ 10 mil. Ele funciona a 3 quilowatts (kW), usa 72 quilowatts-hora de eletricidade por dia e custa cerca de US$ 7 a US$ 8 por dia em eletricidade. Na dificuldade da rede Bitcoin da época, esse minerador poderia esperar encontrar um bloco através da mineração solo apenas uma vez a cada 155 dias, ou a cada cinco meses, em média. Se o mineiro tiver sucesso durante esse período, a recompensa seria de 25 bitcoins. A um preço do bitcoin de cerca de US$ 600, essa recompensa valeria US$ 15.000. Isso cobriria o custo do hardware e da eletricidade durante o período e geraria um lucro líquido de cerca de US$ 3.000.
No entanto, se o minerador realmente encontrará um bloco nesses cinco meses depende muito da sorte. O mineiro pode encontrar dois blocos e obter um lucro substancial, ou pode passar dez meses sem encontrar nenhum bloco e sofrer uma perda financeira. Para piorar a situação, a dificuldade de prova de trabalho do Bitcoin pode aumentar significativamente durante esse período. Dado o rápido ritmo de melhoria do hardware de mineração, uma mineradora pode não ter mais de seis meses para recuperar o investimento antes que o equipamento seja ultrapassado por uma geração de máquinas mais nova e mais eficiente.
Se esse mesmo minerador ingressar em um pool de mineração em vez de esperar por um possível grande pagamento uma vez a cada cinco meses, o minerador poderá ganhar cerca de US$ 500 a US$ 700 por semana. Este rendimento estável ajuda a distribuir o custo da electricidade e do hardware ao longo do tempo, reduzindo a necessidade de assumir grandes riscos financeiros. Após sete a nove meses, o hardware ainda pode tornar-se obsoleto e o risco global pode permanecer elevado, mas pelo menos o rendimento durante esse período é mais regular e previsível.
Os pools de mineração coordenam os esforços de centenas ou até milhares de mineradores por meio de um protocolo de mineração dedicado. Depois de registrar uma conta no pool, cada minerador configura sua máquina de mineração para se conectar ao servidor do pool. Durante a mineração, o dispositivo permanece conectado ao servidor e sincroniza seu trabalho com o dos demais participantes. Dessa forma, os mineradores do pool dividem o trabalho de mineração entre si e posteriormente compartilham as recompensas.
Quando um bloco é extraído com sucesso, a recompensa do bloco é paga ao endereço Bitcoin do pool, e não a um minerador individual. Quando a recompensa acumulada de um minerador atinge um limite especificado, o servidor do pool envia um pagamento para o endereço bitcoin desse minerador em intervalos regulares. Na maioria dos casos, o operador do pool cobra uma taxa percentual pela prestação deste serviço.
Os mineradores em um pool compartilham o trabalho de busca de blocos candidatos e recebem “ações” com base na quantidade de trabalho que contribuem. Para calcular essas parcelas, os pools de mineração definem uma meta de dificuldade muito menor do que a dificuldade real da rede Bitcoin – normalmente mais de 1.000 vezes mais fácil. Quando alguém no pool eventualmente encontra um bloco válido, o pool recebe a recompensa e a distribui entre todos os mineradores participantes proporcionalmente ao número de ações que eles enviaram.
Os pools de mineração estão abertos a todos os mineradores, sejam eles grandes ou pequenos, profissionais ou amadores. Alguns participantes podem operar apenas um pequeno dispositivo de mineração, enquanto outros podem operar uma garagem cheia de hardware avançado. Alguns podem consumir apenas algumas dezenas de quilowatts de eletricidade, enquanto outros podem usar data centers inteiros, consumindo megawatts de energia. O desafio, então, é como medir a contribuição de cada mineiro de forma justa e, ao mesmo tempo, evitar trapaças.
A solução é usar o próprio algoritmo de prova de trabalho do Bitcoin, mas com um limite de dificuldade menor. Isto permite que o pool meça a contribuição de cada minerador de forma justa e verificável. Mesmo o menor minerador do pool pode ganhar regularmente algumas ações, o que proporciona incentivo suficiente para participar. Ao diminuir a dificuldade necessária para ganhar uma parte, o pool pode estimar quanto trabalho cada minerador está realizando. Sempre que um minerador encontra um hash de cabeçalho de bloco abaixo da dificuldade alvo do pool, esse resultado prova que o minerador completou uma quantidade mensurável de trabalho computacional.
Mais importante ainda, este trabalho realizado para ganhar ações fornece uma maneira estatisticamente significativa de estimar o progresso na busca de um bloco Bitcoin válido para a rede como um todo. Milhares de mineradores, cada um pesquisando intervalos menores de valores de hash, podem produzir coletivamente um resultado que satisfaça toda a meta de dificuldade da rede Bitcoin.
Para usar uma analogia com um jogo de dados, imagine que o objetivo do jogo como um todo é lançar um número menor que 4. Isso representa a dificuldade total da rede. Um pool de mineração pode criar um alvo intermediário mais fácil contando cada lançamento inferior a 8. Lançamentos inferiores a 8 não ganham o jogo, mas contam como ações. Como esta meta mais fácil é alcançada com mais frequência, os jogadores ganham ações regularmente, embora raramente atinjam a meta mais difícil necessária para vencer o jogo em si.
Ocasionalmente, alguém no pool lançará menos de 4 e então o pool ganha. A recompensa poderá então ser distribuída de acordo com a quantidade de ações que cada participante ganhou. Embora um resultado inferior a 8 não ganhe o jogo por si só, proporciona uma forma justa de medir a contribuição de cada jogador e, por vezes, também produz um resultado vencedor.
Da mesma forma, um pool de mineração define sua dificuldade interna para que um minerador individual possa encontrar um hash de cabeçalho de bloco que atenda à meta do pool com frequência suficiente para ganhar ações. De vez em quando, uma dessas tentativas também atingirá o alvo muito mais difícil da rede Bitcoin, produzindo um bloco válido. Quando isso acontece, todo o pool ganha.
