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.
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 |