Pular para o conteúdo
buybitcoinsmart

Glossário / Mineração e consenso

Regras de consenso

O que são as regras de consenso?
As regras de consenso são as verificações de validade que todo nó completo aplica a um bloco, e violar uma única delas torna esse bloco inválido, por mais trabalho que ele carregue.

O livro de regras é longo em detalhes específicos: nenhum gasto duplo, nenhuma saída que valha mais que suas entradas, scripts válidos e uma coinbase que não reivindique mais que o subsídio mais as taxas. O Bitcoin Core fixa os números no código: 4.000.000 unidades de peso por bloco, 80.000 operações de assinatura e uma espera de 100 blocos antes que os bitcoins minerados possam ser gastos. Essas regras são a razão pela qual nenhuma corretora pode creditar a você um bitcoin que a rede nunca criou.

Como funciona

As regras de consenso se dividem em quatro grupos, e quase todas são deliberadamente monótonas.

O primeiro grupo rege o dinheiro. A recompensa de um bloco cai pela metade a cada 210.000 blocos, e a saída coinbase não pode reivindicar um satoshi a mais que esse subsídio mais as taxas das transações efetivamente incluídas. Os bitcoins criados por um bloco não podem ser gastos por mais 100 blocos. Qualquer outra transação deve gastar saídas que existam, que ainda não tenham sido gastas e que satisfaçam o script que as bloqueou, sem que o total que sai supere jamais o total que entra.

O segundo grupo rege os recursos, porque a verificação precisa continuar barata o bastante para uma máquina comum. Um bloco não pode superar 4.000.000 unidades de peso nem 80.000 unidades de operações de assinatura. O terceiro grupo rege a estrutura: a transação coinbase vem primeiro e uma única vez, a raiz de Merkle do cabeçalho deve corresponder às transações presentes, e o hash do cabeçalho deve ficar igual ou abaixo do alvo que as regras de dificuldade exigem. O quarto grupo rege o tempo. O carimbo de data e hora de um bloco deve ser posterior à mediana dos onze anteriores e não pode ficar mais de duas horas à frente do relógio do próprio nó, e desde o BIP113 é essa mesma mediana que serve de referência para os locktimes.

Onde essas regras estão escritas é a parte incômoda. Não existe uma especificação independente: as regras são o que o código implantado aceitar, o que, para a esmagadora maioria da rede, significa a lógica de validação do Bitcoin Core, peculiaridades e acidentes incluídos. É por isso que uma reescrita em outra linguagem é tratada como risco e não como melhoria, e por isso o Bitcoin Knots, a variante mais conhecida, mantém o comportamento de consenso do Core byte a byte e difere apenas na política de retransmissão e de mineração.

A lista muda em uma de duas direções. Um soft fork remove possibilidades, de modo que os blocos feitos sob as novas regras ainda parecem válidos para o software antigo: a codificação DER estrita de assinaturas passou a ser obrigatória no bloco 363.725 e o OP_CHECKLOCKTIMEVERIFY no bloco 388.381, e nenhum dos dois dividiu a rede. Um hard fork acrescenta possibilidades, o que faz os blocos novos parecerem inválidos para quem não atualizou, e produz duas cadeias a menos que a adoção seja universal.

Por que isso importa quando você compra bitcoin

As regras de consenso são a única parte de possuir bitcoin que ninguém pode renegociar com você depois.

Elas estabelecem um piso firme sob um pequeno número de riscos. Ninguém pode imprimir bitcoins fora do cronograma, gastar uma saída sem sua chave nem apagar um pagamento enterrado sob trabalho real. Esse piso é estreito, e vale a pena ser preciso sobre o que fica fora dele, porque é aí que as pessoas de fato perdem dinheiro: uma corretora que fica insolvente, um site de phishing que coleta uma frase de recuperação, um agente de suporte que congela uma conta, uma conta de imposto que chega sem previsão no orçamento. Nada disso envolve uma regra sendo violada. Tudo isso envolve confiar em algo que as regras nunca cobriram.

