A static analyzer and bug prediction engine for smart contracts
Akıllı sözleşmeler için statik analiz aracı ve hata tahmin motoru
- Tez No: 663933
- Danışmanlar: PROF. DR. MEHMET ALPER ŞEN
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2021
- Dil: İngilizce
- Üniversite: Boğaziçi Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Belirtilmemiş.
- Sayfa Sayısı: 73
Özet
Blokzinciri çözümleri yaygınlaştıkça, Solidity dilinde yazılmış akıllı sözleşmelerdeki potansiyel hataların tespit edilmesi, bu çözümlerin doğru çalışabilmesi için hayati önem taşıyacaktır. Bu hataları düzgün bir şekilde tespit etmek için, geliştiricinin son teknoloji ürünü hata algılama araçlarını kullanması ve bu araçların rapor ettikleri olası hataları incelemesi gerekmektedir. Bu tezde akıllı sözleşmelerdeki olası yaygın hataları araştırdık ve olası hataları tespit edebilmek için akıllı sözleşmelerin Solidity kaynak kodunu girdi olarak alan bir statik analiz aracı SA-Solidity'i geliştirdik. SA-Solidity, Solidity kaynak kodunu ayrıştırma ağacına dönüştürür ve bu ağacı sorgulayarak hataları bulur. Ayrıca, tek bir aracın tüm hataları tespit etmek için yeterli olmadığını ve bilinen SmartCheck ve Securify araçlarının da SmartEmbed'in deneysel akıllı sözleşme kümesindeki farklı hataları tanımlayabildiğini gösterdik. Bunlardan sonra, Solidity için önceki tüm hata algılama araçları tarafından ortak olarak rapor edilen dosyalardaki hataları tahmin eden makine öğrenmesi tabanlı hata tahmin aracını (MLBP-Solidity) geliştirdik. MLBP-Solidity, büyük olasılıkla hata içeren dosyaların bir alt kümesine odaklanmasını sağlayarak geliştiricinin daha az efor sarfetmesini sağlayacaktır. Deneysel sonuçlarımız, tahmin edilen hatanın türüne bağlı olarak MLBP-Solidity'nin \%90-99 doğruluğa ulaştığını göstermektedir.
Özet (Çeviri)
As blockchain solutions are becoming increasingly common, identifying potential bugs in smart contracts written in Solidity language is vital for these solutions to work accurately. To precisely detect these bugs, developers must use several state-of-the-art bug detection tools and examine the potential bugs the tools report. In this thesis, we investigate common errors in smart contracts and developed a static analysis tool SA-Solidity, which takes Solidity codes of smart contracts as input, to detect possible bugs. SA-Solidity converts Solidity source code into parse a tree and detects the erros by querying it. In addition, we demonstrate that one tool alone is not sufficient to detect all the bugs as SA-Solidity, and the known SmartCheck, and Securify tools identify different types of bugs in SmartEmbed's experimental set of smart contracts. Furthermore, we develop Machine Learning-based Bug Predictor for Solidity MLBP-Solidity, which predicts files that would be reported by all the previously mentioned bug detection tools and facilitates the efforts of developers by allowing them to focus on a subset of files that are most probably buggy. Our experimental results show that MLBP-Solidity achieves 90-99\% accuracy depending on the type of predicted bug.
Benzer Tezler
- A dataset quality enhancement method for fine-grained just-in-time software defect prediction models
İnce taneli tam zamanında yazılım hata tahmin modelleri için veri kalitesi iyileştirme yöntemi
İREM FİDANDAN
Yüksek Lisans
İngilizce
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. FEZA BUZLUCA
- Ölçüt tabanlı yazılım hata kestirim yaklaşımlarının incelenmesi ve yeni bir yazılım hata kestirim önerisi
Investigation on of metric based software bug prediction approaches and a new software bug prediction recommendation
BEGÜM ERKAL
Yüksek Lisans
Türkçe
2020
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolBaşkent ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ TÜLİN ERÇELEBİ AYYILDIZ
- A learning-based method for detecting defective classes in object-oriented systems
Nesneye dayalı yazılımlarda hatalı sınıfların öğrenme temelli yöntemle belirlenmesi
ÇAĞIL BİRAY
Yüksek Lisans
İngilizce
2015
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. FEZA BUZLUCA
- The impact of static analysis tools on software quality, productivity and cost
Statik analiz araçlarının yazılım kalitesine, üretkenliğe ve maliyet üzerine etkisi
MEHMET YILDIZ
Yüksek Lisans
İngilizce
2019
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolDoğuş ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ YASEMİN KARAGÜL
- Kural tabanlı optimizasyon ile ağ saldırılarının tespiti
Detection of network attacks with rule-based optimization
OĞUZ ÖZGER
Yüksek Lisans
Türkçe
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolSakarya Uygulamalı Bilimler ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
DOÇ. DR. HALİT ÖZTEKİN