Publication:
Integrating the EVM super-optimizer gasol into real-world compilers

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2021
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
Smart contracts are programs deployed and executed on the blockchain for a monetary fee paid in gas and thus smart contract compilers have a clear optimization target: gas usage. Because smart contracts are a young, fast-moving _eld for which (manually) _ne-tuned compilers have not yet been developed, they highly bene_t from automated and adaptable approaches. Moreover, smart contracts are e_ectively immutable, and as-such need a high-level of assurance, which makes them an ideal domain for applying formal methods to them. Super-Optimization is a technique, proposed by the formal methods community, which attempts to _nd the best translation of a block of instructions by trying all posible sequences of instructions that produce the same result. This work presents a framework for super-optimizing smart contracts based on Max- SMT with two main ingredients: 1. the extraction of a stack functional speci_cation from the basic blocks of a Smart contract, which is simpli_ed using rules that capture the semantics of arithmetic, bit-wise, and relational operations, and 2. the synthesis of optimized blocks, which by means of an e_cient SMT encoding, _nds the bytecode blocks with minimal gas cost whose stack functional speci_cation is equal (modulo commutativity) to the extracted one. This framework was already implemented in a tool called syrup 1.0, which only considered the necessary encodings to perform super-optimization. This Master Thesis presents an improved version of that tool, called gasol (GAS Optimization tooLkit), which includes more advanced encodings of the problem to speed up the process of super-optimization. Large-scale experiments have been performed to determine realistic settings for including gasol in an EVM compiler and investigate trade-o_s between quality of optimizations and required optimization time. Besides, veri_cation techniques have been developed to ensure the process is indeed correct. Our experimental results indicate these new encodings are useful, and by limiting the timeout of the tool, it is feasible to include gasol into an EVM compiler. In fact, GASOL project has been funded by the Ethereum Foundation and they are considering integrating this approach into following versions of the solc compiler. The main results in this project have been included as part of the article submitted to the ACM Transactions on Software Engineering and Methodology (TOSEM) for its publication.
Los contratos inteligentes son programas que se despliegan y ejecutan en una cadena de bloques, pagando una tarifa monetaria en términos de una unidad computacional llamada gas. Por tanto, los compiladores de contratos inteligentes tienen una función objetivo clara: el consumo de gas. Dado que el desarrollo de contratos inteligentes es un campo de estudio relativamente novedoso y cambiante, aún no se han desarrollado compiladores óptimos que se puedan beneficiar de técnicas automáticas. Es más, al ser estos contratos inmutables, necesitan ser comprobados de forma minuciosa antes de ser desplegados, lo que los convierte en candidatos ideales para la aplicación de métodos formales. La super-optimización es una técnica propuesta por la comunidad científica de métodos formales que consiste en hallar la mejor traducción de un bloque de instrucciones a partir de probar exhaustivamente todas las secuencias de instrucciones que produzcan el mismo resultado. Este trabajo presenta un sistema para optimizar contratos inteligentes basada en la técnica Max-SMT, con dos componentes principales: 1. la extracción de una especificación funcional de pila a partir de los bloques básicos de un contrato inteligente, la cual se puede simplificar a partir de reglas que capturan la semántica de las operaciones aritméticas, de bit y de las relaciones entre distintas operaciones. 2. la síntesis de bloques optimizados, la cual se expresa en términos de una codificación SMT eficiente de tal forma que se consiga encontrar la secuencia de bytecodes que consume menos gas cuya especificación funcional de pila concuerda con la inicial, teniendo en cuenta la conmutatividad de las operaciones. Este sistema ya fue implementado en una herramienta llamada syrup 1.0, la cual se limitaba a considerar únicamente la codificación necesaria para llevar a cabo el proceso de super-optimización. Este trabajo presenta una versión mejorada de esa herramienta, a la cual hemos denominado gasol (GAS Optimization tooLkit). Esta nueva versión considera codificaciones más avanzadas que permiten acelerar el proceso. Se han llevado a cabo numerosos experimentos que han permitido descubrir configuraciones realistas para integrar esta herramienta en un compilador de EVM. Estos experimentos también se han centrado en determinar la relación entre distintas codificaciones y el tiempo que tarda en realizar el proceso. Además, se han desarrollado técnicas de verificación para probar que la transformación es correcta. Los resultados experimentales muestran que las nuevas codificaciones propuestas son útiles a la hora de abordar el problema, y que a través de limitar el tiempo máximo de ejecución de la misma, se consiguen tiempos plausibles para la integración en compiladores de EVM. De hecho, la Fundación Ethereum ha financiado el proyecto GASOL y están considerando incluirlo en nuevas versiones de su compilador.
Description
Trabajo de Fin de Máster en Métodos Formales en Ingeniería Informática, Facultad de Informática UCM, Departamento de Sistemas Informáticos y Computación, Curso 2022-21.
Unesco subjects
Keywords
Citation