Noticias

Investigadores DCC presentan trabajo sobre estimación de gas en contratos inteligentes de Ethereum

DCC presentan trabajo sobre estimación de gas en contratos inteligente

"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 de la FCFM.

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.

Galería de fotos

Últimas noticias