(...)
Girino, aproveitando seu conhecimento, poderia explicar o que seria o "51% attack"? Procurei tanto na parte em inglês, como aqui e não entendi de forma total o que aconteceria se algum minerador detivesse a maioria do poder de mineração. Ele poderia realmente manipular a blockchain à sua maneira?
Ataque de 51% é assim:
O BTC soluciona o problema de confiança de forma probabilistica. você nunca tem certeza absoluta que um atacante vai fazer um gasto duplo e invalidar sua transação, mas vc sabe que a cada confirmação, o trabalho que ele precisa pra fazer isso aumenta, e a probabilidade dele conseguir diminui. O limite de 6 confirmações é pra garantir que um atacante com 10% do poder de processamento da rede tem uma probabilidade de menos de 1% de conseguir fazer um gasto duplo.
Essa probabilidade aumenta com o poder de processamento dele, e diminui com o numero de confirmações. Com zero confirmações a probabilidade é de 50%.
Agora entram os forks. Um cara que tenha mais de 50% do processamento da rede consegue fazer um fork dele ficar mais longo que a blockchain "principal" simplesmente porque ele minera mais rapido que o resto todo junto. Então sempre que ele quiser fazer um double spending, ele só precisa fazer um fork, mas não publicar ele. Fica minerando esse fork até ter uma cadeia longa o suficiente pra vitima aceitar a transação, então ele publica o fork todo de uma vez. O fork é mais longo que a cadeia original, então ele é automaticamente aceito como consenso, e todas as transações que estavam na blockchain original são revertidas!
Ele SEMPRE consegue isso porque ele SEMPRE minera mais rapido que os outros. A situação piora, porque, com tempo suficiente, ele pode reescrever a história da blockchain, minerando novamente blocos "passados" e construindo a cadeia desde aquele bloco até ela ficar mais longa que a principal.
Por exemplo, se ele minera 10 blocos a mais por dia que os outros, a cada dia ele consegue rescrever o passado em até 10 blocos. Se ele precisa reescrever 1 semana do passado (cerca de 1000 blocos), ele precisa de cerca de 100 dias minerando "fora da blockchain",e então publicar a chain paralela dele. Dado tempo suficiente, ele rouba inclusive os blocos que o satoshi nakamoto minerou em 2009.