O Vector 76 Attack é um tipo de ataque de gasto duplo que se aproveita de um pequeno bug no sistema de consenso Bitcoin para ser executado. Como resultado disso, o invasor pode apreender fundos de forma maliciosa e gerar perdas para suas vítimas.
Ttodas as tecnologias desenvolvidas, incluindo blockchain, eles têm vetores de ataque que os cibercriminosos podem tirar proveito para seu próprio benefício. No mundo criptográfico, um dos ataques menos conhecidos é o Vetor 76 Ataque o Ataque de vetor 76.
A chegada das moedas digitais e criptomoedas trouxe consigo um problema sério, o gastos duplos. Em moedas digitais centralizadas, este problema é facilmente resolvido por estar todo o controle no mesmo núcleo. Mas em moedas descentralizadas como o Bitcoin, o problema é muito maior. Na verdade, o design de Bitcoin consegue minimizar o problema do gasto duplo. Podemos até dizer que o “mata”, mas devido à natureza descentralizada do Bitcoin, sempre haverá algum ponto de falha que pode ser usado para gastos duplos.
É lá onde o Ataque de vetor 76 o Ataque de confirmação, entre em ação. Esse ataque de gasto duplo permite que o invasor inclua uma transação de gasto duplo em um bloco e use-a em seu benefício. Ele faz isso enviando um bloco autoconstruído para a rede para confirmar que o bloco é válido. Dessa forma, o invasor pode apreender uma determinada quantia de fundos antes que a rede perceba o problema. Este ataque foi descrito pela primeira vez pelo usuário vector76 no fórum Bitcointalk.
Mas, para entender a natureza desse ataque, é necessário aprofundar a maneira como ele funciona, e é isso que faremos a seguir.
Como o Vector Attack 76 funciona?
Este ataque é realmente uma combinação do Ataque de carreira e pelo Ataque Finney. Seu principal objetivo é exchanges ou casas de câmbio, onde os invasores podem comprar e vender, suas criptomoedas e tokens sem ser rapidamente detectado.
Mas como isso é possível? Bem, vamos dar uma olhada mais de perto na anatomia desse ataque.
Como esse ataque é executado?
Un Ataque de vetor 76 é executável quando um mineiro desonesto, que tem controle sobre 2 nós completos rede, conecte um deles (nó A) diretamente ao serviço de uma central. Em seguida, o segundo nó completo (nó B), o interconecta com outros nós que estão bem posicionados dentro da rede blockchain. Para saber a quais nós se conectar, o minerador deve monitorar quando os nós transmitem as transações e como eles as propagam para os outros nós da rede. Assim, você poderá saber quais nodos são os primeiros a transmitir operações e poderá se conectar com o serviço de destino e com nodos bem posicionados.
Depois de estabelecer as conexões necessárias, o minerador gera um bloco válido de forma privada. Nesse momento, crie um par de transações, que terão valores diferentes, sendo uma transação de alto valor e uma transação de baixo valor. Por exemplo, a primeira transação pode ser 25 BTC ou mais, e a segunda apenas 0.1 BTC. Posteriormente, o minerador mantém o bloco minerado em espera e atribui ao nó A a transação de alto valor, ou seja, a transação 25 BTC. Essa será a transação que será direcionada para fazer um depósito dentro do serviço da bolsa.
Quando o mineiro detecta um anúncio de bloco na rede, ele transmite imediatamente o bloco pré-terminado por ele, diretamente ao serviço de troca, junto com o bloco gerado recentemente na rede. Isso na esperança de que o restante dos nós considere seu bloco válido e os assuma como parte da cadeia principal. Assim, este bloco será confirmado e, portanto, a transação de 25 BTC incluída nele é validada.
Depois que o serviço de troca confirmar a transação de 25 BTC, o atacante faz uma retirada da troca pela mesma quantidade de criptomoedas que eles depositaram na transação anterior (25 BTC). O atacante envia a segunda transação criada, a transação 0.1 BTC, para a rede a partir do nó B. Para criar uma bifurcação que faz com que a rede rejeite e invalide a primeira transação. Se este fork sobreviver, a primeira transação com o depósito de 25 BTC será invalidada, mas a retirada será feita. Portanto, o atacante terá êxito e a troca perderá 25 BTC.
Probabilidade de ataque de sucesso
Todos esses processos ocorrem imediatamente e simultaneamente, portanto, é muito provável que a transação de 0.1 BTC seja considerada a cadeia principal. Mas, alguns blocos depois, a transação de depósito com 25 BTC é invalidada. Isso ocorre porque o Nó B, que transmite a transação de 0.1 BTC, está conectado a nós bem posicionados que retransmitirão essa transação muito mais rápido na rede. Já o Nó A, que contém a transação de depósito de 25 BTC, está diretamente conectado apenas ao serviço da bolsa. Este nó terá que retransmitir a referida transação para outros nós, por isso é muito mais lento do que o nó B.
Caso contrário, em que o bloco aceito na cadeia principal contenha a transação de 25 BTC, o invasor só retirará os 25 BTC que depositou na bolsa. Portanto, o Vector Attack 76 não teria êxito. Ainda assim, neste cenário não há perdas ou ganhos, nem para o atacante nem para a troca.
Explicou isso, pode ser detectado que existe uma alta probabilidade de sucesso na execução desse tipo de ataque. Mas, mesmo assim, não é comum fazê-lo porque é necessário que uma troca aceite fazer pagamentos de retirada após apenas uma confirmação, e a grande maioria das trocas geralmente exige de 2 a 6 confirmações.
No entanto, uma empresa que oferece bens ou serviços digitais também pode ser vítima desse tipo de ataque.
Quanto você sabe, cryptonuta?
A existência do Vector 76 Attack é um sinal da falta de segurança do blockchain?FALSO!
Todos os sistemas apresentam vulnerabilidades devido à sua infraestrutura, mas conhecer esses erros e resolvê-los é essencial para aumentar sua segurança. O Bitcoin é o melhor exemplo disso, o Ataque do Vetor 76 é algo estrutural, mas só é possível se essa estrutura não for extensa e descentralizada o suficiente, algo que a comunidade conheça e dê motivo para divulgar cada vez mais para para torná-lo mais seguro.
Como se proteger de um ataque Vector 76?
Para se proteger desses tipos de ataques, algumas recomendações devem ser levadas em consideração:
- Use sistemas que não aceitam transações com uma única confirmação. O Vector Attack 76 requer que isso seja possível para realizar o ataque com êxito. Em vez disso, o mínimo que devemos esperar é ter 2 commits, ou mesmo 6, como é amplamente recomendado.
- O nó que usamos deve evitar ter conexões de entrada habilitadas, ou falhar, definindo conexões de entrada de computadores bem reconhecidos. Isso evita que o invasor injete informações falsas sobre o blockchain em nosso nó.
- Conexões de nós de saída também devem ser monitoradas e permitidas apenas para nós bem conhecidos. Isso evita que nossos nós forneçam informações sobre o estado da cadeia que manipulamos.
Com essas medidas, podemos nos proteger desse tipo de ataque sem grandes problemas.