06 / 736PoW

Proof of Work

prova de trabalho computacional

O mecanismo pelo qual o Bitcoin transforma eletricidade e cálculo numa prova fácil de verificar e ordena o histórico válido de blocos pelo trabalho acumulado.

Com Proof of Work, o Bitcoin torna a criação de blocos dispendiosa e a sua verificação simples. Os mineradores competem em cálculos cujos resultados não conseguem prever. Procuram um hash, a impressão digital do cabeçalho do bloco, cujo valor numérico não ultrapasse um limite chamado target. Os outros podem verificar rapidamente um resultado que cumpra essa condição. Um Full Node, computador que verifica por si as regras do Bitcoin, também confere as transações separadamente: a prova, sozinha, não torna o bloco válido.

Imagine uma loteria em que não há fórmula inteligente para calcular antecipadamente o bilhete vencedor. Os mineradores alteram repetidamente os dados de um bloco candidato e calculam seu hash. Quase todos os resultados falham. Só um hash numericamente menor ou igual ao target atual pode servir como Proof of Work do bloco. Encontrá-lo é difícil, mas qualquer pessoa o confere rapidamente. O Bitcoin não prova um cálculo útil no sentido comum; demonstra publicamente que alguém realizou uma busca custosa para um Block Header específico. [1] [2]

O Block Header contém os dados essenciais do bloco; o Merkle Root é uma impressão digital conjunta das suas transações. O nonce é um número que os mineradores podem mudar durante a procura. Um ASIC é um chip concebido para uma tarefa específica; aqui aplica repetidamente a função hash SHA-256. Primeiro o minerador monta um bloco candidato: escolhe transações, cria a Coinbase Transaction com a recompensa e calcula o Merkle Root. Esses valores, a referência ao bloco anterior, o tempo, o target e o nonce formam o Block Header. Um ASIC especializado calcula então o SHA-256 duplo de muitas variantes. Ele não resolve um enigma passo a passo nem se aproxima da resposta. Cada tentativa produz um novo resultado de aparência aleatória, e uma falha não diz se a próxima tentativa vencerá. [3] [1]

Um hash pode ser lido como um número enorme. O target da rede é o maior valor ainda permitido. Quanto menor o target, menor a parcela de hashes possíveis que passa e maior o número esperado de tentativas. nBits armazena o target de forma compacta no header. A dificuldade expressa apenas, de modo relativo, a exigência desse alvo. Não é número de zeros, quantidade de joules nem parcela de poder de um minerador. Um bloco pode chegar quase de imediato ou após longa espera: as regras limitam o resultado, não o número real de tentativas. [2] [1]

O nonce do Block Header tem apenas quatro bytes, portanto um ASIC rápido pode esgotá-lo sem encontrar resultado válido. Mining não é aumentar um só número para sempre. O software pode mudar uma extra nonce na Coinbase Transaction, a seleção ou ordem das transações e outros dados permitidos. Isso altera Coinbase Transaction, Merkle Root e o header completo, abrindo novos candidatos. Um pool também distribui trabalhos distintos entre muitos aparelhos para que não testem as mesmas variantes. [3]

Um hash menor ou igual ao target cumpre uma condição essencial, não todas as regras do Bitcoin. Um Full Node também verifica tamanho e estrutura, ascendência, Coinbase Transaction, recompensa permitida, assinaturas, scripts e se as entradas se referem a fundos existentes que ainda não foram gastos. Cálculo caro não obriga ninguém a aceitar bitcoin excedente ou gasto duplo. Um bloco inválido continua inválido independentemente da energia. Inversamente, um candidato com transações válidas e Proof of Work insuficiente também não amplia a cadeia ativa. [4] [1]

Dois mineradores podem publicar blocos válidos diferentes quase ao mesmo tempo e na mesma altura, criando brevemente dois ramos. Entre candidatos válidos, os nós seguem o ramo com maior trabalho acumulado, representado por chainwork. Isso nem sempre equivale a contar blocos, pois eles podem ter targets distintos. Reescrever um pagamento confirmado exige criar um histórico alternativo válido e alcançar e superar o trabalho que o ramo normal continua adicionando. Mais confirmações geralmente elevam o custo do ataque, mas não criam irreversibilidade matemática imediata. [5] [1]

O Hashrate mede quantas tentativas de hash são feitas por segundo. Se o target nunca mudasse, o crescimento do Hashrate aceleraria blocos e uma queda de potência os retardaria. A mainnet recalcula o target depois de intervalos de 2.016 blocos para trazer a média de longo prazo de volta a cerca de dez minutos. O cálculo compara a duração observada às duas semanas pretendidas e limita o ajuste pelas regras do protocolo. O retarget não responde diretamente ao preço de BTC, ao número de utilizadores nem a votos de mineradores sobre regras. Dez minutos é uma média-alvo, não o horário do próximo bloco. [2]

Um minerador isolado pode esperar muito por um bloco válido, por isso muitas máquinas usam um mining pool. O pool define um share target interno mais fácil e usa shares enviados para estimar contribuições. A maioria não satisfaz o target de rede mais rígido e nunca entra na Blockchain. Quando um resultado também alcança o target da rede, o pool transmite o bloco candidato inteiro. A aceitação não é decidida pelo pool nem pelo tamanho do Hashrate, mas pela validação independente de cada nó. [3]

Equipamentos físicos consomem eletricidade e libertam calor durante a busca. O Bitcoin não guarda uma fatura energética no bloco. O hash vencedor não revela número exato de tentativas, quilowatts-hora, fonte de energia ou localização. Proof of Work dá uma defesa económica ao histórico porque novas tentativas têm custos reais, mas maior consumo não significa automaticamente segurança perfeita ou operação mais limpa. Avaliar segurança exige também validação, distribuição do Hashrate e ameaça concreta; avaliar energia requer fonte, horário, eficiência e uso alternativo. [1] [2]

Um Full Node confere por si o hash anterior, nBits, target derivado e hash do header. Dados permitem comparar height, difficulty e chainwork, mas o hash vencedor não mostra identidade nem energia exata. A afirmação «seguro após seis confirmações» precisa de contexto: valor, capacidade do adversário, distribuição do trabalho e possibilidade de esperar. Proof of Work não é rótulo comercial nem voto de mineradores sobre regras; é uma entrada estritamente definida e fácil de verificar para escolher entre históricos válidos. [2] [3] [5]

Para ter uma visão mais completa, leia este verbete junto com Mineração, Difficulty Adjustment, Timechain / Blockchain, Full Node, Block Subsidy. Também há referências a este verbete em Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Timechain / Blockchain.

DOC · 001Bitcoin whitepaperFonte primária DOC · 002Bitcoin Core v29.0: Proof of WorkFonte primária DOC · 003Bitcoin Developer Guide: MiningDocumentação DOC · 004Bitcoin Core v29.0: block validationFonte primária DOC · 005Bitcoin Core v29.0: chainworkFonte primária
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento