I have created a new blog post category titled “Undergraduate Research”. I am currently taking on a research project at my school and I will use this category to post my findings. I hope to keep it as accurate as possible and will post my sources. The research topic is related to high performance computing and my first task is to research Bitcoin mining. This post will give a brief introduction to Bitcoin and the required hardware and software.
First, what is Bitcoin? Bitcoin is the first digital decentralized currency. It uses cryptography to control the creation and transfer of money. It uses peer-to-peer technology to transfer funds and since it is decentralized, all transactions are verified by everyone in a process called Bitcoin mining. Mining is the process of verifying transactions and is done so using specialized software and hardware. This is the component of Bitcoin that we are interested in as it relates to the research topic.
Bitcoin Mining Hardware
Bitcoin mining has evolved since it was first created as has the software and hardware required. In the beginning, the CPU was the only way to mine for coins. This is an incredibly inefficient method that would take years to mine for a single coin. It was then discovered that GPU’s were more efficient at mining and going from CPU to GPU allowed for a “50x to 100x increase in mining power”. Next was a type of hardware called FPGA’s, which stands for Field Programmable Gate Array. Whilst the increase in mining power was not huge, the power efficiency was increased, making this method a lot more efficient than GPU mining. Finally, we get to where we are today with ASIC’s. ASIC stands for Application Specific Integrated Circuit. It is highly unlikely for Bitcoin mining technology to get any better than this. ASIC is simply a specialized chip that can be purposed to do only one task. Since it is so specialized, this leads to a huge increase in efficiency with whatever tasks it is created to do, which in this case, is Bitcoin mining. For the purpose of our research (and probably lack of funding) we will most likely use the CPU and GPU to engage in Bitcoin mining. The purpose of the research is not to make money, but to understand the technology.
Bitcoin Mining Software
When it comes to the software used for Bitcoin mining there are a few options. First you will need a Bitcoin wallet. This is actually a digital wallet and acts much like a physical wallet in real life, as a place to store the currency. You can either choose to have an online wallet, or for more secure storage you can use a software wallet installed on your computer. Next you will need mining software. Two popular choices include CGMiner and BFGMiner. I tried installing these programs on Linux (CentOS 6, virtual machine) but they all talk about installing AMD Radeon drivers or configuring them to be used on FGPA or ASIC devices. I do not have an AMD graphics card on any of my systems and nor do I own an FGPA or ASIC device, which made my attempts to install the Bitcoin mining software difficult. This will be something I will have to look into further.
Mining Guide on We Use Coins – http://www.weusecoins.com/en/mining-guide
Bitcoin.it FAQ – https://en.bitcoin.it/wiki/FAQ