Mineração
O que é a mineração de bitcoin?
A mineração de bitcoin é o processo de adicionar transações à blockchain.
Como funciona a mineração?
Todo nó da rede bitcoin compartilha informações sobre novas transações.
Cada nó armazena as novas transações que recebe no seu memory pool.
O memory pool é a área de armazenamento temporário de um nó para novas transações.
Cada nó também tem a opção de tentar "minerar" as transações do seu memory pool em um arquivo permanente. Esse arquivo é um livro-razão de todas as transações de bitcoin, e é chamado de blockchain.

Você pode pensar no memory pool como contendo transações "flutuantes" e na blockchain como contendo transações "arquivadas".
Porém, para adicionar transações do memory pool à blockchain, um nó precisa usar bastante poder de processamento do computador.
Esse poder de processamento é necessário por causa da presença de um tipo específico de desafio.
Qual é esse desafio?
Certo, imagine que você é um nó. A qualquer momento, você pode condensar as transações do seu memory pool em uma única "string" de números e letras.
Essa "string" é basicamente um hash das transações do memory pool.
Agora, seu objetivo é fazer o hash dessa string com outro número (chamado de nonce) para tentar obter uma nova string que comece com um certo número de zeros.
Na maior parte do tempo, você vai obter um resultado que nem chega perto:
Mas, se você continuar, pode tropeçar em um número que funciona:
Exemplo de Função de Hash
Agora, isso parece fácil, mas na verdade é muito difícil. O processo é totalmente aleatório, e você só pode esperar encontrar um resultado vencedor por tentativa e erro. E é isso que a mineração é – muito hashing (usando poder de processamento) e a esperança de dar sorte.
Mas, se você tiver sorte suficiente de encontrar um resultado de hash bem-sucedido, as transações do seu memory pool são adicionadas à blockchain, e todos os outros nós da rede também adicionam o seu bloco de transações às blockchains deles.
Além disso, você também receberá uma recompensa de bloco pelo seu esforço (que também inclui quaisquer taxas das transações que você adicionou à blockchain).

Nota: A recompensa de bloco não é mais 25 BTC (escrevi este artigo originalmente em 2015).
O "certo número de zeros" vem da dificuldade. Ela muda com base na velocidade da mineração pela rede – quanto mais rápido as pessoas mineram, maior a dificuldade fica, e mais zeros são necessários no início (o que ajuda a manter o tempo entre os blocos consistente).
Esta é uma versão um pouco simplificada de como os blocos são adicionados à blockchain. Para mais detalhes, confira blocos.
Por que a mineração é importante?
Boa pergunta. Por que não adicionar transações diretamente à blockchain?
Porque a mineração permite que toda a rede bitcoin concorde sobre quais transações são "arquivadas", e é assim que você resolve transações fraudulentas em uma moeda digital.
Continue...
Quando você faz uma transação de bitcoin, nem todos os nós da rede ficam sabendo dela instantaneamente. Em vez disso, as transações viajam pela rede bitcoin sendo passadas de um nó para o próximo.

Propagação é a palavra usada para descrever a forma como as transações viajam pela rede.
Porém, na verdade é possível fazer outra transação gastando esses mesmos bitcoins e inserir essa segunda transação em uma parte diferente da rede.
Por exemplo, você poderia comprar uma cerveja com alguns bitcoins e, em seguida, tentar rapidamente comprar uma fatia de pizza com esses mesmos bitcoins.
Em outras palavras, uma boa e velha fraude.
Então, o que está acontecendo aqui?
- Alguns nós recebem a transação da pizza primeiro (e ignoram a transação da cerveja).
- Alguns nós recebem a transação da cerveja primeiro (e ignoram a transação da pizza).
Mesmo sabendo que você fez a transação da cerveja primeiro, devido à forma como as transações viajam pela rede bitcoin, a rede ficaria em desacordo sobre se você deveria ficar com a cerveja ou a pizza.
Então, como a rede decide qual transação manter?
Mineração, é claro.
O primeiro nó da rede a completar o desafio adicionará as transações do seu memory pool à blockchain.
Por exemplo, se um nó com a transação da pizza minerar um bloco com sucesso, então essa é a transação que será adicionada à blockchain, e a transação da cerveja é expulsa da rede.
Parece uma forma pouco ortodoxa de selecionar transações, eu sei, mas esta é a solução que a rede bitcoin usa para chegar a um consenso ao lidar com transações conflitantes (também conhecidas como "gasto duplo").
Leva apenas cerca de 10 minutos para cada novo bloco de transações ser adicionado à blockchain, então você só precisa esperar 10 minutos por uma confirmação de que os bitcoins "chegaram" a um novo endereço (e não foram enviados a um endereço alternativo).
Outro benefício da mineração.
Se você quer tentar controlar os blocos (ou seja, as transações) que são adicionados à blockchain, você tem que competir para resolver os quebra-cabeças dos blocos com todos os outros nós mineradores da rede bitcoin.
Em outras palavras: você precisa ter um computador com poder de processamento suficiente para superar o poder de processamento de todos os outros mineradores de bitcoin combinados.
O que é totalmente possível – você só precisa gastar alguns bilhões em hardware e está pronto (embora esse valor aumente conforme mais poder de mineração entra na rede).
Então, em outras palavras, essa competição de mineração impede que um único minerador tenha controle total sobre quais transações são adicionadas à blockchain.
Como eu começo a minerar?
Minerar pelo cliente Bitcoin Core não é mais possível.
Essa funcionalidade foi completamente removida em 2016:
Como a mineração por CPU tem sido inútil há muito tempo, o minerador interno foi removido nesta versão e substituído por uma implementação mais simples para o framework de testes.
Se você quer começar a minerar, vai precisar pesquisar sobre comprar seu próprio hardware especializado e entrar no que é conhecido como um "pool de mineração".