07 / 736HASH

Mineração

Mining

Como pagamentos pendentes se tornam um bloco confirmado, pelo que os mineradores recebem e por que os outros precisam verificar o resultado.

A mineração é a disputa para acrescentar o próximo bloco ao histórico do Bitcoin. Os mineradores agrupam transações em blocos e realizam trabalho de cálculo para encontrar um resultado fácil de verificar. Um bloco aceito pode render novos bitcoins e as taxas dos pagamentos incluídos. O minerador, porém, não define as regras: os outros computadores da rede verificam a proposta por conta própria e rejeitam blocos inválidos.

Mining: modelo de resultado operacionalCompare uma parcela esperada do subsídio de bloco com a eletricidade segundo o hashrate, consumo e taxa de pool escolhidos.

Minerar não é escavar moedas escondidas dentro de um computador. A disputa é para propor o próximo bloco válido: um conjunto de transações que dá continuidade ao histórico existente. O minerador procura um resultado de cálculo difícil de obter para essa proposta. Quando consegue, envia o bloco aos outros. Eles conferem tanto o cálculo quanto as transações e aplicam as mesmas regras para decidir se podem aceitá-lo. Os novos bitcoins fazem parte da recompensa, mas emitir moedas não é a única função da mineração. Para quem paga, o essencial é que uma transação pendente passe a integrar um histórico verificável. [1] [2]

Quando você envia um pagamento, ele primeiro se espalha entre os nós. Um nó é um computador participante da rede Bitcoin; seu mempool é uma coleção local de transações não confirmadas. Não existe uma fila única administrada para todos. O minerador monta um bloco candidato a partir das transações disponíveis, considerando as taxas e o espaço limitado. Se uma transação gasta uma saída de outra ainda não confirmada, essa transação anterior precisa aparecer primeiro no bloco. O comando getblocktemplate fornece os dados para montar o bloco, incluindo essas dependências. Os limites de peso do bloco e do trabalho de verificação de assinaturas também restringem a seleção. [1]

A primeira transação do bloco se chama Coinbase Transaction. Ela não tem relação com uma conta na corretora de mesmo nome: é uma transação especial pela qual o minerador atribui a si a recompensa permitida. Essa recompensa combina o subsídio de bloco, bitcoins recém-criados, com as taxas das demais transações do bloco. Uma taxa é a diferença entre o valor das entradas e o das saídas, portanto apenas transfere bitcoins existentes. Se o minerador reivindicar demais, os nós rejeitam o bloco inteiro. Nem uma recompensa correta pode ser gasta imediatamente: uma saída da Coinbase Transaction só pode ser gasta a partir de um bloco cuja altura seja 100 maior. [2]

Imagine uma loteria em que ninguém conhece o resultado vencedor antecipadamente, mas todos podem conferi-lo rapidamente depois de anunciado. Os mineradores calculam um hash, uma impressão digital dos dados que também pode ser lida como um número grande. Num bloco do Bitcoin, esse número precisa ser menor ou igual a um limite chamado target. Essa é a exigência de Proof of Work. Mais precisamente, a função hash SHA-256 é aplicada duas vezes ao cabeçalho de 80 bytes do bloco, que contém seus dados básicos resumidos. Não se resolve cada pagamento como um problema separado. Mudam-se os dados do cálculo para testar se o novo resultado atende à condição. [3]

Um ASIC é um chip projetado para uma tarefa de cálculo específica; um ASIC de mineração Bitcoin aplica repetidamente SHA-256 duplo a variantes de um cabeçalho de 80 bytes. Um dos campos alterados é o nonce, um número de quatro bytes no cabeçalho. Sua faixa de valores é finita. Depois de esgotá-la, é possível mudar o extra nonce, um dado adicional dentro da Coinbase Transaction. Isso muda o Merkle Root, a impressão digital conjunta das transações, e depois o cabeçalho, abrindo novos candidatos. Nenhum fracasso aproxima a máquina de uma vitória garantida. Tampouco se prometem dez minutos a um minerador: essa é a média pretendida para toda a rede. [3]

