Thesis title: |
Vývoj a bezpečnost smart kontraktů: Analýza a auditování na blockchainových platformách |
Author: |
Dítě, Jan |
Thesis type: |
Bakalářská práce |
Supervisor: |
Sudzina, František |
Opponents: |
Perzina, Radomír |
Thesis language: |
Česky |
Abstract: |
Tato bakalářská práce se zaměřuje na analýzu vývoje a bezpečnost smart kontraktů na vy- braných blockchainových platformách. V teoretické části jsou představeny principy fungování blockchainu, definice a charakteristiky smart kontraktů a přehled nejpoužívanějších progra- movacích jazyků, jako jsou Solidity a Vyper. Dále jsou popsány běžné typy zranitelností, které se objevují při vývoji chytrých kontraktů, a uvedeny příklady známých útoků, včetně případu DAO hacku. Zmíněny jsou i rozdíly mezi platformami a počty aktivních vývojářů na dané platformě. Součástí přehledu je také srovnání dostupných vývojových nástrojů a podpory bezpečnostních analýz. Praktická část se zaměřuje na demonstraci zranitelnosti typu reentrancy na jednoduchém ukázkovém kontraktu napsaném v jazyce Solidity. Tento kontrakt je upraven do bezpečnější verze, analyzován pomocí nástrojů Slither a Mythril a následně přepsán do jazyka Vyper. Testování kontraktu bylo provedeno pomocí nástroje Brownie. Dále je zformulována sada doporučení, která vychází z poznatků teoretické i praktické části. Tyto poznatky mohou začínajícím vývojářům sloužit jako praktický návod ke zvýšení bezpečnosti smart kontraktů. |
Keywords: |
bezpečnost; blockchain; smart kontrakty; Solidity a Vyper |
Thesis title: |
Development and security of smart contracts: Analysis and auditing on blockchain platforms |
Author: |
Dítě, Jan |
Thesis type: |
Bachelor thesis |
Supervisor: |
Sudzina, František |
Opponents: |
Perzina, Radomír |
Thesis language: |
Česky |
Abstract: |
This bachelor’s thesis focuses on the analysis of the development and security of smart contracts on selected blockchain platforms. The theoretical part introduces the principles of blockchain technology, defines the characteristics of smart contracts, and provides an over- view of the most commonly used programming languages, such as Solidity and Vyper. It also describes common types of vulnerabilities that may occur during the development of smart contracts and presents examples of well-known attacks, including the DAO hack. Differences between platforms and the number of active developers on each platform are also discussed. The overview includes a comparison of available development tools and support for security analysis. The practical part focuses on demonstrating a reentrancy vulnerability using a simple exam- ple contract written in Solidity. This contract is then modified into a more secure version, analyzed using the tools Slither and Mythril, and rewritten in the Vyper language. The con- tract was tested using the Brownie tool. Furthermore, a set of recommendations is formulated based on the findings from both the theoretical and practical parts. These insights can serve as a practical guide for beginner developers to improve the security of smart contracts. |
Keywords: |
smart contracts; security; Solidity and Vyper; blockchain |
Information about study
Study programme: |
Aplikovaná informatika |
Type of study programme: |
Bakalářský studijní program |
Assigned degree: |
Bc. |
Institutions assigning academic degree: |
Vysoká škola ekonomická v Praze |
Faculty: |
Faculty of Informatics and Statistics |
Department: |
Department of Systems Analysis |
Information on submission and defense
Date of assignment: |
23. 1. 2025 |
Date of submission: |
11. 5. 2025 |
Date of defense: |
2025 |
Files for download
The files will be available after the defense of the thesis.