Ataques hipotéticos a criptomoedas

Neste guia, vamos analisar vários ataques que podem acontecer à sua criptomoeda (principalmente bitcoin). Embora seja verdade que a maioria dos ataques sobre os quais falaremos são puramente hipotéticos por natureza, já vimos exemplos da vida real de alguns dos ataques descritos aqui (Mt. Gox e Maleabilidade de transação). Antes de começarmos, um grande elogio ao vídeo “Teoria dos jogos e ataques de rede”, de “Blockchain em Berkley”, por fornecer a inspiração para o artigo.

Ataques hipotéticos a criptomoedas

Ataques hipotéticos a criptomoedas

Observação: usaremos muito esses dois termos no artigo abaixo, então vamos defini-los agora:

  • Blocos órfãos também conhecidos como órfãos: Blocos que não puderam ser adicionados à cadeia principal, apesar de terem sido minerados com sucesso.
  • Hashrate: Basicamente significa o quão poderosos são os recursos computacionais do mineiro.

Então, sem mais delongas, vamos começar.

O que são piscinas de mineração?

Antes de entrarmos nas descrições de vários ataques, vamos entender o que é um pool de mineração (nesta seção, falaremos exclusivamente sobre BTC). Todo o blockchain funciona por causa de uma rede de “mineiros”. Os mineiros basicamente “mineram” novos blocos no blockchain, resolvendo quebra-cabeças criptográficos complexos usando seu poder computacional. Como resultado, eles recebem uma recompensa de mineração de 12,5 BTC.

Depois de minerar com sucesso um bloco, eles ganham o poder de realizar transações dentro do bloco. É basicamente assim que as transações acontecem em todas as criptomoedas, um minerador coloca no registro da transação dentro do bloco.

Agora lembre-se de uma coisa, há apenas um número limitado de bitcoins criados (21 milhões de moedas). Satoshi Nakamoto, o criador dos bitcoins, imaginou que, à medida que mais e mais mineiros entrassem, a taxa de mineração de bitcoins aumentaria exponencialmente, tanto que todos os bitcoins disponíveis poderiam ser extraídos em alguns anos!

Agora, isso pode ser um desastre para os bitcoins, porque como todas as commodities econômicas, o valor do bitcoin está na oferta e na demanda. Se a oferta de bitcoins aumentar repentinamente, isso diminuiria a demanda, o que, por sua vez, prejudicaria seu valor. A relação oferta-demanda é um dos conceitos econômicos mais críticos, o seguinte é a aparência do gráfico oferta-demanda:

Ataques hipotéticos a criptomoedas

Para evitar que o fornecimento de bitcoins saia do controle e torná-lo um modelo mais sustentável, Satoshi implementou um sistema de ajuste de dificuldade.

O que é ajuste de dificuldade? À medida que mais e mais blocos são minerados, a dificuldade dos quebra-cabeças criptográficos aumenta exponencialmente. Basicamente, quanto mais bitcoins você extrai, mais difícil se torna o processo de mineração. Os mineiros logo descobriram que não podiam mais minerar com eficiência por conta própria, o processo estava ficando cada vez mais caro. Então, eles decidiram reunir seus recursos e formar panelinhas e grupos para extrair bitcoins de maneira mais eficiente. Esses grupos de mineiros são chamados de “piscinas de mineração”.


Vantagens e desvantagens de piscinas de mineração

