AKILLI SÖZLEŞME PROGRAMLAMA DİLLERINİN KARŞILAŞTIRMALI İNCELEMESİ: GÜVENLİK, PERFORMANS VE OPTİMİZASYON DENGELERİ


Creative Commons License

Özaslan H. A. C., Odabaşı Ş. D.

İstanbul Ticaret Üniversitesi Fen Bilimleri Dergisi, cilt.25, sa.49, ss.98-118, 2026 (TRDizin)

Özet

Akıllı sözleşmeler, blok zinciri ekosistemlerinin temel bir bileşeni haline gelmiş olup, güvenilirlikleri büyük ölçüde yazıldıkları programlama dilleri tarafından şekillendirilmektedir. Önceki çalışmalar zafiyetleri sınıflandırmış olsa da, dil tasarımı ve güvenli kodlama uygulamalarının performans ve dayanıklılık üzerindeki etkilerini nicel olarak inceleyen araştırmalar daha sınırlıdır. Bu boşluğu gidermek amacıyla, bu çalışmada kontrollü koşullar altında Solidity ve Vyper dillerini deneysel olarak karşılaştırılmakta ve bu deneyler Rust ve Move dillerine ilişkin literatür temelli bir değerlendirme ile tamamlanmaktadır. Test senaryoları; dağıtım, para yatırma, para çekme, aritmetik taşma, yeniden giriş (reentrancy) ve işlem kaynağı kötüye kullanımı gibi durumları içermektedir. Solidity ve Vyper’ın hem zafiyetli hem de güvenli sürümleri için gaz tüketimi, dağıtım boyutu ve çalışma zamanı yürütme süresi gibi metrikler toplanmıştır. Sonuçlar, iki dil arasında dağıtım maliyetlerinin önemli ölçüde farklılaştığını (Solidity ≈ 177k gas, Vyper ≈ 135k gas, yaklaşık %24 daha düşük) gösterirken, çalışma zamanı performansının karma olduğunu ortaya koymaktadır: deposit çağrıları neredeyse aynıdır (Δ ≈ 0.02 ms), buna karşın withdraw çağrısında belirgin bir fark vardır (Δ ≈ 4.97 ms) ve Vyper lehinedir; yine de bu çağrı düzeyi farkları, dağıtım zamanındaki daha büyük farka kıyasla küçüktür. Ayrıca, açık aritmetik kontrolleri ve Checks–Effects–Interactions modelinin uygulanması gibi güvenli kodlama uygulamaları, kritik zafiyetleri ortadan kaldırırken toplam yürütme maliyetine %1’den daha az ek yük getirmektedir. Rust ve Move her ne kadar bu çalışmada literatür temelli olarak ele alınmış olsa da, güvenlik garantilerini doğrudan dile entegre eden alternatif yaklaşımları örneklemektedir. Bu gözlemlerden hareketle, bu çalışma; farklı akıllı sözleşme programlama dillerinin güvenlik ve verimlilik açısından nasıl farklılaştığını anlamaya yönelik ölçülebilir bir çerçeve önermekte ve dil tasarımı ile güvenli kodlama uygulamalarının sözleşme geliştirme sürecini nasıl şekillendirdiğini vurgulamaktadır.
Smart contracts have become a fundamental component of blockchain ecosystems, and their reliability is strongly shaped by the programming languages in which they are written. While prior studies have classified vulnerabilities, fewer have quantitatively examined how language design and secure coding practices affect performance and resilience. To address this gap, this study empirically compares Solidity and Vyper under controlled conditions and complements these experiments with a literature-based evaluation of Rust and Move. Test scenarios included deployment, deposits, withdrawals, arithmetic overflow, reentrancy, and transaction origin misuse. For both vulnerable and secure variants in Solidity and Vyper, metrics such as gas consumption, deployment size, and runtime execution time were collected. The results indicate that deployment costs differ substantially between the two languages (Solidity ≈ 177 k gas vs Vyper ≈ 135 k gas, ~24% lower), whereas runtime performance is mixed: deposit calls are nearly identical (Δ ≈ 0.02 ms), whereas withdraw shows a noticeable gap (Δ ≈ 4.97 ms) favoring Vyper; nevertheless, these call-level differences remain small relative to the larger deployment-time gap. Importantly, secure coding practices such as explicit arithmetic checks and the Checks–Effects–Interactions pattern eliminate critical vulnerabilities while adding less than 1% to the overall execution cost. Although Rust and Move are considered through a literature-based review, they illustrate alternative approaches that embed security guarantees directly into the language. Based on these observations, this study proposes a measurable framework to understand how different smart contract programming languages vary in terms of security and efficiency, emphasizing the role of language design and secure coding practices in shaping contract development.