Investigadores DCC presentan investigación sobre la estimación de gas en contratos inteligentes de Ethereum
Daniel Soto, Alexandre Bergel y Alejandro Hevia, desarrollaron una técnica para estimar estadísticamente el consumo de "gas", unidad usada para transacciones en Ethereum.

"Fuzzing to Estimate Gas Costs of Ethereum Contracts" se titula la investigación desarrollada por el estudiante de pregrado del DCC, Daniel Soto, junto con los profesores Alexandre Bergel y Alejandro Hevia, que aborda la estimación de gas en contratos inteligentes de Ethereum.

El profesor Alexandre Bergel explica que la Blockchain –cadena de bloques cuyo uso más conocido es para transacciones de criptomonedas como Bitcoin y Ethereum— opera como una base de datos distribuida en la cual, en el caso de Etherum,  las transacciones y contratos inteligentes se realizan utilizando un lenguaje de programación llamado Solidity. "Un código Solidity puede ser ejecutado por cualquier persona, llamada “minero”. El incentivo para un minero de ejecutar un código se define con una unidad denominada “gas”, que tiene un valor monetario real. Si uno quiere que un minero ejecute su contrato, tiene que ofrecer un incentivo monetario en gas, pero si hay una error en el contrato puede perder este gas. Este paper define una técnica que permite encontrar errores en los contratos, con el objetivo de ayudar los programadores de Solidity a evitar cometer errores y a no perder recursos monetarios", explica el académico.

Daniel Soto complementa señalando que es importante tener en cuenta cuánto gas costará ejecutar una función de un contrato, puesto que se debe pagar por esta ejecución. "Hacer esta estimación es difícil debido a que la máquina virtual de Ethereum es Turing-Completa, y no se puede determinar si una ejecución dada terminará o no. Para intentar resolver este problema se crea una herramienta que apunta a generar estimaciones estadísticas sobre el consumo de gas de la función utilizando fuzz testing. Se ejecuta la función muchas veces con argumentos aleatorios y se genera una distribución de costos de gas obtenidos en las ejecuciones".

El estudiante agrega que la herramienta desarrollada se puede utilizar para obtener una distribución de costos de gas de una función. "Con esta distribución el usuario puede determinar cuánto gas debería enviar al ejecutar la función para poder pagar por su ejecución, minimizando el riesgo de que falle por gas insuficiente". Y si bien explica que aún deben agregar algunas configuraciones, afirma que "el trabajo usa un método novedoso para la estimación de gas, adaptando técnicas de fuzzing a un ambiente que cambia con cada ejecución".

Este trabajo fue recientemente presentado por Daniel Soto en la International Conference on Software Maintenance and Evolution  (ICSME 2020), que se centra en la mantención y evolución de software. En particular, fue presentado en el track NIER, que aborda ideas nuevas y resultados emergentes. "ICSME es una de la conferencia top en el campo de ingeniería de software. Aunque presentamos un paper corto, es un logro importante", concluye el profesor Bergel.

--
Comunicaciones DCC

Daniel Soto, Alexandre Bergel y Alejandro Hevia, desarrollaron una técnica para estimar estadísticamente el consumo de "gas" utilizado en contratos inteligentes de Ethereum.

Daniel Soto, Alexandre Bergel y Alejandro Hevia, desarrollaron una técnica para estimar estadísticamente el consumo de "gas" utilizado en contratos inteligentes de Ethereum.

Daniel Soto presentó el trabajo en ICSME 2020, conferencia que aborda temas relacionados con la mantención y evolución de software.

Daniel Soto presentó el trabajo en ICSME 2020, conferencia que aborda temas relacionados con la mantención y evolución de software.

El trabajo desarrollado por los investigadores del DCC presenta un método novedoso para la estimación de gas utilizando técnicas de fuzz testing.

El trabajo desarrollado por los investigadores del DCC presenta un método novedoso para la estimación de gas utilizando técnicas de fuzz testing.

  • Tags