Yüksek performanslı bitcoin madenciliği için SHA256 özet algoritmasının eniyilenmesi
Optimization of SHA256 hash algorithm for high performance bitcoin mining
Yazar: ERŞEN BALCISOY
Danışman: PROF. DR. KEMAL BIÇAKCI
TOBB Ekonomi ve Teknoloji Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2017
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
2008'in başlarından beri, Bitcoin önemli ölçüde kullanıcının ilgisini çekmekte ve bu merkezi olmayan sanal para biriminin popülerliği her geçen gün artmaktadır. Bitcoin tamamen dağıtılmış, eşten eşe bir sistemdir. Bu nedenle merkezi bir sunucu veya kontrol noktası yoktur. Bitcoin, madencilik adı verilen ve zorlu bir sorunun çözümünü arayan bir süreçle oluşturulur. Bitcoin ağında yer alan herhangi bir katılımcı, bu soruna çözüm bulmaya çalışmak için bilgisayarlarının işlemci gücünü kullanarak madenci olarak çalışabilir. Ortalama olarak her 10 dakikada bir, son 10 dakikalık işlemlerin geçerliliğini doğrulayan yeni bir çözüm, ağda bulunan herhangi bir madenci tarafından bulunmakta ve yeni bitcoinler ile ödüllendirilmektedir. Aslında, Bitcoin madenciliği bir merkez bankasının işlevlerini merkezsizleştirmekte ve herhangi bir merkez bankasının ihtiyacını ortadan kaldırmaktadır. Yıllar boyunca madenciler, Bitcoin maden arenasında ayakta kalabilmek için oldukça yüksek özet işlemi yapma gücüne ihtiyaç duymuşlardır. Madencilik aygıtlarının özet üretme hızı ve enerji tüketimi Bitcoin madenciliğinde kazanç elde etmeyi belirleyen en önemli unsurlardır. Bitcoin madenciliği, tamamen belirli yapıdaki girdinin iki kere SHA256 işlemine tabi tutulmasına dayanmaktadır ve bu işlem için birçok araştırmacı donanım tabanlı optimizasyon yapmayı düşünmüştür. Bitcoin madenciliği için spesifik olan durumlar göz önüne alınarak SHA256 algoritmasının optimizasyonu üzerine çok az araştırma yapılmıştır. Bu çalışmada literatür taraması sonucu elde edilen bazı yöntemler uygulanarak SHA256 algoritmasının hızlanması amaçlanmaktadır. Burada yapılacak olan işlemler genel SHA256 algoritmasında bir hızlandırma yapmamasına rağmen Bitcoin madenciliği için önemli gelişmeler sağlayacaktır. Önerilen iyileştirme metotları Xilinx Virtex-7 FPGA kartında gerçeklenmiştir ve elde edilen kaynak ve güç tüketimi değerlerine göre bu iyileştirme metotlarının uygulanabilir olduğu sonucuna ulaşılmıştır. Tasarlanan sistem sonucunda elde edilen değerlere bakıldığında performans olarak %7'lik bir artış meydana geldiği sonucuna ulaşılmıştır ve bu değere göre de Bitcoin madenciliği için kullanılan iki SHA256 özet fonksiyonunun işlem süresi yaklaşık olarak 1.8611 SHA256 işlem süresine düşmektedir. Bitcoin madenciliğinde en önemli kısıtlayıcı adım olan elektrik tüketiminde de %7'lik bir düşüş olması beklenmektedir. 2016 yılında Bitcoin madenciliği için 400 milyon $'lık elektrik tüketimi yapıldığı kaynaklarda belirtilmektedir ve bu performans artışına göre de 28 milyon $'lık elektrik tasarrufu elde edilebilir. Böylelikle özet üretme hızında bir artış ve enerji tüketiminde bir düşüş sağlanabilmektedir.

Abstract:
As a decentralized virtual currrency, Bitcoin has attracted many users since 2008. Bitcoin is a fully distributed, peer to peer system. For this reason, there is no central server or point of control. Bitcoins are created through a process called mining, which involves looking for a solution to a difficult problem. Any participant in the Bitcoin network may operate as a miner, using their computer's processing power to attempt to find solutions to this problem. Every 10 minutes on average, a new solution is found by someone who then is able to validate the transactions of the past 10 minutes and is rewarded with new bitcoins. Essentially, Bitcoin mining decentralizes functions of a central bank and replaces the need for any central bank. Miners need high computational power for hash processing. The hashing rate and energy consumption of mining devices are the most important things to earn profit in Bitcoin mining. Bitcoin mining fully relies on performing double SHA256 operation with structured input and many researchers thought about making hardware optimization for this process without considering specifies of Bitcoin mining. Only a few researches have been made on SHA256 hashing algorithm optimization focusing on Bitcoin mining application. In this research, to speed up of SHA256 hashing algorithm, implementing the methods proposed in the recent research is aimed. These techniques could provide important improvement on Bitcoin mining, but not for general SHA256 hashing algorithm. The proposed optimization methods have been implemented on the Xilinx Virtex-7 FPGA board, and we see that these improvement methods are applicable based on the obtained source and power consumption values. The values collected from the implemented system show us that 7% increase in performance is achieved (the processing time of two SHA256 hash functions used for Bitcoin mining falls to approximately 1.8611 SHA256 time operation). It is expected that around 7% decrease in electricity consumption, which is the most important restriction step in Bitcoin mining, is possible in 2016, $400 million was spent on electricity consumption for Bitcoin mining and according to this performance increase, $28 million electricity consumption can be saved.