Ir para conteúdo principal

O que é um ataque de consenso?

O mecanismo de consenso do Bitcoin refere-se ao fato de que é muito difícil, pelo menos teoricamente, que um minerador (ou pool de mineração) tente usar seu próprio poder de cálculo para enganar ou sabotar. O mecanismo de consenso do Bitcoin baseia-se na premissa de que a grande maioria dos mineradores, no seu próprio interesse, manterá todo o sistema Bitcoin minerando honestamente. Contudo, quando um minerador ou grupo de mineradores detém uma grande quantidade de poder de cálculo no sistema, eles podem alcançar o objetivo de minar a segurança e a confiabilidade da rede Bitcoin ao atacar o mecanismo de consenso.

Vale notar que ataques ao consenso só podem afetar o consenso futuro de toda a blockchain, ou, no máximo, o consenso de alguns blocos no passado próximo (até 10 blocos no passado). E à medida que o tempo passa, torna-se cada vez menos provável que toda a blockchain do Bitcoin seja adulterada. Em teoria, um fork da blockchain pode tornar-se muito longo, mas na prática, o poder de computação necessário para implementar um fork muito longo é extremamente grande, e à medida que toda a blockchain do Bitcoin cresce, os blocos anteriores podem ser basicamente considerados intocáveis pelo fork. Além disso, ataques de consenso não afetam a chave privada do usuário nem o algoritmo de criptografia (ECDSA). Tampouco um ataque de consenso pode roubar bitcoins de outras carteiras, pagar bitcoins sem assinatura, redistribuir bitcoins, alterar transações passadas ou mudar registros de posse de bitcoins. O único impacto que um ataque de consenso pode ter é afetar os blocos mais recentes (até 10) e afetar a geração de blocos futuros por meio de negação de serviço.

Um cenário típico de ataque ao consenso é o "ataque de 51%". Imagine uma situação em que um grupo de mineradores controla 51% da capacidade de computação de toda a rede Bitcoin e se une com a intenção de atacar todo o sistema Bitcoin. Como esse grupo de mineradores pode gerar a maioria dos blocos, eles podem intencionalmente criar um fork da blockchain para "pagar em dobro" ou bloquear uma transação específica, ou atacar um endereço de carteira específico por meio de negação de serviço. Um fork da blockchain/ataque de pagamento duplo ocorre quando um atacante renega uma transação recente e reconstrói um novo bloco anterior a essa transação, criando assim um novo fork e possibilitando o pagamento duplo. Com a garantia de poder de computação suficiente, um atacante pode adulterar seis ou mais blocos recentes de uma só vez, fazendo desaparecer as transações contidas nesses blocos que, de outra forma, seriam intocáveis. Vale notar que pagamentos duplos só podem ser feitos em transações que ocorrem em carteiras de propriedade do atacante, pois somente o proprietário da carteira pode gerar uma assinatura legítima para transações de pagamento duplo. Um atacante só pode realizar um ataque de pagamento duplo em suas próprias transações, mas tal ataque é lucrativo quando a transação corresponde a uma compra irreversível.

Vamos ver um exemplo do mundo real de um "ataque de 51%". No Capítulo 1, falamos sobre uma transação entre Alice e Bob por uma xícara de café usando Bitcoin. Bob, o proprietário da cafeteria, está disposto a fornecer o café a Alice quando a transferência dela for confirmada com zero confirmações, porque o risco de um "ataque de 51%" em uma transação tão pequena é pequeno em comparação com a imediatidade da compra do cliente (Alice pode receber o café imediatamente). É a mesma razão pela qual a maioria das cafeterias não perde tempo pedindo assinatura para compras com cartão de crédito abaixo de US$25, porque é mais caro pedir assinatura do que o risco de o cliente cancelar o pagamento do cartão. Consequentemente, o risco de pagamento duplo para transações grandes pagas com Bitcoin é muito maior, já que o comprador (atacante) pode cancelar a transação real transmitindo uma transação forjada na rede que seja idêntica à UTXO da transação real. O pagamento duplo pode ser feito de duas maneiras: ou antes da transação ser confirmada ou pelo atacante por meio de um fork da blockchain. A pessoa que realiza o ataque de 51% pode cancelar a transação registrada no fork antigo e então regenerar uma transação do mesmo valor no novo fork, assim alcançando o pagamento duplo.

