Selfish Mining é uma estratégia de reter blocos válidos e escolher quando publicá-los. O objetivo é obter uma parcela dos blocos aceitos maior que a parcela de poder computacional. Isso não permite criar bitcoins fora das regras nem garante lucro: conexões, comportamento dos demais e custos também importam.
Pedro opera um Mining Pool, um grupo de mineradores que reúne poder computacional e divide recompensas. Um bloco reúne transações em um lote acrescentado ao histórico compartilhado. O grupo encontra um bloco válido. Normalmente o anunciaria para que outros pudessem construir sobre ele. Desta vez, mantém o bloco em segredo e procura seu sucessor. Ana e os demais continuam no antigo bloco comum. Não sabem que Pedro já conhece outra continuação possível. Assim começa um ramo privado, não uma nova moeda. [1] [2]
Pedro pode encontrar o próximo bloco, mas Ana pode chegar antes. As máquinas de mineração repetem cálculos com dados do bloco modificados até encontrar um resultado numérico que respeite o limite exigido. A mineração não é uma corrida regular em que a máquina mais rápida sempre vence: cada descoberta é aleatória. A estratégia reage aos dois ramos, continuando em segredo, divulgando blocos ou abandonando seu próprio ramo. Hashrate é a velocidade das tentativas computacionais. Uma parcela maior aumenta a chance de encontrar um bloco, mas não garante o seguinte. [1] [4]
Imagine que Pedro escondeu um bloco e Ana publicou outro sobre o mesmo antecessor. Pedro revela o seu, produzindo um empate. Mineradores diferentes podem conhecer blocos diferentes primeiro e prolongar ramos distintos. As próximas descobertas e a propagação das mensagens influenciam o resultado. O que decide é o trabalho acumulado no ramo válido, não o número de apoiadores; com dificuldade igual, mais blocos representam mais trabalho. A dificuldade expressa o quanto é difícil encontrar esse resultado em média. Uma dificuldade maior exige mais tentativas em média, não um tempo fixo para cada bloco. [1] [3] [4]
Se o ramo de Pedro prevalecer, o bloco concorrente de Ana pode ficar fora do histórico aceito como Stale Block. Era válido, mas sua recompensa não pode ser gasta na cadeia aceita. Pedro tenta fazer com que se perca uma proporção maior do trabalho dos outros que do seu. As transações do bloco abandonado não precisam desaparecer para sempre: se continuarem válidas e compatíveis com o histórico aceito, poderão ser incluídas depois. [1] [4]
Ittay Eyal e Emin Gün Sirer descreveram a estratégia conhecida em um estudo de 2013. Comparavam a parcela de blocos aceitos de um minerador com sua parcela de poder computacional. Isso difere do ganho por hora após pagar a eletricidade. Reter blocos pode desacelerar a cadeia pública, e o ajuste posterior de dificuldade altera a economia. Cyril Grunspan e Ricardo Pérez-Marco destacaram depois o tempo e esse ajuste. Uma parcela relativa maior das recompensas não promete lucro líquido imediato. [1] [7]
No modelo original, α é a parcela de poder do atacante. γ é a parcela do poder dos outros mineradores que adere ao ramo dele durante um empate. Com γ = 0, o limiar de vantagem relativa é 1/3; com γ = 1/2, é 1/4. Nesse modelo, a vantagem aparece acima do limiar correspondente. Não são fronteiras universais de segurança da rede real. Outras estratégias, atrasos e hipóteses mudam o resultado. Importam tanto o poder computacional quanto o ramo que os demais continuam. [1] [6]
Um bloco entregue rapidamente tem mais chance de atrair mineradores em um empate. A vantagem de rede pode complementar o poder computacional. Se um grupo oferecesse retornos persistentemente melhores, poderia atrair mais participantes e aumentar a concentração. Isso descreve um incentivo, não prova que todo pool grande ataque nem que outros necessariamente adiram. Um parâmetro teórico também não é uma propriedade medida de um operador específico. [1] [6] [8]
Ana pode assumir a dianteira antes que o plano de Pedro dê certo. Nesse caso, ele não recebe recompensa, apesar da energia consumida e das máquinas usadas. Um limiar calculado para uma média de longo prazo não promete vitória em cada rodada. Algumas rodadas bem-sucedidas tampouco provam rentabilidade após custos e mudanças de condições. Um bloco retido é uma oportunidade arriscada, não uma recompensa guardada em segurança numa gaveta. [1] [7]
Um Full Node, um programa que verifica por conta própria as regras do Bitcoin, continua rejeitando transações inválidas e criação não autorizada de moedas. Pedro precisa fornecer Proof of Work real, demonstrar o trabalho computacional exigido e cumprir as mesmas regras que Ana. A disputa é sobre qual histórico válido prevalece. Ela não fornece chaves privadas de terceiros, os valores numéricos secretos usados para assinar transações, nem permite gastar suas moedas. Uma vantagem na mineração deve ser distinguida de uma quebra das regras de propriedade. [2] [5]
A transmissão mais rápida reduz atrasos e algumas desigualdades de rede. Compact Blocks, por exemplo, aproveita transações já conhecidas para transmitir um bloco com menos dados. Isso não elimina Selfish Mining. A pesquisa também examina empates e incentivos econômicos. Um bloco abandonado sozinho não prova ataque: dois grupos honestos podem encontrar blocos quase ao mesmo tempo. É preciso contexto mais amplo para avaliar suspeitas. A pergunta permanece: nessas condições, as regras premiam compartilhar rapidamente ou pode ser vantajoso esconder algo? [6] [8] [9]
Para ter uma visão mais completa, leia este verbete junto com Block Propagation, Compact Blocks, Nakamoto Consensus, Sybil Attack, Bitcoin, Mineração. Também há referências a este verbete em Byzantine Generals Problem, Sybil Attack, Block Propagation, Block Withholding Attack.