Geri Dön

A static analyzer and bug prediction engine for smart contracts

Akıllı sözleşmeler için statik analiz aracı ve hata tahmin motoru

  1. Tez No: 663933
  2. Yazar: AHMET GÜL
  3. Danışmanlar: PROF. DR. MEHMET ALPER ŞEN
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2021
  8. Dil: İngilizce
  9. Üniversite: Boğaziçi Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Belirtilmemiş.
  13. 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

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

    İngilizce

    2024

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. FEZA BUZLUCA

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

    Türkçe

    2020

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolBaşkent Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ TÜLİN ERÇELEBİ AYYILDIZ

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

    İngilizce

    2015

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. FEZA BUZLUCA

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

    İngilizce

    2019

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolDoğuş Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ YASEMİN KARAGÜL

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

    Türkçe

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolSakarya Uygulamalı Bilimler Üniversitesi

    Elektrik-Elektronik Mühendisliği Ana Bilim Dalı

    DOÇ. DR. HALİT ÖZTEKİN