Para evitar esse tipo de ataque, comerciantes que vendem itens em grande quantidade devem esperar até que a transação tenha recebido seis confirmações em toda a rede antes de entregar o item. Alternativamente, o comerciante deve usar uma conta de terceiros com múltiplas assinaturas para a transação e também aguardar até que a conta da transação receba múltiplas confirmações na rede antes de entregar o item. Quanto mais confirmações uma transação tiver, mais difícil será para um atacante adulterá-la por meio de um ataque de 51%. Para transações de grande valor, usar pagamentos em Bitcoin é conveniente e eficiente tanto para compradores quanto para vendedores, mesmo que os bens sejam enviados 24 horas após o pagamento. Depois de 24 horas, a transação terá pelo menos 144 confirmações na rede (reduzindo efetivamente a probabilidade de um ataque de 51%).

Além do ataque de "pagamento duplo", outro cenário de ataque ao consenso é a negação de serviço a um endereço bitcoin específico. Um atacante que possua a maioria do poder de computação no sistema pode facilmente ignorar uma transação em particular. Se a transação existir em um bloco gerado por outro minerador, o atacante pode intencionalmente bifurcar o bloco, regenerá-lo e remover a transação que deseja ignorar do bloco. O resultado desse ataque é que, enquanto esse atacante tiver a vasta maioria do poder de computação no sistema, ele pode interferir continuamente em todas as transações geradas por um endereço de carteira específico ou grupo de endereços com o propósito de negar serviço a esses endereços.

Observe que o ataque de 51% não exige que o atacante possua pelo menos 51% do poder de computação, como o nome sugere; na verdade, ele ainda pode tentar lançar tal ataque mesmo se tiver menos de 51% do poder de computação do sistema. A razão pela qual chama-se ataque de 51% é simplesmente porque, quando o poder de computação do atacante atinge o limiar de 51%, sua tentativa de ataque quase certamente terá sucesso. Essencialmente, um ataque de consenso é como um sistema em que todo o poder de cálculo dos mineradores é dividido em dois grupos, um com cálculo honesto e outro com cálculo atacante, e ambos competem para ser os primeiros a computar novos blocos na blockchain, exceto que o cálculo do atacante cria blocos cuidadosamente construídos que contêm ou excluem certas transações. Assim, quanto menos poder de computação o atacante tiver, menos provável será que ele vença o duelo. Por outro lado, quanto mais poder de computação um atacante tiver, mais longa poderá ser a cadeia de blocos bifurcados que ele poderá criar intencionalmente, e mais blocos recentes poderão ser adulterados ou mais blocos futuros estarão sob seu controle. Alguns grupos de pesquisa em segurança usaram modelos estatísticos para concluir que 30% do poder de computação da rede seria suficiente para lançar um ataque de 51%.

O aumento dramático do poder de computação em toda a rede tornou impossível que o sistema Bitcoin seja atacado por um único minerador, já que não é mais possível que um único minerador ocupe sequer 1% do poder de computação da rede. Mas pools de mineração controlados centralmente introduzem o risco de que um operador de pool ataque por lucro. O operador do pool controla a geração de blocos candidatos e também controla quais transações são colocadas nos blocos recém-gerados. Dessa forma, o operador do pool tem o poder de excluir transações específicas ou pagamentos duplos. Se esse poder for abusado pelo operador do pool de maneira sutil e calculada, então o operador poderá lançar ataques de consenso e se beneficiar deles sem ser notado.

No entanto, nem todos os atacantes buscam lucro. Um possível cenário é que o atacante esteja lançando um ataque simplesmente para perturbar todo o sistema Bitcoin, em vez de obter lucro. Tal atacante, com a intenção de desestabilizar o sistema Bitcoin, exigiria um enorme investimento e planejamento cuidadoso, então é concebível que tal ataque provavelmente venha de uma organização financiada pelo governo. Da mesma forma, esses atacantes poderiam comprar máquinas de mineração, operar pools de mineração e executar ataques de consenso como negação de serviço, abusando do poder mencionado do operador do pool. Contudo, à medida que o poder de computação da rede Bitcoin cresce geometricamente e rapidamente, esses cenários de ataque teoricamente factíveis tornaram-se cada vez mais difíceis de implementar na prática. Atualizações recentes do sistema Bitcoin, como o protocolo de mineração P2Pool, que visa descentralizar ainda mais o controle da mineração, também estão tornando esses ataques teoricamente factíveis cada vez mais difíceis.

Não há dúvida de que um ataque de consenso sério tende a reduzir a confiança no sistema Bitcoin, o que por sua vez pode levar a uma queda no preço do Bitcoin. No entanto, o sistema Bitcoin e o software relacionado estão em constante melhoria, portanto a comunidade Bitcoin certamente responderá rapidamente a qualquer ataque de consenso para tornar todo o sistema Bitcoin mais robusto e confiável do que nunca.

Isto respondeu à sua pergunta?