A distinção oferece a você um teste para alegações de marketing. Se um serviço consegue reverter um pagamento confirmado, ele não reverteu uma transação de bitcoin; ele ajustou o próprio livro contábil, e você nunca esteve on-chain. Se um produto anuncia liquidação mais rápida do que os blocos permitem, ele está concedendo crédito a você e assumindo o risco por conta própria, o que pode ser um serviço perfeitamente bom, desde que você saiba que foi isso que comprou. Se uma criptomoeda afirma ter a segurança do bitcoin com milhares de transações por segundo, os limites de recursos acima são a razão pela qual o bitcoin não faz isso.

O que as regras de consenso enfaticamente não são é lei. A rede aplica as mesmas verificações a todo usuário do planeta, enquanto o livro de regras jurídicas muda em cada fronteira, e é por isso que os guias de país deste site existem separadamente de tudo o que há nesta página. A validade é decidida pelos nós. A legalidade, a declaração de impostos e se uma corretora vai aceitar você são decididos pela sua jurisdição, e as duas coisas nunca combinaram de se consultar.

Os 184 bilhões de bitcoin que duraram cinco horas

Em 15 de agosto de 2010, uma transação no bloco 74.638 criou duas saídas de mais de 92 bilhões de bitcoin cada uma.

O bug era aritmético. O código verificava que cada saída tinha um valor razoável, mas somava todas em um valor que estourava, de modo que um total maior que todo o cronograma de oferta era lido como um número positivo pequeno e passava. Satoshi Nakamoto publicou a versão 0.3.10 com a correção em questão de horas, os nós passaram a usá-la, e uma cadeia corrigida superou a defeituosa 53 blocos depois. O incidente está catalogado como CVE-2010-5139 e continua sendo a única vez em que a oferta de bitcoin superou seu cronograma.

Duas lições sobrevivem. O limite de 21 milhões não é uma lei da física, é uma linha de código, e o código pode estar errado. E o reparo funcionou justamente porque ninguém estava no comando dele: milhares de operadores independentes escolheram, cada um por conta própria, executar o software corrigido, que é o único mecanismo que uma regra de consenso jamais teve.

Regras de consenso vs política de mempool

As regras de consenso decidem o que é válido; a política de mempool decide o que um nó vai repassar. A política é mais frouxa, local e ajustável em cada nó: uma taxa mínima padrão de retransmissão de 1 sat/vB, um limite de poeira de 546 satoshis em uma saída legada, limites a saídas que carregam dados e uma lista de tipos de script considerados padrão. Se você violar a política, sua transação pode simplesmente não se propagar. Se você violar uma regra de consenso, nenhum bloco que contenha essa transação poderá existir jamais. Os mineradores incluem com regularidade transações que alguns nós não teriam repassado, e os blocos resultantes são totalmente válidos, e é por isso que “minha carteira diz não padrão” é um problema de roteamento com soluções alternativas, enquanto “inválida” é definitivo.

Não confundir com

Perguntas frequentes

O limite de oferta de 21 milhões pode ser alterado?

Somente se praticamente todos que executam um nó escolhessem executar um software que permitisse isso, o que seria um hard fork que se afastaria do bitcoin como ele existe. Quem detém bitcoins, as corretoras e os mineradores perdem todos com a inflação da oferta, por isso nunca houve apoio significativo a essa ideia.

Uma transação que meu nó se recusa a retransmitir é inválida?

Não. A retransmissão é política e pode variar de um nó para outro, enquanto a validade é consenso e é idêntica em todos os lugares. Uma transação que não cumpre a política do seu nó ainda pode ser minerada em um bloco perfeitamente válido.

Onde estão escritas as regras de consenso do bitcoin?

No código, e não em uma especificação. A lógica de validação do Bitcoin Core é o conjunto de regras de fato, com as mudanças individuais descritas em BIPs, e é por isso que as implementações alternativas buscam copiar seu comportamento exatamente, em vez de reinterpretá-lo.

Leia a seguir

Termos relacionados

Mais em Mineração e consenso

Ler esta página em inglês