Improving the Performance of Proof of Work-Based Bitcoin Mining Using CUDA
No Thumbnail Available
Date
2/23/2021
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Addis Ababa University
Abstract
The most dominant blockchain consensus algorithm is Proof of Work (POW). It is an algorithm, which scales up the bitcoin transaction well globally, by competition a cryptographic hash function. This process is named mining. POW-based bitcoin mining is a well-known problem of computational and memory-intensive algorithms.
On the other hand, the high-threaded CUDA architecture has become with enhanced performance for a various range of computation and memory-intensive applications. Thus, the feature of a massive number of software threads with low overhead context switch provides high computational throughput and hides the memory access latencies. However, it is not effective enough for all applications because of two challenges that directly affect performance such as scheduling new threads and the overhead to start a new kernel on the CUDA. The existing work tried to model the performance of POW-based mining from various aspects. However, no model considers all of these factors came together at the same time.
The main contribution of the thesis is a combination of the POW-based bitcoin mining algorithm with a focus on the higher-level analysis of algorithm performance and lower-level details about runtime configuration (thread per block) and scheduling on CUDA.
To demonstrate the feasibility of our method, the models are validated through bitcoin block-header data from implementations of POW-based bitcoin mining using CUDA. We evaluated the performance of the models across a large variety of parameters and data values. The results indicate that the model can be effectively used on various optimization techniques. It was able to get a performance, which is almost 4 times when compared to the baseline serial algorithm of POW-based mining implementation.
Description
Keywords
Pow, Cuda, Bitcoin Mining, Blockchain, Thread, Thread Block