Cabo Verde Crypto Community
No Result
View All Result
  • News
  • Cabo Verde
    • test page CV community
  • Blockchain
  • Exchanges
  • Investment
  • Analysis
  • Bitcoin
  • Altcoin
  • Web3
  • DeFi
  • NFT
  • Mining
Live Price
  • News
  • Cabo Verde
    • test page CV community
  • Blockchain
  • Exchanges
  • Investment
  • Analysis
  • Bitcoin
  • Altcoin
  • Web3
  • DeFi
  • NFT
  • Mining
Cabo Verde Crypto Community
No Result
View All Result
Home Altcoin

Overflow e Underflow de números inteiros em contratos inteligentes | por Ranjithkumar | O lado negro | Janeiro de 2024

22/01/2024
in Altcoin
Reading Time: 6 mins read
0 0
0
Overflow e Underflow de números inteiros em contratos inteligentes |  por Ranjithkumar |  O lado negro |  Janeiro de 2024
Share on FacebookShare on Twitter


Ranjithkumar
O lado obscuro

Hoje, vamos nos aprofundar em um aspecto crucial do desenvolvimento de contratos inteligentes – Integer Overflow e Underflow. Como desenvolvedor de contratos inteligentes com foco na concepção de contratos inteligentes complexos, compreender essas vulnerabilidades é essencial para garantir a segurança e a confiabilidade de seus contratos inteligentes.

O que é estouro/underflow de número inteiro?

Overflow e underflow de inteiros são erros de programação comuns que ocorrem quando o resultado de uma operação aritmética excede o máximo ou fica abaixo do valor mínimo representável para um determinado tipo de inteiro.

No contexto dos contratos inteligentes, que muitas vezes envolvem o tratamento de grandes quantidades de valor e dados, estas vulnerabilidades podem ter consequências graves. Vamos explorar cada um:

Estouro de número inteiro: O estouro de número inteiro ocorre quando o resultado de uma operação aritmética excede o valor máximo que pode ser armazenado no tipo de variável designado. No Solidity, a linguagem de programação para contratos inteligentes Ethereum, um overflow em um tipo inteiro não assinado será zero, enquanto em um tipo inteiro assinado, ele será retornado ao valor mínimo representável.

function overflowExample (uint8 a, uint8 b) public pure return (uint8) {uint8 resultado = a + b;return resultado;}

Se a soma de aeb exceder 255, o resultado será um valor entre 0 e 255.

Underflow de inteiro: Por outro lado, underflow de inteiro ocorre quando o resultado de uma operação aritmética fica abaixo do valor mínimo representável para um determinado tipo de variável. No Solidity, um underflow em um tipo inteiro não assinado irá contornar o valor máximo, enquanto em um tipo inteiro assinado, ele envolverá o valor positivo máximo representável.

função underflowExample (uint8 a, uint8 b) retornos puros públicos (uint8) {resultado uint8 = a – b; resultado de retorno;}

Se b for maior que a, ocorrerá um underflow, resultando em um valor inesperado.

Mitigação de estouro/subfluxo de números inteiros: para evitar essas vulnerabilidades, considere implementar as seguintes práticas recomendadas:

Biblioteca SafeMath: Use bibliotecas SafeMath em seus contratos inteligentes. Essas bibliotecas fornecem operações aritméticas seguras que verificam automaticamente overflow e underflow, evitando esses problemas.

Exemplo:

// Usando a biblioteca SafeMath usando SafeMath para uint256;

função safeAdd (uint256 a, uint256 b) retornos puros públicos (uint256) {return a.add (b);}

Validação de dados: valide as entradas e garanta que o resultado das operações aritméticas esteja dentro de intervalos aceitáveis ​​antes de executar funções críticas.

Exemplo:

function safeSubtract(uint256 a, uint256 b) public pure return (uint256) {require(b <= a, "Subtração resultaria em underflow");return a - b;}

Compreender como os invasores podem explorar vulnerabilidades de overflow e underflow de inteiros é crucial para projetar contratos inteligentes seguros. Vamos mergulhar nos detalhes

Exploração de underflow inteiro

Cenário: Considere um contrato inteligente que permite aos usuários sacar fundos. O contrato deduz o valor solicitado do saldo do usuário.

function retiradaFunds(uint256 amount) public {// Dedução de saldo simplificada sem underflow checkbalances(msg.sender) -= amount;// Lógica adicional para retirada de fundos}

Exploração: um invasor pode explorar isso retirando mais fundos do que seu saldo atual. Sem verificações de underflow, o saldo atingiria o valor máximo, permitindo que o invasor tivesse efetivamente um grande saldo positivo.

Mitigação: Para evitar estouro negativo, sempre valide os parâmetros de entrada e certifique-se de que o resultado das operações aritméticas esteja dentro dos intervalos aceitáveis ​​antes de atualizar o estado.

function retiradaFunds(uint256 amount) public {require(amount <= balances(msg.sender), "Fundos insuficientes");balances(msg.sender) -= amount;// Lógica adicional para retirada de fundos}

Conclusão: No mundo do desenvolvimento de contratos inteligentes, onde a segurança é fundamental, compreender e mitigar as vulnerabilidades de overflow e underflow de inteiros é crucial. Ao incorporar as melhores práticas, como o uso de bibliotecas SafeMath e a validação de entradas de dados, você pode aumentar a robustez de seus contratos inteligentes. Boa codificação!

Postado originalmente em



Source link

Tags: contratosinteirosinteligentesjaneiroladonegronúmerosOverflowporRanjithkumarUnderflow
Previous Post

🔴 ETFs Pressionam Bitcoin | Esta semana na criptografia – 22 de janeiro de 2024

Next Post

Mitigar ataques frontais em contratos inteligentes? | por Ranjithkumar | O lado negro | Janeiro de 2024

Next Post
Mitigar ataques frontais em contratos inteligentes?  |  por Ranjithkumar |  O lado negro |  Janeiro de 2024

Mitigar ataques frontais em contratos inteligentes? | por Ranjithkumar | O lado negro | Janeiro de 2024

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Subscribe

* indicates required
/* real people should not fill this in and expect good things - do not remove this or risk form bot signups */

Intuit Mailchimp

Recent News

Awakens de baleia de bitcoin adormecida: o BTC OG gira em US $ 577M eth Long

Awakens de baleia de bitcoin adormecida: o BTC OG gira em US $ 577M eth Long

22/08/2025
Momentum de Cardano ETF desaparece enquanto as baleias se reúnem para isso sob o altcoin baseado em RADAR ETH

Momentum de Cardano ETF desaparece enquanto as baleias se reúnem para isso sob o altcoin baseado em RADAR ETH

22/08/2025
Eu arrisquei tudo para construir minha empresa. Quatro anos depois, aqui está o que aprendi sobre a construção de sucesso real e duradouro

Eu arrisquei tudo para construir minha empresa. Quatro anos depois, aqui está o que aprendi sobre a construção de sucesso real e duradouro

22/08/2025
Interpol Busts 1.200 cibercriminosos no Raid Global Crypto

Interpol Busts 1.200 cibercriminosos no Raid Global Crypto

22/08/2025
As empresas do Tesouro do Bitcoin ainda são um investimento inteligente em 2025?

As empresas do Tesouro do Bitcoin ainda são um investimento inteligente em 2025?

22/08/2025
Nos bastidores em Finovatefall: Spotlight no Video Studio

Nos bastidores em Finovatefall: Spotlight no Video Studio

22/08/2025
Cabo Verde Crypto Community

Receba as últimas notícias e atualizações sobre criptografia em Crypto.cv. Notícias sobre Bitcoin, notícias sobre Altcoin, notícias sobre Blockchain, análises e mais notícias!

Categorias

  • Altcoin
  • Analysis
  • Bitcoin
  • Blockchain
  • Cabo Verde
  • Crypto Exchanges
  • Crypto Updates
  • DeFi
  • Investment
  • Mining
  • NFT
  • Uncategorized
  • Web3
No Result
View All Result

Subscribe

* indicates required
/* real people should not fill this in and expect good things - do not remove this or risk form bot signups */

Intuit Mailchimp

  • About
  • DMCA
  • Disclaimer
  • Cookie Privacy Policy
  • Privacy Policy
  • Terms and Conditions
  • Contact us

Copyright © 2023 Crypto.cv.
A Crypto.cv não se responsabiliza pelo conteúdo de sites externos.

No Result
View All Result
  • News
  • Cabo Verde
    • test page CV community
  • Blockchain
  • Exchanges
  • Investment
  • Analysis
  • Bitcoin
  • Altcoin
  • Web3
  • DeFi
  • NFT
  • Mining

Copyright © 2023 Crypto.cv.
A Crypto.cv não se responsabiliza pelo conteúdo de sites externos.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
Please enter CoinGecko Free Api Key to get this plugin works.
Translate »