Blokzincirde akıllı sözleşmeler ve güvenli e-cüzdan uygulaması
Smart contracts and secure e-wallet application in blockchain
Yazar: ECMEL ALBAYRAK
Danışman: PROF. DR. SEDAT AKLEYLEK
Ondokuz Mayıs Üniversitesi / Lisansüstü Eğitim Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2023
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Ethereum ile birlikte blokzincirlerde kullanılmaya başlanan akıllı sözleşmeler, dağıtık ağ üzerinde depolanan ve üçüncü taraflar olmadan sözleşme içeriğinin şartları sağlandığında otomatik olarak çalışan program parçalarıdır. Tez kapsamında, akıllı sözleşme çalışma döngüsündeki süreçlerin gerçeklenmesi NEAR blokzinciri üzerinde gerçek bir akıllı sözleşme uygulaması geliştirilerek gösterilmiştir. Akıllı sözleşmelerin programlanabilir yapıda olması ve blokzincire eklendikten sonra değiştirilemez olması onları bazı güvenlik açıklarına karşı savunmasız hale getirmektedir. Literatürde bu güvenlik açıklarının sınıflandırılması en çok sözleşme kodu, sanal makine ve blokzincir tasarımı kaynaklı problem kategorileri altında ele alınmaktadır. Ancak bu sınıflandırma, güvenlik açıklarının birden fazla kategoriye ait olabileceği durumlar için yetersiz olduğundan farklı yaklaşımların ortaya çıkması kaçınılmaz olmaktadır. Bu tez kapsamında, kullanılan blokzincir platformundan bağımsız olacak şekilde birden fazla kategoriye ait olabilecek akıllı sözleşmelerdeki güvenlik açıklarının tek bir kategori altında ele alınmasının önüne geçilerek; problemin oluşma kök nedeni ve alt nedeni belirtilip, kategori olarak güvenlik, fonksiyonel ve operasyonel kategorilerinin kullanılması sağlanarak ve Ortak Zafiyet Numaralandırma (CWE) listesindeki karşılığı belirtilerek yeni bir sınıflandırma yapısı önerilmiştir.
Blokzincir üzerinde kripto varlığa sahip olunması, transfer işlemlerinin gerçekleştirilmesi gibi blokzincir ile ilgili bütün işlemler dijital kripto cüzdan uygulamaları sayesinde mümkün olmaktadır. Günümüzde dijital kripto cüzdanların adres oluşturma süreçleri farklı olabilse de temelde hepsi açık anahtarlı kriptografi kullanılarak oluşturulmaktadır. 1994 yılında Shor'un önerdiği algoritma ile açık anahtarlı kriptosistemlerin güvenliğini sağlayan çözülmesi zor problemlerin kuantum bilgisayarlarda polinom zamanda çözülebileceği belirtilmiştir. Dolayısıyla ECDSA kullanılarak oluşturulan dijital kripto cüzdanlar kuantum bilgisayarlar varlığında güvensiz sistemler haline dönüşeceklerdir. Tez kapsamında Ethereum ve Bitcoin blokzinciri için dijital kripto cüzdan uygulaması oluşturma adımları verilmiş ve bu uygulamalar Rust programlama dili ile gerçeklenmiştir. NIST'in kuantum sonrası kriptosistemlerin standartlaştırılması sürecinde üçüncü turda seçilen algoritmalardan Crystals-Dilithium imzalama algoritması kripto cüzdan anahtar oluşturma sürecinde kullanılarak kuantum sonrası Bitcoin ve Ethereum blokzincirleri için kripto cüzdan uygulamaları Rust programlama dili ile gerçeklenmiştir. Ayrıca kuantum sonrası bir blokzincir prototipi oluşturularak önerilen bu cüzdan uygulamalarının kuantum sonrası blokzincir platformunda çalıştırılabileceği gösterilmiştir.

Abstract:
Smart contracts, which started to be used in blockchains with Ethereum, are program parts that are stored on a distributed network for the purpose of verifying and executing contract terms without third parties and that run automatically when the terms of the contract conditions are met. In this thesis, the implementation of the processes in the smart contract working cycle is demonstrated by developing a real smart contract application on the NEAR blockchain. The fact that smart contracts are programmable and cannot be changed after they are added to the blockchain can make them vulnerable to some security vulnerabilities. In the literature, the classification of these vulnerabilities is mostly discussed under the categories of contract code, virtual machine and blockchain design problems. However, this classification is insufficient for situations where vulnerabilities may belong to more than one category, leading to different approaches. In this thesis, vulnerabilities in smart contracts that may belong to more than one category, independent of the blockchain platform used, are prevented from being handled under a single category. A new classification structure is presented by specifying the root cause and sub-cause of the problem, using the security, functional and operational categories as categories, and specifying its equivalent in the Common Vulnerability Enumeration (CWE) list.
All transactions related to the blockchain, such as owning crypto assets on the blockchain, transferring crypto assets, are possible because of the digital crypto wallet applications. Although the address creation processes of digital crypto wallets may differ today, they are basically all created using public-key cryptography. With the algorithm proposed by Shor in 1994, it was stated that difficult problems that ensure the security of public-key cryptography can be solved in polynomial time in quantum computers. Therefore, digital crypto wallets created using ECDSA will also turn into insecure systems in the presence of quantum computers. In this thesis, digital crypto wallet application steps are given in formats suitable for Ethereum and Bitcoin blockchains and these applications are developed in Rust programming language. In the process of standardization of post-quantum cryptosystems of NIST, Crystals-Dilithium digital signature algorithm, one of the algorithms selected in the third round, is used in the crypto wallet key generation process and crypto wallet applications for post-quantum Bitcoin and Ethereum blockchains are implemented with the Rust programming language. In addition, by creating a post-quantum blockchain prototype, it has been shown that these proposed wallet applications can be run on a post-quantum blockchain platform.