Integer Overflow en Solidity

[crayon-6a6187e334eb6621327308/]

Este contrato de Solidity ilustra un ejemplo de desbordamiento de enteros. Veamos el código paso a paso:

  1. contract IntegerOverflowExample: Aquí se define el contrato IntegerOverflowExample.
  2. uint public maxValue = 2**256 – 1 En esta línea se declara una variable pública maxValue de tipo uint (entero sin signo de 256 bits) y se le asigna el valor máximo que puede contener un uint256. Este valor se calcula como 2 elevado a la potencia de 256 menos 1. Es importante destacar que el valor máximo es extremadamente grande y prácticamente imposible de representar en la práctica.
  3. function overflow() public view returns (uint): Aquí se define una función pública llamada overflow, que no modifica el estado del contrato (view) y devuelve un valor de tipo uint.
  4. return maxValue + 1; Dentro de la función overflow, se intenta realizar una operación de suma con maxValue y 1. Dado que maxValue ya es el valor máximo que puede contener un uint256, sumarle 1 resultará en un desbordamiento de enteros.