Vantagens

  • Os pools são administrados por gerentes de pools. É muito mais fácil atualizar a rede geral porque em vez de coordenar com mineradores independentes aleatórios, os gerentes de piscina podem simplesmente atualizar a rede por si próprios.
  • Reduz a variação nas recompensas de mineração: um dos maiores motivos pelos quais os mineiros entram em pools é reduzir a variação em suas recompensas de mineração. Para entender o que significa variância e como isso afeta os mineiros, precisaremos fazer um pouco de matemática. Agradecemos a L.M. Goodman e seu artigo médio pela explicação. Primeiro, vamos entender o que é distribuição Bernoulli. A distribuição de Bernoulli basicamente afirma que para cada distribuição discreta que tem dois resultados “sucesso” e “falha” se a probabilidade de sucesso for p (onde, 0

    Agora, vamos definir “desvio padrão”. O desvio padrão é um termo que define o quanto os membros de um determinado grupo distribuído variam em relação à média do grupo.

No contexto do blockchain e neste exemplo, o desvio padrão é o quanto a recompensa deste mineiro será desviada da recompensa esperada.

Desvio padrão = [sqrt] variância / retorno esperado.

Agora, como sabemos:

  • variância = 365 * 24 * 6 * p * (1-p)
  • retorno esperado = 365 * 24 * 6 * p

Então, ao substituir esses valores, obtemos:

  • Desvio padrão = [sqrt] (365 * 24 * 6 * p * (1-p)) / 365 * 24 * 6 * p

Agora vamos dar um exemplo. Suponha que um minerador possua 0,01% da taxa de hash na rede. (Significa p = 0,0001).

Se você substituir os valores de acordo com a equação do desvio padrão, obterá um desvio padrão de 0,4364 OU 43,6%!! Um desvio de 43,6% da recompensa esperada ou um minerador que possui uma taxa de hash de 0,01%.

A única solução para diminuir este desvio e variância é reunir recursos para aumentar a porcentagem geral da taxa de hash, que é exatamente o que os pools de mineração oferecem.

Contras

  • Muito depende da ética do gerente da piscina.
  • Centralização: A maior crítica que a maioria dos pools enfrenta é que eles levam à centralização das moedas. Vamos ver o que queremos dizer com isso. Verifique a distribuição de hashrate de bitcoin:Ataques hipotéticos a criptomoedasCortesia da imagem: Blockchain.info ~ 50% do suprimento mundial de bitcoin está sendo extraído por 4 piscinas !! Apenas 4! O Bitcoin deveria ser uma moeda descentralizada, mas quão descentralizada pode realmente ser se quase metade dela for controlada por 4 pools? Infelizmente, este não é um problema exclusivo do Bitcoin, verifique o gráfico de distribuição de hashrate de Monero:Ataques hipotéticos a criptomoedas

    Cortesia da imagem: Monero Hash.In Monero 42,6% da oferta é controlada por 1 grupo desconhecido!!

    Quando um pool assume uma participação cada vez maior no gráfico de distribuição de hashrate, ele derrota o propósito da descentralização. Já vimos como os mineiros são importantes no contexto de um blockchain. Quando um grupo de mineiros controla tanto haxixe, eles tendem a se tornar a autoridade central. Na verdade, quando um grupo de mineradores assume 51% do hashrate da rede, eles automaticamente iniciam um ataque chamado de “O ataque de 51%”.

Qual é o ataque de 51%?

O ataque de 51% ocorre quando 51% do hashrate da rede está sob uma única entidade. Essa entidade pode ser uma piscina de mineração ou uma figura de autoridade. No momento em que 51% do hashrate está sitiado, ele basicamente destrói a natureza descentralizada e abre a rede para uma infinidade de ataques:

  • Mineração egoísta.
  • Cancelando todas as transações.
  • Gastos em dobro.
  • Garfos aleatórios.

Agora, antes de passarmos por cada um desses ataques, vamos ver como e quando um ataque de 51% pode acontecer.

Caso 1: Uma piscina de mineração se torna muito grande

A forma mais comum de ataques de 51% pode acontecer quando um pool de mineração se torna muito grande e obtém mais de 51% de hashrate. Na verdade, isso já aconteceu antes com o bitcoin. Em julho de 2014, a popular piscina de mineração GHash.io ultrapassou 51% de hashrate. Eles então se reduziram voluntariamente e declararam explicitamente que nunca ultrapassariam 39,99% de hashr.

Em agosto de 2016, Krypton e Shift, que são duas cadeias de bloqueio baseadas em Ethereum, sofreram ataques de 51%.

Caso 2: Tendo capital ilimitado

Uma entidade poderosa com capital ilimitado (como um país ou um bilionário) pode comprar equipamento suficiente para assumir o controle de uma blockchain. Outra variação interessante disso é um “ataque de dedo de ouro”.

Imagine isso, suponha que você seja uma entidade hostil e tenha um capital ilimitado à sua disposição. Você pode, em teoria, comprar todos os ASICs e GPUs necessários para iniciar uma aquisição de 51% da cadeia. Você pode então prosseguir para destruir o valor da moeda iniciando gastos em dobro ou aumentando a cadeia com transações de spam.

Caso 3: A prova de problema de aquisição de trabalho

Agora, este é um cenário muito interessante e diabólico. Vitalik Buterin deu um ótimo exemplo disso, mostrando como o problema de aquisição pode acontecer na Ethereum.

Suponha que alguém faça um contrato inteligente hipotético para uma atividade. Os termos do contrato são assim:

  • Qualquer minerador pode participar da atividade enviando um depósito muito grande para o contrato.
  • Os mineiros devem enviar ações dos blocos parcialmente concluídos que eles mineraram no contrato e o contrato verifica isso e também verifica se você é um minerador e se tem poder de hash suficiente.
  • Antes que 60% dos mineiros no sistema ingressem, você pode sair quando quiser.
  • Depois que 60% dos mineiros ingressarem, você estará vinculado ao contrato até que os 20 blocos tenham sido adicionados à corrente de forquilha, também conhecida como corrente vermelha.

Ataques hipotéticos a criptomoedas

Não apenas a nova cadeia ficará maior e mais longa, uma vez que 60% de todos os mineiros estão contratualmente vinculados a esta nova cadeia, isso tornará rapidamente a cadeia original mais antiga, também conhecida como cadeia azul, irrelevante.

Agora, você pode estar se perguntando por que os mineiros vão aderir a uma aquisição?

Bem, vamos ver o incentivo para ingressar:

  • Possível recompensa no final.
  • Nenhum risco de adesão por parte deles.

Qual é o seu incentivo para cumprir o contrato?

  • A enorme quantia que eles depositaram no início.
  • Mais uma vez, a possibilidade de uma grande recompensa.

Portanto, em poucas palavras, são alguns exemplos de como o hashrate de 51% pode ser assumido por uma entidade. Agora, vamos ver as repercussões de tal ataque.

Quais são as repercussões de um ataque de 51%?

Conforme discutido acima, os 4 principais ataques que podem acontecer diretamente como resultado do ataque de 51% são:

  • Mineração egoísta.
  • Cancelamento de transações.
  • Gastos em dobro.
  • Garfos aleatórios.

Mineração egoísta

Quando uma entidade consegue obter mais de 51% do poder de hashing, a vantagem computacional que ela tem sobre seus concorrentes é realmente impressionante. Como discutimos antes, os mineiros procuram moedas descobrindo e adicionando blocos ao blockchain. A forma como isso acontece é que eles resolvem quebra-cabeças criptográficos extremamente complicados. Ao descobrir o bloco, toda a rede (ou pelo menos a maioria) precisa reconhecer que ele atende ao critério de prova de trabalho necessário, para então passar a fazer parte da cadeia principal.

Agora, suponha que Alice e Bob sejam dois mineiros. Há uma chance de que ambos resolvam o quebra-cabeça ao mesmo tempo para seus respectivos blocos. Depois disso, é tudo sobre quem a rede escolhe e concorda em explorar. Por exemplo. Se 80% da rede optar por minerar no bloco de Alice, então há uma chance maior de eles virem com o próximo bloco do que os 20% que estão do lado de Bob (devido à maior taxa de hash). Quando isso acontecer, o bloco de Alice se tornará parte da cadeia enquanto Bob se torna um bloco órfão (um bloco não anexado à cadeia principal).

Agora pense nisso. Suponha que Bob tenha 51% da taxa de hash do Bitcoin à sua disposição. Ele pode simplesmente minerar blocos e continuar minerando sem esperar a aprovação da rede, porque ele mesmo representa a maioria (já que possui 51% da taxa de hash). Assim, ele pode simplesmente continuar explorando seus blocos sem se preocupar em informar a rede e coletar todas as recompensas e taxas de transação.

Cancelamento de transações

Como as transações acontecem em criptomoedas? Para encurtar a história, se Alice enviasse 1 BTC para Bob, então Alice teria que enviar a transação depois de assiná-la para os mineiros, que podem então verificar e colocá-la em seus blocos. Dessa forma, Bob pode obter seu 1 BTC. Agora, se o bitcoin estiver abaixo de 51% do ataque, as chances são de que a maioria dos blocos serão minados pelo invasor. Em casos como esse, será totalmente viável para o invasor não aceitar nenhuma transação para nenhum de seus blocos (que podem ser todos os blocos futuros da cadeia). Se isso acontecer, vai destruir o bitcoin.

Gastos em dobro

Um dos muitos papéis importantes que os mineiros têm é a prevenção de “gastos em dobro”. Gastar em dobro significa basicamente gastar exatamente a mesma moeda em mais de uma transação ao mesmo tempo. Este problema é circunavegado por causa dos mineiros. Em um blockchain, as transações acontecem apenas quando os mineiros colocam as transações nos blocos que eles mineraram.

Então, suponha que Alice enviasse 1 bitcoin para Bob e depois mandasse a mesma moeda para Charlie, os mineiros colocariam uma transação dentro do bloco e, no processo, sobrescreveriam a outra, evitando gastos dobrados no processo. No entanto, isso só funciona quando os mineiros não estão comprometidos.

Em um ataque de 51%, os mineiros já foram comprometidos. Como foi afirmado anteriormente, em um ataque de 51%, o invasor provavelmente será aquele que adiciona novos blocos à blockchain. Eles podem então iniciar um gasto duplo em que podem gastar a mesma moeda para fazer mais de uma transação.

Esse ataque geralmente é feito para desvalorizar uma moeda. Como mencionado acima, uma entidade hostil pode iniciar um ataque de “Dedo de Ouro” para gastar duas vezes a moeda indiscriminadamente e destruir seu valor. Gastos em dobro também podem acontecer via “bifurcação”.

Forks Aleatórios

Então, o que é um garfo?

Uma bifurcação é uma condição pela qual o estado da blockchain diverge em cadeias em que uma parte da rede tem uma perspectiva diferente sobre o histórico de transações de uma parte diferente da rede. Isso é basicamente o que é um fork, é uma divergência na perspectiva do estado do blockchain.

Ataques hipotéticos a criptomoedas

No exemplo acima, a corrente vermelha é um garfo da corrente azul principal.

Então, por que uma moeda como o bitcoin, com menos de 51% de ataque, iria querer se desviar da cadeia principal? Suponha que o invasor gastou 20 BTC no bloco 51 para comprar 400 Ethereum (cenário hipotético). Eles podem simplesmente fazer uma bifurcação no bloco 50 para ir para o bloco 51. Quando você bifurca, obterá a quantidade exata de moeda que tinha no bloco anterior, no bloco recém-bifurcado. Basicamente, se o atacante tivesse 20 BTC no bloco 50, no bloco azul 51 ele teria 400 ETH e no bloco vermelho 51 ainda teria 20 BTC.

Então, após a bifurcação, eles ainda teriam seus 20 BTC e 400 ETH adicionais! Este é o gasto duplo que acontece via bifurcação.

Há outro cenário interessante em que um invasor pode escolher fazer um fork. Lembra, como dissemos, menos de 51% atacam a maioria, senão todos, os blocos seriam minados pelo próprio atacante? O que acontecerá se, por sorte, algum mineiro aleatório conseguir criar um novo bloco? Bem, o invasor simplesmente bifurcará a corrente antes deste novo bloco e continuará minerando na nova corrente de qualquer maneira!

Agora, você deve estar pensando, o que fará o restante dos 49% seguirem na nova rede? A resposta para isso está no jogo de coordenação. Lembre-se de que a maioria dos 49% dos mineiros serão espalhados e independentes. Eles vão querer buscar seus próprios interesses. Portanto, neste contexto, olhamos para a teoria dos jogos, em particular o jogo de coordenação, para obter respostas.

Vejamos um exemplo do jogo de coordenação:

Suponha que queremos mudar o idioma para um idioma baseado em símbolos. Por exemplo:

  • Declaração original: “Dê-me seu número?”
  • Nova declaração: “#?”

Se você apenas falar usando esta língua, será um fracasso porque a maioria não entenderá do que você está falando e você será afastado de conversas, também conhecido como a recompensa para você é muito baixa e você não tem incentivo para mudar.

No entanto, se a maioria da sua sociedade mudar para este idioma e usá-lo exclusivamente, você terá que mudar o seu idioma, caso contrário, você nunca será capaz de se adaptar. Agora o incentivo para você entrar é alto.

Use a mesma lógica aqui. A maior parte da taxa de hash já está na cadeia bifurcada. Você sendo o mineiro independente, gostaria de estar na mesma cadeia que a maioria.

Qual a probabilidade de o bitcoin ser suscetível a um ataque de 51%?

Como mencionamos antes, o bitcoin enfrentou esse cenário uma vez, quando o pool de Ghash excedeu 51%, no entanto, a probabilidade de isso acontecer é pequena agora. Para um invasor iniciar um ataque de 51%, os incentivos (inicialmente) são muito baixos. A quantidade de capital necessária para fazer 51% do bitcoin é impressionante. Na verdade, em casos como esse, o preço de mercado do bitcoin é um grande escudo. Quanto mais alto o preço de mercado, mais potência de hash é paga e mais caro se torna um ataque, já que a fonte de recursos fica mais cara.

Agora, vamos ver outras maneiras de atacar o blockchain, que não têm nada a ver com o ataque de 51%. Lembre-se de que a maioria desses exemplos são de natureza puramente hipotética, então não saia soando os alarmes!

O que são “piscinas canibalizantes”?

Vamos fazer um experimento de pensamento.

Suponha que o hashrate total de bitcoin seja 100, dos quais 30 são seus. Você efetivamente tem 30% de hashrate. Agora, suponha que a recompensa de mineração seja 1 BTC, o que significa que, dado que você tem uma taxa de hash de 30%, espera-se que você receba 30% da recompensa de mineração, que é: 0,3 BTC.

Agora, você tem duas opções:

Opção 1: você compra mais equipamentos de mineração

Suponha que você compre equipamentos de mineração que aumentem o seu e o hashrate da rede em 1.

O que significa que originalmente tínhamos assumido que a taxa de hash da rede era 100 e a taxa de hash 30.

Agora, o hashr da rede é 101 e o seu 31, o que significa que você tem 31/101 * 100 = 30,69% do hashr da rede. Isso também significa que você receberá 30,69% da recompensa de mineração, que é 0,3069 BTC. Então, isso significa que para cada 1% de HR adicionado ao seu arsenal, você obtém um ganho de 0,0069 BTC (0,3069 – 0,3000).

Opção 2: você canibaliza a piscina

Então, no exemplo anterior, você adicionou 1% de hashrate ao seu próprio arsenal, e se você distribuísse esse hashrate igualmente entre todos os mineiros e retivesse todos os blocos válidos que você extrai também? Expandiremos sobre “retenção de bloqueio” mais tarde, mas apenas para dar uma breve ideia, basicamente significa que você extrai um bloco, mas não o revela para a rede e apenas o guarda para si mesmo.

Vejamos a matemática por trás disso agora:

Se retirarmos seu hashr de 30% (já que você está retendo seus blocos, você não receberá nenhuma recompensa por meio de seus próprios hashrates), o restante da rede no total teve 70% de hashr.

O que significa que normalmente eles recebem 70% da recompensa do bloco que é, neste caso, 70% de 1 BTC = 0,7 BTC. Mas agora, como você distribuiu aquele hashrate extra de 1% com o resto dos mineiros, é assim que as coisas estão agora:

  • Total hashrate excluindo sua parte = 71.
  • Hashrate honesto = 70.
  • Hashre desonesto = 1.

Como você possui 1/71 de todos os outros hashrate, você obtém:

1/71 * 0,7 = 0,0098 receita BTC do trabalho que outros mineiros têm feito.

Agora, vamos comparar os dois. Se você fizesse uma mineração honesta, receberia 0,0069 BTC e, se fosse desonesto, receberia 0,0098 BTC. Então, é mais lucrativo canibalizar pools do que ser honesto!

O que é bloqueio na fonte?

A retenção de blocos é outra forma de mineração egoísta. Imagine este cenário, você é um minerador na rede bitcoin que usa os ASICs mais sofisticados e melhores. Minar blocos é uma tarefa muito fácil para você.

Então, suponha que você extraia um bock, mas não o revele para a rede. Em vez de anunciar para a rede e receber sua recompensa, você mantém o bloco em segredo e mina em cima desse bloco. Isso é o que parece:

Ataques hipotéticos a criptomoedas

Imagem cortesia: Blockchain em Berkley

Os “blocos secretos” são aqueles que você extraiu e retém do resto da rede. Quando você encontrar outro bloco, você pode revelar os dois blocos para a rede. O que isso fará é o seguinte:

  • Dobre a recompensa que você poderia ter coletado.
  • Seja os ditadores do bloco em dois blocos em vez de um e, portanto, dobre a quantidade que você pode ganhar por meio de taxas de transação.

A razão pela qual é chamado de “egoísta”, é porque você está indo contra a própria ideia de “oportunidades iguais para todos” que a mineração representa. Todos devem ter uma atitude justa na mineração e na descoberta de seus próprios blocos. Além disso, isso também pode levar à monopolização da rede.

De qualquer forma, há duas maneiras de isso acontecer:

Cenário # 1: Um mineiro extrai um bloco depois de você já ter extraído dois blocos

Então, o que acontece se um mineiro conseguir minerar um bloco depois de você já ter extraído 2 blocos em segredo? Ambos irão transmitir as informações para a rede. A rede verá que você tem a cadeia mais longa e dará a seus blocos o controle sobre o outro bloco solitário. O que significa que esse bloco ficará órfão:

Ataques hipotéticos a criptomoedas

Imagem cortesia: Blockchain em Berkley

Cenário 2: Um mineiro extrai um bloco antes que você pudesse extrair um segundo bloco

O que acontecerá se você não for capaz de minerar um segundo bloco sobre o primeiro e alguém já conseguir minerar um bloco?

Ataques hipotéticos a criptomoedas

Você vai transmitir isso para a rede e iniciar uma corrida para aprovação.

No entanto, o fato é que você ainda tem 50% de probabilidade de obter seu bloco aprovado, o que ainda são boas chances de trabalhar.

O que é P + Epsilon Attack

Um sistema de prova de trabalho é vulnerável a um tipo particular de ataque denominado “ataque P + epsilon”. Para entender como esse ataque funciona, devemos definir alguns termos de antemão. Modelo de escolha não coordenada: Um modelo de escolha não coordenada é um modelo onde todos os participantes não têm o incentivo para trabalhar uns com os outros. Os participantes podem formar grupos, mas em nenhum momento o grupo é grande o suficiente para se tornar a maioria.

Modelo de escolha coordenada: este é um modelo onde todos os participantes se coordenam por causa de um incentivo comum.

Agora, presume-se que o blockchain é um modelo descoordenado, mas e se houver um incentivo para os mineiros fazerem uma ação que vai contra a integridade do blockchain? E se houver um suborno envolvido para fazer os mineiros tomarem uma atitude específica? É aqui que entra o modelo de suborno do atacante.

Qual é o modelo de suborno de atacante?

Imagine um modelo descoordenado. Agora, e se um invasor entrar no sistema e incentivar os mineiros a se coordenarem depois de dar a eles um suborno? Esse novo modelo é chamado de modelo de invasor de suborno. Para subornar o sistema com sucesso, o invasor deve ter dois recursos:

  • Orçamento: A quantia total de dinheiro que o invasor tem e está disposto a pagar para fazer os mineiros tomarem uma ação específica.
  • Custo: o preço que o minerador acaba pagando.

No entanto, se um invasor decidir atacar o blockchain, chegamos a um enigma interessante … e é aqui que entra o “ataque p + epsilon”. Para referência, verifique esta tabela:

Ataques hipotéticos a criptomoedas

Imagem cortesia: Apresentação Vitalik Buterin.

Imagine um cenário simples como uma eleição. Se as pessoas votarem em uma determinada pessoa, se votarem da mesma forma que todos estão votando, então elas recebem uma recompensa, mas, do contrário, não. Agora imagine que um suborno entra no sistema e impõe essa condição a um indivíduo. Se você votar E os outros não votarem, você receberá uma recompensa de “P + ε”. A recompensa usual E um suborno extra de ε além disso.

Então, agora, a matriz de recompensa é assim:

Ataques hipotéticos a criptomoedas

Imagem cortesia: Apresentação Vitalik Buterin.

Agora imagine este cenário, todos os envolvidos neste cenário ficam sabendo que se votarem de qualquer maneira, há uma chance de obterem uma recompensa, mas se não votarem, há uma chance de 50-50 de obterem uma Pague.

O que você acha que os jogadores farão então? É claro que eles vão votar para obter uma recompensa garantida. Agora é aqui que as coisas ficam interessantes. Como pode ser visto na matriz, o suborno só tem que pagar o suborno “ε” quando apenas a pessoa vota e as outras não. No entanto, nesta situação, uma vez que todos estão votando, o equilíbrio de Nash muda para:

Ataques hipotéticos a criptomoedas

Isso mesmo, o suborno nem precisou pagar o suborno!

Então, vamos abordar este problema do ponto de vista do subornador:

  • Convença o grupo a votar de uma maneira particular.
  • Alcance a meta sem nem mesmo ter que pagar o suborno.

É um cenário de grande ganho para o suborno e isso tem implicações pesadas no blockchain, especialmente em um sistema de prova de trabalho. Vamos verificar nosso antigo blockchain hipotético novamente:

Ataques hipotéticos a criptomoedas

Suponha que o suborno realmente queira que a corrente seja reforçada e declare que um grupo de mineiros que optar por se juntar à nova corrente receberá um suborno de ε, isso incentivará toda a comunidade mineira a coordenar e ingressar na nova corrente.

Obviamente, o suborno deve ser extremamente alto para que algo assim aconteça, mas, como vimos no modelo do invasor subornador acima, o invasor nem precisará pagar a referida quantia. Segundo Vitalik Buterin este é um dos maiores problemas do sistema de prova de trabalho, sua vulnerabilidade ao ataque P + epsilon.

A solução está na prova de aposta.

A solução para essa forma de ataque impulsionado por incentivos está na prova de jogo. Nesse sistema, os mineiros têm que colocar uma parte de sua fortuna pessoal e investi-la em blocos futuros. Como sistema econômico, isso é muito melhor porque a punição é muito mais severa. Em vez de ter seus direitos tomados e fugir com um “toque de leve”, os mineiros agora enfrentam a possibilidade muito real de sua aposta e fortuna serem tiradas.

Então, como isso ajuda na prevenção de ataques P + epsilon? Coloque-se no lugar de um mineiro. Você tem uma parte de sua fortuna investida em um bloco que será adicionado à cadeia principal. Agora, um subornador vem e diz que você pode obter uma recompensa extra se fizer seu bloco entrar na cadeia principal. MAS, se a rede não for aprovada, há um grande risco de você perder todo o dinheiro que investiu no bloco. Além disso, como afirma o ataque P + Epsilon, você nem mesmo obterá a recompensa extra do suborno. Para um minerador, uma vez que ele investiu uma participação, é óbvio para ele continuar na cadeia principal e não se envolver em quaisquer atividades maliciosas.

O que é uma lista negra?

A lista negra é uma forma de ataque contra uma única entidade. Imagine que existe uma entidade muito proeminente que tem muito capital e eles querem esse cara chamado Jake e querem colocá-los na lista negra da rede. Na verdade, vamos supor que essa entidade seja um país que tem muitos pools sob seu controle, vamos chamar esse país de Aliceland.

Antes de continuar, vamos criar uma legenda:

Ataques hipotéticos a criptomoedas

Esta é a aparência de um bloco normal:

Esta é a aparência dos blocos extraídos por Aliceland:

E é assim que os blocos que incluem as transações de Jake, também conhecidos como blocos de Jake:

Ok, então há duas maneiras de Aliceland colocar Jake na lista negra:

  • Bifurcação punitiva.
  • Bifurcação de pena.

Caso # 1: bifurcação punitiva

Existem duas estratégias diferentes que você pode executar por meio de bifurcação punitiva.

Estratégia 1:

Como Aliceland é um país, ele pode simplesmente ordenar que todos os seus pools não incluam nenhuma transação de Jake em seus blocos. Essa é uma estratégia ingênua porque, para que funcione, há muitas coisas que eles precisam considerar.

Em primeiro lugar, eles precisarão estar no controle de 100% dos pools em seu país. Se pelo menos um pool estiver fora de seu controle, eles podem incluir a transação de Jake em seu bloco. O máximo que eles podem alcançar fazendo isso causa muitos atrasos e inconvenientes.

Estratégia 2:

E se Aliceland quiser fazer bifurcação punitiva E possuir >51% da energia de mineração do mundo? É quando a equação vira completamente. Isso é o que eles terão que fazer.

Em primeiro lugar, eles anunciarão ao mundo que não permitirão mais nenhuma transação que inclua Jake no blockchain e que nenhum de seus pools funcionará em uma rede que tenha um “Jake Block”. Em outras palavras, no momento em que um bloco de Jake aparece, Aliceland iniciará um fork.

Suponha que esta seja a aparência do blockchain:

Ataques hipotéticos a criptomoedas

Agora, imagine que um dos mineiros fora do controle de Aliceland adiciona a transação de Jake em seu bloco e cria um bloco de Jake:

Aliceland ao ver isso iniciará imediatamente um fork. Uma vez que eles já têm uma maioria de 51%, eles podem iniciar a bifurcação sem qualquer consenso de ninguém.

Como eles já anunciaram suas intenções de antemão e porque possuem a maioria de 51%, ninguém ousará ir contra eles e mesmo se eles se rebelarem e incluírem um bloco de Jake, eles serão forçados a torná-lo órfão porque Aliceland pode simplesmente usar seus maioria para bifurcar e continuar.

Caso # 2: bifurcação de pena

Portanto, vimos acima como qualquer pessoa com uma maioria de 51% pode listar qualquer pessoa usando bifurcação punitiva. Agora, o que você pode fazer se quiser colocar alguém na lista negra, mas não possui uma maioria de 51%? Aliceland ainda pode colocar o pobre Jake na lista negra por um método chamado bifurcação de penas. Vamos ver o que isso significa.

Aliceland pode declarar que sempre que um bloco Jake for adicionado, eles tentarão bifurcar, mas desistirão após um certo número de confirmações (Confirmações = o número de blocos minerados no topo do bloco contestado). Isso é diferente de bifurcação punitiva, no sentido de que Aliceland não está ameaçando uma bifurcação permanente; em vez disso, eles estão dizendo que bifurcarão todas as vezes, MAS também voltarão após um certo número de confirmações.

Vejamos um exemplo:

Ataques hipotéticos a criptomoedas

Então o que aconteceu aqui?

Quando o bloco Jake foi adicionado ao sistema, Aliceland fez um fork e esperou por uma confirmação. Nesse caso, a confirmação foi de 1 bloco. No momento em que o bloco foi anexado ao bloco Jake, Aliceland desocupou a bifurcação e se juntou à cadeia principal novamente.

Agora você pode estar pensando: “Isso não é tão ruim.” Mas vamos dar uma olhada na matemática da coisa toda.

Suponha que Aliceland tenha poder de hash “q” onde 0

Então, indo pela distribuição de Bernoulli, a chance de minerar um bloco e bifurcar é q ^ 2.

Seguindo nosso exemplo, assumiremos que Aliceland está esperando por apenas 1 confirmação.

Suponha que Aliceland tenha 20% do poder de hashing do mundo, então q = 0,2 e a chance de minerar um bloco é 0,2 ^ 2 = 0,04 = 4%.

A chance de 4% pode não parecer tão alta, mas os outros mineradores agora estão cientes de que há uma chance de 4% de seus blocos ficarem órfãos SE eles incluírem os blocos de Jake.

Então, qual é o valor esperado (EV) que os mineiros podem obter SE incluírem / não incluírem os blocos de Jake?

  • EV (incluindo bloco de Jake) = (1-q ^ 2) * recompensa do bloco + taxas de transação de Jake.
  • EV (não incluindo o bloco de Jake) = Recompensa do bloco.

Assim, para os mineiros obterem EV igual em ambos os cenários, Jake terá que pagar taxas de transação que são equivalentes a q ^ 2 * recompensa por bloco. Vamos ver quanto isso está no contexto do bitcoin.

Recompensa do bloco = 12,5 btc e, neste exemplo, q ^ 2 = 0,04.

Substituindo os valores nesta equação:

  • q ^ 2 * recompensa do bloco
  • E obtemos: 0,04 * 12,5 = 0,5 BTC.
  • 0,5 BTC, no momento da escrita, é igual a $ 2.091.

Isso é quanto Jake terá que pagar em taxas de transação CADA vez para fazer valer a pena para os mineiros colocar um bloco de Jake na rede principal. Não é o mais conveniente dos cenários, para dizer o mínimo!

O que é maleabilidade de transação?

Vamos começar com uma breve visão geral do que uma função de hashing faz. Uma função de hash pode receber qualquer entrada de qualquer comprimento, mas a saída que ela dá é sempre de um comprimento fixo.

No entanto, existe uma outra função importante do hashing que você precisa saber para entender o “bug da maleabilidade da transação” como é chamado. Qualquer pequena mudança nos dados de entrada mudará drasticamente o hash de saída.

Por exemplo. Verifique este teste que fizemos com SHA-256, também conhecido como algoritmo de hash usado no bitcoin:

Ataques hipotéticos a criptomoedas

Acabamos de mudar o “T” de maiúsculo para minúsculo, e olhamos o que isso fez com a saída!

Mais uma coisa que você precisa entender sobre o blockchain é que ele é imutável, ou seja, uma vez que os dados foram inseridos em um bloco, eles nunca mais poderão ser alterados. Embora isso se prove uma rede de segurança contra a corrupção, havia um ponto fraco que ninguém previu.

E se os dados foram adulterados antes mesmo de entrarem no bloco? Mesmo que as pessoas descobrissem mais tarde, não havia nada que alguém pudesse fazer porque os dados, uma vez inseridos em um bloco, nunca poderiam ser retirados! É por isso que a maleabilidade das transações é um problema tão grande.

Agora, por que a maleabilidade da transação acontece?

Acontece que a assinatura que acompanha os dados de entrada pode ser manipulada, o que por sua vez pode alterar o ID da transação. Na verdade, pode fazer parecer que a transação nem mesmo aconteceu em primeiro lugar. Por exemplo. Suponha que você tenha um conjunto de blocos que diz “3 + 1 = 4” e então alguém vem e muda para “2 + 2 = 4”, o resultado ainda é o mesmo em ambos os casos “4”, mas o interno Os detalhes da transação foram todos muito confusos como resultado.

Vamos ver isso em um exemplo relacionado ao blockchain.

Suponha que Bob queira que Alice envie a ele 3 BTC. Alice inicia uma transação de 3 BTC para o endereço público de Bob e, em seguida, envia para os mineiros para aprovação. Enquanto a transação está esperando na fila, Bob usa a maleabilidade da transação para alterar a assinatura de Alice e alterar o ID da transação.

Agora, há uma chance de que essa transação adulterada seja aprovada antes que Alice seja aprovada, o que por sua vez sobrescreve a transação de Alice. Quando Bob receber seu 3 BTC, ele poderá simplesmente dizer a Alice que não recebeu o 3 BTC que ela lhe devia. Alice verá que sua transação não foi concluída e eles a reenviarão. Como resultado, Bob acabará com 6 BTC em vez de 3 BTC.

Um dos exemplos mais famosos de ataque de maleabilidade de transação foi o ataque Mt Gox de 2014. Mt. Gox era uma das maiores bolsas de bitcoins do mundo e cerca de US $ 450 milhões em bitcoins foram roubados dela.

Agora que o núcleo do bitcoin iniciou o Segwit, ele vai parar a maleabilidade da transação no BTC.

O que é timejacking?

O último ataque possível sobre o qual queremos falar é o “timejacking”. O sistema bitcoin usa uma rede de nós para transmitir mensagens e informações. Cada nó precisa manter o controle do tempo E precisa estar em sincronia com seus outros nós pares. A maneira de fazer isso é mantendo um sistema de relógio interno que por acaso é o mesmo que o tempo mediano calculado de todos os seus pares. Se este tempo mediano difere em mais de 70 minutos do horário do sistema, o relógio interno se reajusta e reverte para o horário do sistema.

Portanto, por precaução, e isso é muito importante para entendermos o ataque, os nós rejeitam qualquer bloco que esteja mais de 120 minutos à frente de seu relógio interno. Agora, suponha que haja um invasor que deseja atacar um nó de destino específico. Como eles farão isso??

  • Primeiro, eles lançam um ataque Sybill à rede bitcoin. Um ataque Sybill é um ataque em que um invasor tem controle sobre vários nós na rede. Isso pode acontecer gerando milhares de nós falsos e anexando-os à rede. Ao fazer o ataque, o invasor manipula as marcas de tempo dos nós em tal de forma que o nó de destino esteja 70 minutos atrasado em relação ao relógio, enquanto todos os outros nós estão 70 minutos à frente (Por que 70? De modo que ainda está abaixo do limite de 70 minutos e o relógio não reverte). Isso basicamente cria um intervalo de 140 minutos entre o nó de destino e o resto da rede.
  • Agora, o invasor, usando seu poder de hashr, extrai um novo bloco com um carimbo de hora que está 190 minutos à frente do tempo real.
  • Quando este novo bloco é difundido, o nó alvo imediatamente o rejeita, pois, segundo eles, não está dentro do limite de 120 min. Para o nó de destino, o bloco está (190 + 70), 260 minutos atrás.
  • No entanto, todos os outros nós aceitam o bloco porque está dentro do limite de 120 minutos (190-70 = 120) e os mineradores em todos esses outros nós começam a minerar nele.
  • Portanto, o invasor agora particionou com êxito o nó de destino do resto da rede. O nó de destino começa a trabalhar em sua própria cadeia enquanto todos os outros estão trabalhando na sua.
  • O invasor agora pode extrair mais blocos livres do nó de destino e se envolver em gastos duplos. Na verdade, se eles continuarem ajustando o relógio, eles podem mantê-lo funcionando indefinidamente.

Timejacking é uma proposição muito assustadora. Na verdade, um grupo de mineiros mal-intencionados pode roubar o tempo de um grupo de mineiros e tirá-los do sistema e aumentar sua porcentagem de hashr no processo.

Conclusão de ataques hipotéticos em criptomoedas

Então, essa é uma lista de possíveis ataques que podem acontecer a criptomoedas. Lembre-se de que esses ataques, ou pelo menos a maioria deles, são de natureza puramente hipotética. A ideia é não aumentar a paranóia; a ideia é educar todos sobre a criptomoeda e a tecnologia por trás dela. Se você consegue pensar em um possível ataque hipotético que ainda não mencionamos, comente abaixo e informe a todos nós.

 

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map