Back to top

Bachelor's Thesis Jonas Gebele

Last modified Feb 3, 2021

Analysis of the Solidity Compiler for Smart Contract Redundancy Detection

Abstract

Smart-Contracts based on decentralized blockchain-systems like Ethereum are one of the most promising emerging technologies that become more and more attractive while enabling completely new types of applications. Solidity, the most popular programming-language for smart-contract development, is regularly maintained and improved by a large community and the Solidity-Commandline-Compiler is integrated in a variety of development-environments for decentralized applications. However, how the compiler and the optimization-processes of the bytecodes work internally is unfortunately not easy to comprehend for the majority of developers. This bachelor thesis will shed light onto this topic by taking a closer look at the concrete implementation of the Solidity compiler and the involved optimizers.

In this thesis we will analyze the source-code of the Solidity compiler and look at the different optimization-procedures and how they affect the bytecode. By first determining the overall structure of EVM-bytecode and describing the functionality of the individual bytecode-segments, we then go into greater detail about the modifications in the different sections due to bytecode-optimization.

Furthermore, we explain how the different optimization-features of the compiler-instructions internally impact the optimizer-utilization in the compiler and how the different optimization influences the resulting bytecode and which modifications can be identified. We then look at the implications of different bytecode-optimization and hereby analyze how to detect potentially redundant bytecodes on the Ethereum blockchain due to lack of optimization. In this context we introduce a design-proposal of such an attempt and discuss conceptional and technical challenges.

Files and Subpages

Name Type Size Last Modification Last Editor
Gebele Thesis BA.pdf 959 KB 23.11.2020
Gebele_Final.pdf 1,56 MB 11.01.2021
Gebele_Kickoff.pdf 1,52 MB 16.09.2020