Protegendo o Mempool: Novas Estratégias Contra Ataques
Uma visão geral da segurança do mempool e medidas propostas para prevenir ataques de expulsão.
― 6 min ler
Índice
No mundo das blockchains públicas, as transações que ainda não foram confirmadas precisam de um lugar pra esperar antes de serem adicionadas a um bloco. Essa área de espera é chamada de mempool, que tá em todo nodo da blockchain. O mempool guarda transações não confirmadas até que elas sejam agrupadas em blocos e confirmadas. Por exemplo, no Ethereum, diferentes tipos de software chamados clientes gerenciam os seus Mempools. Alguns clientes conhecidos são Geth, Nethermind e Erigon. Esses clientes ajudam a processar transações públicas e privadas.
Dos Mempools
A FunçãoO mempool tem um papel crucial no ecossistema da blockchain. Ele permite que as transações sejam armazenadas e gerenciadas de forma eficiente. Quando uma transação é enviada, ela viaja pela rede, chegando a vários nós. Cada nó tem seu próprio mempool. Se o mempool de um nó estiver cheio, ele precisa decidir quais transações manter e quais descartar. Essa decisão geralmente é baseada nas taxas anexadas a cada transação; transações com taxas mais altas costumam ser priorizadas.
No entanto, essa natureza aberta dos mempools traz um risco. Qualquer um pode enviar transações, incluindo pessoas mal-intencionadas que podem querer atrapalhar a rede. É aí que entram os ataques de negação de serviço (DoS). Num ataque DoS, um atacante inunda o mempool com transações falsas, impedindo que transações legítimas sejam processadas. Essa interrupção pode impactar vários aspectos da blockchain, como o processamento de transações, extração de valor e a eficiência geral da rede.
Tipos de Ataques nos Mempools
Estudos recentes identificaram várias formas de os atacantes explorarem os mempools. Um ataque em particular conhecido como ADAMS (Negação Assimétrica de Serviços do Mempool) permite que um atacante use transações de baixo custo para expulsar transações legítimas com taxas mais altas. Em outras palavras, um atacante pode bombardear o mempool com transações de baixa taxa que atrapalham o fluxo de transações normais sem custar muito dinheiro.
O primeiro ataque ADAMS conhecido envolveu o envio de transações inválidas, que não geram taxas, para expulsar transações normais do mempool. Outro ataque chamado MemPurge visa especificamente o mempool do Ethereum. Ele envia transações inválidas manipuladas para empurrar as legítimas para fora da área de espera.
Esses ataques geralmente seguem um padrão relativamente fácil de detectar. No entanto, formas mais avançadas e sutis de ataques foram desenvolvidas, que podem evitar a detecção e são mais difíceis de prevenir.
Soluções Atuais e Suas Limitações
Normalmente, a abordagem para proteger os mempools de ataques DoS envolve corrigir vulnerabilidades existentes. Esse método reativo não é à prova de falhas. Novos métodos de ataque ainda não descobertos podem surgir, que podem contornar essas correções. Como resultado, há uma necessidade de uma compreensão mais formal da segurança do mempool para garantir que os mempools possam resistir a vários vetores de ataque.
Para efetivamente garantir a segurança dos mempools, uma estrutura de segurança abrangente é essencial. Essa estrutura deve delinear definições e protocolos claros que possam se adaptar a ameaças em evolução. Os métodos existentes para detectar e responder a ataques não garantem proteção total. Uma abordagem mais proativa é necessária para se proteger contra ameaças conhecidas e desconhecidas.
Medidas de Segurança Propostas
Para melhorar a segurança do mempool, uma nova estrutura foi proposta focando em prevenir ataques de expulsão assimétrica. Isso envolve definir o que significa segurança de expulsão e criar novas políticas para reforçar a proteção do mempool.
Uma política proposta chama-se saferAd-CP. Essa política visa definir limites nas taxas de transação para transações que seriam permitidas no mempool. Especificamente, ela garante que qualquer transação que entre no pool deve ter uma taxa que seja maior do que a transação de taxa mais baixa atualmente no mempool. Isso cria um cenário onde atacantes não podem simplesmente expulsar transações a um custo desprezível.
Implementando a Política SaferAd-CP
A política saferAd-CP foi implementada dentro de um cliente específico do Ethereum chamado Geth. Essa implementação é crucial para testar a eficácia da nova política em cenários do mundo real. O mempool é monitorado de perto para avaliar seu desempenho sob condições normais e durante simulações de ataque.
Ao testar quão bem a saferAd-CP pode lidar com várias cargas de trabalho, os resultados mostram que ela não impacta significativamente a receita média gerada por bloco. Em essência, a política mantém os níveis de receita semelhantes aos vistos no Geth sem a nova política, enquanto oferece melhor proteção contra ataques de expulsão.
Avaliação de Desempenho
Para garantir que a política saferAd-CP seja efetiva, avaliações de desempenho extensivas são realizadas. Essas avaliações envolvem realizar experimentos que simulam vários tipos de cargas de transação. Os resultados indicam que a sobrecarga em termos de tempo e utilização de recursos é negligenciável, o que é um resultado positivo para os usuários.
Ao olhar para cargas de trabalho específicas, fica evidente que a nova política implementada protege o mempool melhor do que sua antecessora. Por exemplo, quando enfrentando ataques conhecidos, a saferAd-CP permite que o mempool continue processando transações efetivamente, enquanto mantém um olho nas taxas gerais.
Conclusão
Em conclusão, o mempool é um aspecto vital da operação da blockchain, especialmente no Ethereum. À medida que a tecnologia blockchain continua a evoluir, também evoluem os métodos de ataque. A introdução de políticas como a saferAd-CP mostra promessas em melhorar a segurança dos mempools. Ao garantir que transações legítimas possam ficar no mempool sem serem expulsas por ataques de baixo custo, a rede blockchain pode manter sua eficiência e estabilidade.
Esse desenvolvimento é essencial, pois permite que sistemas de blockchain lidem melhor com o tráfego e protejam os interesses dos usuários, tornando a rede mais confiável e robusta.
Título: Asymmetric Mempool DoS Security: Formal Definitions and Provable Secure Designs
Resumo: The mempool plays a crucial role in blockchain systems as a buffer zone for pending transactions before they are executed and included in a block. However, existing works primarily focus on mitigating defenses against already identified real-world attacks. This paper introduces secure blockchain-mempool designs capable of defending against any form of asymmetric eviction DoS attacks. We establish formal security definitions for mempools under the eviction-based attack vector. Our proposed secure transaction admission algorithm, named \textsc{saferAd-CP}, ensures eviction-security by providing a provable lower bound on the cost of executing eviction DoS attacks. Through evaluation with real transaction trace replays, \textsc{saferAd-CP} demonstrates negligible latency and significantly high lower bounds against any eviction attack, highlighting its effectiveness and robustness in securing blockchain mempools.
Autores: Wanning Ding, Yibo Wang, Yuzhe Tang
Última atualização: 2024-07-24 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2407.03543
Fonte PDF: https://arxiv.org/pdf/2407.03543
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.
Ligações de referência
- https://www.ctan.org/tex-archive/macros/latex/required/graphics/
- https://www.ctan.org/tex-archive/info/
- https://www.tug.org/applications/pdftex
- https://www.michaelshell.org/
- https://www.michaelshell.org/tex/ieeetran/
- https://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
- https://www.ieee.org/
- https://www.latex-project.org/
- https://www.michaelshell.org/tex/testflow/
- https://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/
- https://www.ctan.org/tex-archive/macros/latex/contrib/cite/
- https://www.ctan.org/tex-archive/macros/latex/contrib/ps4pdf/
- https://www.ctan.org/tex-archive/macros/latex/contrib/preview/
- https://www.ctan.org/tex-archive/macros/latex/contrib/psfrag/
- https://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/
- https://www.ctan.org/tex-archive/macros/latex/contrib/acronym/
- https://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/
- https://algorithms.berlios.de/index.html
- https://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/
- https://www.ctan.org/tex-archive/macros/latex/required/tools/
- https://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/
- https://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/
- https://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/
- https://www.ctan.org/tex-archive/macros/latex/contrib/subfig/
- https://www.ctan.org/tex-archive/macros/latex/contrib/caption/
- https://www.ctan.org/tex-archive/macros/latex/base/
- https://www.ctan.org/tex-archive/macros/latex/contrib/sttools/
- https://www.ctan.org/tex-archive/macros/latex/contrib/endfloat/
- https://www.ctan.org/tex-archive/macros/latex/contrib/misc/
- https://www.ctan.org/tex-archive/support/thumbpdf/
- https://www.ctan.org/tex-archive/macros/latex/contrib/breakurl/
- https://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/
- https://www.michaelshell.org/contact.html
- https://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/
- https://www.michaelshell.org/tex/ieeetran/bibtex/
- https://en.wikibooks.org/wiki/LaTeX/Algorithms_and_Pseudocode#Typesetting_using_the_algorithmicx_package
- https://tex.stackexchange.com/questions/7032/good-way-to-make-textcircled-numbers
- https://tex.stackexchange.com/questions/99493/how-to-make-the-line-number-in-algorithm-shown-in-bold/99515#99515
- https://en.wikibooks.org/wiki/LaTeX/Paragraph_Formatting#Line_spacing
- https://ctan.org/pkg/pifont
- https://en.wikibooks.org/wiki/LaTeX/Tables#The_tabular.2A_environment_-_controlling_table_width