Os mineradores têm motivo para construir blocos válidos: uma proposta rejeitada não gera recompensa utilizável. Mas sua verificação não substitui a dos outros. Um Full Node é um computador que verifica por si as regras do Bitcoin, incluindo transações, recompensa e Proof of Work. Ele rejeita, por exemplo, um bloco que crie mais bitcoins do que o permitido, mesmo que o minerador tenha investido grande capacidade de cálculo. Ao executar um nó próprio, o usuário não precisa confiar na afirmação do minerador de que o bloco está correto. [2] [4]

Um minerador sozinho pode esperar muito tempo por um sucesso. Um Mining Pool permite dividir trabalho e receita entre participantes. Para estimar a contribuição das máquinas, o operador também aceita resultados que cumprem um limite interno mais fácil. Esse resultado é chamado de share. A maioria dos shares não basta para a rede Bitcoin; apenas alguns também atendem à sua condição mais exigente. Os pagamentos dependem do modelo de remuneração escolhido, das condições combinadas e das taxas do pool. Participar de um pool não dá direito a mudar as regras do Bitcoin. O operador também não precisa ser dono das máquinas conectadas. Sua parcela dos blocos encontrados não prova, por si só, a propriedade dos equipamentos. [3]

Após um cálculo bem-sucedido, o bloco inteiro ainda precisa chegar aos outros nós. Dois mineradores podem encontrar quase ao mesmo tempo blocos válidos diferentes ligados ao mesmo predecessor. Por um breve período, parte da rede conhece um ramo e outra parte conhece o outro. Os nós seguem o ramo válido com mais trabalho acumulado, a soma do trabalho atribuído aos seus blocos. O próximo bloco pode favorecer a escolha de um dos ramos. O bloco no ramo abandonado pode ser válido, mas sua recompensa não integra o histórico ativo. Por isso, importa divulgar resultados rapidamente e parar de trabalhar numa proposta ultrapassada ao receber uma nova ponta da cadeia. [4]

Hashrate mede o número de tentativas de hash por segundo. A parcela de um minerador na capacidade total da rede ajuda a estimar a frequência de sucessos, mas não garante receita regular. Receita também não é lucro: é preciso descontar eletricidade, refrigeração, equipamentos, manutenção e taxas do pool. Paradas podem piorar o resultado. Preste atenção às unidades: TH/s mede desempenho de cálculo, enquanto watts medem a potência elétrica consumida. Uma máquina potente pode dar prejuízo quando a eletricidade é cara, e um único achado de sorte pouco diz sobre a rentabilidade de longo prazo. [3]

No seu próprio nó, você pode comparar a proposta de getblocktemplate com o cabeçalho, a Coinbase Transaction e as transações comuns de um bloco encontrado. Comandos como getblocktemplate pertencem à interface técnica do nó; não são um serviço ao qual você precise confiar dinheiro. submitblock entrega um bloco pronto ao nó para verificação. A aceitação local, porém, não garante que o bloco ficará permanentemente no histórico da rede. Num pool, diferencie os shares enviados, os blocos Bitcoin aceitos e os valores realmente pagos. Somados aos custos operacionais, eles mostram o resultado econômico da mineração. [5]

Para ter uma visão mais completa, leia este verbete junto com Proof of Work, Difficulty Adjustment, Block Subsidy, Transaction Fees, Mempool. Também há referências a este verbete em Proof of Work, Difficulty Adjustment, Block Subsidy, Halving.

DOC · 001Bitcoin Core v29.0: block assemblerFonte primária DOC · 002Bitcoin Core v29.0: block validationFonte primária DOC · 003Bitcoin Developer Guide: MiningFonte primária DOC · 004Bitcoin whitepaperFonte primária DOC · 005BIP 22: getblocktemplateFonte primária
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento