Remineração dos blocos na rede PoW

Ola pessoal.

A um tempo acompanho o forum só que sem estar registrado. Hoje me surgiu uma duvida pertinente que não consigo solucionar nem encontrar a resposta na internet.

Sabemos que as blockschains de PoW são protegidas da modificação da cadeia de blocos atraves de uma prova de trabalho. Reminerar blocos antigos é inviavel pois é necessario ter mais poder de computação que a rede toda para ganhar a “corrida”.

Pois suponho a seguinte hipotese: Um minerador começa do bloco genesis onde a dificuldade é mínima. Entao com os equipamentos modernos o minerador reminera os blocos rapidamente em cerca de milisegundos (+4.3 GH/s considerando os 32 bits do nonce). Sabemos que a dificuldade é ajustada a cada x blocos e se o tempo de mineração é baixo a dificuldade aumenta.

Certo nada demais até agora já que se a dificuldade é aumentanda com o tempo. Porem vamos supor que esse minerador nao está conectado na rede, entao nao está fazendo o broadcast dos blocos afinal sua cadeia ainda é a menor. O minerador está rodando a blockchain somente com ele mesmo e forjando o timestamp dos blocos assim parecendo que todos foram minerados de x em x tempo (se fosse o bitcoin de 10 em 10 minutos). Quando o minerador finalmente chega na altura que a rede está trabalhando atualmente ele começa o broadcast. A rede vai reconhecer que sua cadeia é a maior portantando cada node irá refazer sua cadeia? Ou o consenso irá calcular quando trabalho foi empregado nessa cadeia e rejeitar os blocos?

Pelo que sei a maior cadeia é a aceita porem não há calculo de quanto trabalho (alguma coisa de soma total da dificuldade) foi empregado.

Obrigado :slight_smile:

Excelente pergunta. Esse é um dos motivos pelo qual não é a cadeia mais longa que se considera a verdadeira, mas a com maior proof of work acumulado.

Existe uma variável no código chamada nMinimumChainWork:

E também existem os checkpoints, em que o bitcoin core marca qual hash estava em uma certa altura de bloco:
https://en.bitcoin.it/wiki/Checkpoint_Lockin

1 Curtida

Interessante, fiquei curioso sobre esta questão. Outro ponto é que se por acaso houvesse essa possibilidade o custo atual estimado de 1 hora de mineração nas atuais condições de dificuldade é de mais de 90 BTC.

Olá pessoal, obrigado pela resposta. Não sabia que tinha a variavel com maior quantidade de trabalho isso me ajudou a etender também como as blockchains de PoS também mantem a consistencia.

Sobre os checkpoints eu já tinha visto eles no codigo porem nao entendia bem o porque mas imaginei que fosse isso.

Acabei de ler que existe o tal ataque da reorganização, que é exatamente o processo que descrevi (a binance pensou em fazer isso para recuperar cerca de 7000 BTC roubados). Porém ele só vai funcionar caso tenha a carga de trabalho tão alta quanto a outra.

Obrigado pessoal.