Skip to main content

Indepth how bitcoin works and bitcoin mining.. full indepth tutorial






By mining, you can earn cryptocurrency without having to put down money for it. That said, you certainly don't have to be a miner to own crypto.  You can also buy crypto using fiat currency (USD, EUR, JPY, etc); you can trade it on an exchange like Bitstamp using other crypto (example: Using Ethereum or NEO to buy Bitcoin); you even can earn it by playing video games or by publishing blogposts on platforms that pay its users in crypto. An example of the latter is Steemit, which is kind of like Medium except that users can reward bloggers by paying them in a proprietary cryptocurrency called Steem.  Steem can then be traded elsewhere for Bitcoin. 
In addition to lining the pockets of miners, mining serves a second and vital purpose: It is the only way to release new cryptocurrency into circulation. In other words, miners are basically "minting" currency. For example, as of the time of writing this piece, there were about 16 million Bitcoin in circulation. Aside from the coins minted via the genesis block (the very first block created by Bitcoin founder Satoshi Nakamoto himself), every single one of those Bitcoin came into being because of miners. In the absence of miners, Bitcoin would still exist and be usable, but there would never be any additional Bitcoin. There will come a time when Bitcoin mining ends; per the Bitcoin Protocol, the number of Bitcoin will be capped at 21 million. 

How much can a miner earn from mining Bitcoin?



Bitcoin are mined in units called "blocks." As of the time of writing, the reward for completing a block is 12.5 Bitcoin. At today's price of about $5000 per Bitcoin, this means you'd earn (12.5 x 5000)=$62,500.
When Bitcoin was first mined in 2009, mining one block would earn you 50 BTC. In 2012, this was halved to 25 BTC. in 2016, this was halved to the current level of 12.5 BTC. In 2020 or so, the reward size will be halved again to 6.25 BTC. 
If you want to keep track of precisely when these halvings will occur, you can consult the Bitcoin Clock, which updates this information in real time.
(Source: Bitcoinclock.com)

How many blocks have been mined so far?



A number of sites, including Blockchain.info, will give you that information in real time. At the time of writing, we are at block # 490163.

What are miners doing that's so important that they get free Bitcoin?



Double spending means, as the name suggests, that a Bitcoin user is illicitly spending the same money twice. With physical currency, this isn't an issue: Once you hand someone a greenback $20 bill to buy a bottle of vodka, you no longer have it, so there's no danger you could use that same $20 to buy lotto tickets next door. With digital currency, however, as the Investopedia dictionary explains, "there is a risk that the holder could make a copy of the digital token and send it to a merchant or another party while retaining the original."
Let's say you had one legit $20 and one really good photocopy of that same $20. If someone were to try to spend both the real bill and the fake one, someone who took the trouble of looking at both of the bills' serial numbers would see that they were the same number, and thus one of them had to be false. What a Bitcoin miner does is analogous to that--they check transactions to make sure that users have not illegitimately tried to spend the same Bitcoin twice. This isn't a perfect analogy--we'll explain in more detail below.
Once a miner has verified 1 MB (megabyte) worth of Bitcoin transactions, they are eligible to win the 12.5 BTC. The 1 MB limit was set by Satoshi Nakamoto, and is a matter of controversy, as some miners believe the block size should be increased to accommodate more data.
Note that I said that verifying 1 MB worth of transactions makes a miner eligible to earn Bitcoin--not everyone who verifies transactions will get paid out.
1MB of transactions can theoretically be as small as 1 transaction (though this is not at all common) or several thousand. It depends on how much data the transactions take up.

So after all that work of verifying transactions, I might still not get any Bitcoin for it?



That is correct.
In order to earn Bitcoin, you need to meet two conditions. One is a matter of effort, one is a matter of luck.
1) You have to verify ~1MB worth of transactions. This is the easy part.
2) You have to be the first miner to arrive at the right answer to a numeric problem. This process is also known as a proof of work

What do you mean, "the right answer to a numeric problem"?  



The good news: No advanced math or computation is involved. You may have heard that miners are solving difficult mathematical problems--that's not true at all. What they're actually doing is trying to be the first miner to come up with a 64-digit hexadecimal number (a "hash")  that is less than or equal to the target hash. It's basically guess work.
The bad news: Because it's guesswork, you need a lot of computing power in order to get there first. To mine successfully, you need to have a high "hash rate," which is measured in terms of megahashes per second (MH/s), gigahashes per second (GH/s), and terahashes per second (TH/s).
That is a great many hashes.
If you want to estimate how much Bitcoin you could mine with your mining rig's hash rate, the site Cryptocompare offers a helpful calculator. 

What equipment do I need to mine?



Either a GPU (graphics processing unit) miner or an application-specific integrated circuit (ASIC) miner. These can run from $500 to the tens of thousands. Some miners--particularly Ethereum miners--buy individual graphics cards as a low-cost way to cobble together mining operations. The photo below is a makeshift, home-made mining machine. The graphics cards are those rectangular blocks with whirring circles. Note the sandwich twist-ties holding the graphics cards to the metal pole. This is probably not the most efficient way to mine, and as you can guess, many miners are in it as much for the fun and challenge as for the money.

The ELI5 ("Explain It Like I'm Five") version of what Bitcoin miners do


Let's say I'm thinking of the number 19. If Friend A guesses 21, they lose because 21>19. If Friend B guesses 16 and Friend C guesses 12, then they've both theoretically arrived at viable answers, because 16<19 12="" 19.="" and="" answer="" b="" closer="" credit="" even="" extra="" for="" friend="" is="" no="" of="" p="" s="" target="" the="" there="" though="" to="" was="">
If B and C both answer simultaneously, then the ELI5 analogy breaks down.
In Bitcoin terms, simultaneous answers occur frequently, but at the end of the day there can only be one winning answer. When multiple simultaneous answers are presented that are equal to or less than the target number, the Bitcoin network will decide by a simple majority--51%--which miner to honour. Typically, it is the miner who has done the most work, i.e. verifies the most transactions. The losing block then becomes an "orphan block." 
Now imagine that I pose the "guess what number I'm thinking of" question, but I'm not asking just three friends, and I'm not thinking of a number between 1 and 100. Rather, I'm asking millions of would-be miners and I'm thinking of a 64-digit hexadecimal number. Now you see that it's going to be extremely hard to guess the right answer. 

What the hell is a "64-digit hexadecimal number"?



Well, here is one: 
0000000000000000057fcc708cf0130d95e27c5819203e9f967ac56e4df598ee
The number above has 64 digits. Easy enough to understand so far. As you probably noticed, that number consists not just of numbers, but also letters of the alphabet. Why is that?
In order to understand what these letters are doing in the middle of numbers, let's unpack the word "hexadecimal."
As you know, we use the "decimal" system, which means it is base 10. This in turn means that every digit has 10 possibilities, 0-9. I will be rather alarmed if these do not look familiar to you:
0 1 2 3 4 5 6 7 8 9
"Hexadecimal," on the other hand, means base 16, as "hex" is derived from the Greek word for 6 and "deca" is derived from the Greek word for 10. In a hexadecimal system, each digit has 16 possibilities. But our numeric system only offers 10 ways of representing numbers (0-9). That's why you have to stick letters in, specifically letters a, b, c, d, e, and f. In a hexadecimal system, these are the values of each digit:
Hexadecimal figureDecimal equivalent
00
11
22
33
44
55
66
77
88
99
a10
b11
c12
d13
e14
f15
The above chart is just for background. If you are mining Bitcoin, you do not need to calculate the total value of that 64-digit number (the hash). I repeat: You do not need to calculate the total value of a hash. 

Thanks a lot. So what do "64-digit hexadecimal numbers" have to do with Bitcoin mining?  



Remember that ELI5 analogy, where I wrote the number 19 on a piece of paper and put it in a sealed envelope?
In Bitcoin mining terms, that metaphorical undisclosed number in the envelope is called the target hash.
What miners are doing with those huge computers and dozens of cooling fans is guessing at the target hash. Miners make these guesses by randomly generating as many "nonces" as possible, as fast as possible. A nonce is short for "number only used once," and the nonce is the key to generating these 64-bit hexadecimal numbers I keep talking about. In Bitcoin mining, a nonce is 32 bits in size--much smaller than the hash, which is 256 bits. The first miner whose nonce generates a hash that is less than or equal to the target hash is awarded credit for completing that block, and is awarded the spoils of 12.5 BTC.
In theory you could achieve the same goal by rolling a 16-sided die 64 times to arrive at random numbers, but why on earth would you want to do that?
The screenshot below, taken from the site Blockchain.info, might help you put all this information together at a glance. You are looking at a summary of everything that happened when block #490163 was mined. The nonce that generated the "winning" hash was 731511405. The target hash is shown on top. The term "Relayed by: Antpool" refers to the fact that this particular block was completed by AntPool, one of the more successful mining pools. As you see here, their contribution to the Bitcoin community is that they confirmed 1768 transactions for this block. If you really want to see all 1768 of those transactions for this block, go to this page and scroll down to the heading "Transactions."
(source : Blockchain.info)

OK so how do I guess at the target hash?



All target hashes begin with zeros--at least eight zeros, and up to 63 zeros. 
There is no minimum target, but there is a maximum target set by the Bitcoin Protocol. No target can be greater than this number:
00000000ffff0000000000000000000000000000000000000000000000000000
Here are some examples of randomized hashes and the criteria for whether they will lead to success for the miner:
(Note: These are made-up hashes)

How do I maximize my chances of guessing the target hash before anyone else does?



You'd have to get a fast mining rig or, more realistically, join a mining pool--a group of miners who combine their computing power and split the mined bitcoin. Mining pools are comparable to those Powerball clubs whose members buy lottery tickets en masse and agree to share any winnings. A disproportionately large number of blocks are mined by pools rather than by individual miners.
In other words, it's literally just a numbers game. You cannot guess the pattern or make a prediction based on previous target hashes. The difficulty level of the most recent block at the time of writing is 1,196,792,694,099, i.e. the chance of any given nonce producing a hash below the target is 1 in 1,196,792,694,099--less than 1 in a trillion.

How do I decide whether Bitcoin will be profitable for me?



The aforementioned site Cryptocompare offers a helpful calculator that allows you to plug in numbers such as your hash speed, electricity costs etc. to estimate the costs and benefits. 
(Source: Cryptocompare)

I've done the math. Forget mining. Is there a less onerous way to profit from the Crypto boom?



Sure. As discussed, the easiest way to acquire Bitcoin is to buy it on an exchange like Coinbase.com. Alternately, you can always leverage the "pickaxe strategy". This is based on the old saw that during the 1848 California gold rush, the smart investment was not to pan for gold, but rather to make the pickaxes used for mining. Or, to put it in modern terms, invest in the companies that manufacture those pickaxes. In a crypto context, the pickaxe equivalent would be a company that manufactures equpiment used for Bitcoin mining. You can look into companies that make ASICs miners or GPU miners. 
Companies that manufacture these products include AMD and Nvidia. 


Comments

Popular posts from this blog

12 Tips to Maintain a Virus Free Computer

1. Email is one of the common ways by which your computer can catch a virus . So it is always recommended to stay away from SPAM. Open only those emails that has it’s origin from a trusted source such as those which comes from your contact list. If you are using your own private email host (other than gmail, yahoo, hotmail etc.) " then it is highly recommended that you use a good anti-spam software. And finally NEVER click on any links in the emails that comes from untrusted sources. 2. USB thumb/pen drives is another common way by which viruses spread rapidly." So it is always a good habit to perform a virus scan before copying any data onto your computer. NEVER double-click the pen drive to open it. Instead right-click on it and select the option “open”. This is a safe way to open a pen drive. 3. Be careful about using MS Outlook. Outlook is more susceptible to worms than other e-mail programs, unless you have efficient Anti-Virus programs running. Use Pegasus ...

Streamlining Java Web Application Deployment with React WAR Generator

In the ever-evolving world of web development, managing builds and deployments can often be cumbersome and error-prone. Today, we're excited to introduce a tool designed to simplify and streamline this process: the React WAR Generator . What is the React WAR Generator? The React WAR Generator is a Python-based tool that automates the creation of WAR (Web Application Archive) files for Java web applications. It caters specifically to frontend projects built with React or similar frameworks, making it easier to package and deploy your web applications to a Tomcat server. Key Features Profile-Based Builds : With support for multiple profiles ( dev , test , prod , default ), you can build your application according to different environments and configurations. Version File Generation : Optionally generate a version file that integrates versioning information directly into your TypeScript files, ensuring your build versions are always up-to-date. Tomcat Deployment : Simplify your deploy...

How to Protect an Email Account from being Hacked

If this is the case, then what is the reason for many people to lose their accounts? The answer is very simple. They don’t know how to protect themselves from being hacked! In fact most of the people who lose their email accounts are not the victims of hacking but the victims of Trapping. They lose their passwords not because they are hacked by some expert hackers but they are fooled to such an extent that they themselves give away their password. Are you confused? If so continue reading and you’ll come to know… Now I’ll mention some of the most commonly used online scams which fool people and make them lose their passwords. I’ll also mention how to protect your email account from these scams. 1 . WEBSITE SPOOFING =Website spoofing is the act of creating a website, with the intention of misleading the readers. The website will be created by a different person or organisation (Other than the original) especially for the purposes of cheating. Normally, the website...

python program to Print Starting Series OF Indian Mobile Number for a State or operator or both

import requests import urllib.request import time from bs4 import BeautifulSoup as bs import re url = ' https://en.wikipedia.org/wiki/Mobile_telephone_numbering_in_India' state_to_extract = "UE" #if set to None all state is considered telecom_to_extracted = None #if set to none all operator from particular city is extracted response = requests . get(url) print (response) soup = bs(response . text, "html.parser" ) one_a_tag = soup . findAll( 'tr' )[ 35 :] lst = [] for k in one_a_tag: s = k . findAll( 'td' ) limit = len (s) i = 0 while True : if i == limit: break no = s[i] . text i += 1 if i == limit: break operator = s[i] . text i += 1 if i == limit: break state = s[i] . text i += 1 if i == limit: break res = f "{no} {operator} {state}" if state_to_extract is None : if telecom_to_extracted is None : lst . append(no) elif telecom_to_e...

How to Hack an Ethernet ADSL Router

Every router comes with a  username  and  password  using which it is possible to gain access to the router settings and configure the device. The vulnerability actually lies in the  Default username  and  password  that comes with the factory settings. Usually the routers come preconfigured from the Internet Service provider and hence the users do not bother to change the password later. This makes it possible for the attackers to gain unauthorized access to the router and modify its settings using a common set of default usernames and passwords. Here is how you can do it. Before you proceed, you need the following tool in the process: Angry IP Scanner Hacking the ADSL Router: Here is a detailed information on how to exploit the vulnerability of an ADSL router: Go to  whatismyipaddress.com . Once the page is loaded, you will find your IP address. Note it down. Open Angry IP Sca...

just more way to disable autorun.inf

Auto run.Inf this is a instruction file associated with the Auto run function. It is a simple text configuration file that instructs the OS (operating system) which executable to start which icon to use which additional menu commands to make available etc Auto run.inf must be located in the root directory of a volume.That is CD,DVD,of Floppy Disk or Pen drive. It is mainly used by the manufacturer on what actions to taken when their CD-ROM when it is inserted. In OS, when autorun.inf is enabled (Normally by default it is enabled ) then by inserting the Cd or DVD the content of the medium is automatically executed. This is to avoid the user intervention and help the low level knowledge of computer literacy people. But Virus programmer taken this as advantage and make virus instruction in autorun.inf text file. TYPICAL AUTORUN.INF A typical autorun.inf file looks like below. [autorun] open=setup.exe icon=setup.exe,0 label=GameProgram SIMPLE METHOD NOT TO GET INFECTED BY AUTORUN.INF:...

Samsung mobile cheat codes

* Software version: *#9999# * IMEI number: *#06# * Serial number: *#0001# * Battery status- Memory capacity : *#9998*246# * Debug screen: *#9998*324# – *#8999*324# * LCD kontrast: *#9998*523# * Vibration test: *#9998*842# – *#8999*842# * Alarm beeper – Ringtone test : *#9998*289# – *#8999*289# * Smiley: *#9125# * Software version: *#0837# * Display contrast: *#0523# – *#8999*523# * Battery info: *#0228# or *#8999*228# * Display storage capacity: *#8999*636# * Display SIM card information: *#8999*778# * Show date and alarm clock: *#8999*782# * The display during warning: *#8999*786# * Samsung hardware version: *#8999*837# * Show network information: *#8999*638# * Display received channel number and received intensity: *#8999*9266# * *#1111# S/W Version * *#1234# Firmware Version * *#2222# H/W Version * *#8999*8376263# All Versions Together * *#8999*8378# Test Menu * *#4777*8665# GPSR Tool * *#8999*523# LCD Brightness * *#8999*377# Error LOG Menu *...

Creating an Executable Jar File

Creating a jar File in  Eclipse In  Eclipse  Help contents, expand "Java development user guide" ==> "Tasks" ==> "Creating JAR files."  Follow the instructions for "Creating a new JAR file" or "Creating a new runnable JAR file."The  JAR File  and  Runnable JAR File  commands are for some reason located under the  File menu: click on  Export...  and expand the  Java  node. Creating a jar File in  JCreator You can configure a "tool" that will automate the jar creation process.  You only need to do it once. Click on  Configure/Options . Click on  Tools  in the left column. Click  New , and choose  Create Jar file . Click on the newly created entry  Create Jar File  in the left column under  Tools . Edit the middle line labeled  Arguments:  it should have cvfm $[PrjName].jar manifest.txt *.class Click OK. Now set...

how to Send a Confirmation Email Upon Form Submission-Woofoo

When someone successfully submits an entry, you can automatically send them a confirmation email to let them know. You can customize the email to include any follow-up info you'd like, and you can choose to include a copy of their entry in the email as well. To set up confirmation emails in Form Settings: Log in and go to  Forms . Hover over  Edit  next to the form you want to edit. Choose  Edit form . Click the  Form Settings  tab. Under Confirmation Options, select  Send Confirmation Email to User . From the  Send To  dropdown, select an Email field from your form. We'll send the confirmation email to the email address the person filling out your form entered into this field. If the dropdown says "No Email Fields Found", add an  Email  field to your form. In the  Reply To  textbox, enter the reply-to email—if someone replies to their confirmation email, this is the email address that their reply will be s...

How to Use Google for Hacking

Google serves almost 80 percent of all the search queries on the Internet, proving itself as the most popular search engine. However, Google makes it possible to reach not only the publicly available information resources, but also gives access to some of the most confidential information that should never have been revealed. In this post, you will find the information on how to use Google for exploiting security vulnerabilities that exists within many websites. The following are some of the ways to use Google for hacking : 1. Using Google to Hack Security Cameras: There exists many security cameras that are used for monitoring places like parking lots, college campus, road traffic etc. With Google, it is possible to hack these cameras so that you can view the images captured by them in real time. For this, all you have to do is just use the following search query in Google. Type in the Google search box exactly as given below and hit enter: inurl:”viewerframe?m...