Author Archives: admin

How to pay less fees in Bitcoin (and other cryptocurrencies)?

Lot of articles have been discussing about the high fees on Bitcoin network. I have covered most aspects of cryptocurrencies like identity, verification etc., but transaction flow was missed.

So, in this article we will be deconstructing the transaction flow and fees calculation. While we will use bitcoin transactions as live example, most of these concepts are true for other cryptocurrencies too.

Flow chart of a cryptocurrency transaction:


Let’s look at each of these steps closely.

Ledger Entry

Ledger, as we saw in our last article, stores amount and ownership information. If there is a change in ownership, entries added to the ledger. Finance companies use something called double bookkeeping. It utilizes two accounts to track this change. Both these accounts should always tally.

Example – I deposit $100 in my account, the bank creates two entries

My Account Bank’s Account
+100 -100

Positive number denotes an asset while negative denotes a liability. I own the money so it’s an asset for me. While the bank needs to pay whenever I demand so, it’s a liability for them.

On withdrawing $10, both my asset and bank’s liability decrease:

My Account Bank’s Account
+100 -100
-10 +10

As you will note, total for both sides is 90.

This is a simple example of a ledger flow. Cryptocurrencies have their own unique way to create these entries.

Transaction Input and Output

Public ledgers like a blockchain have a fixed amount of coins. So, tracking all coins – new and old is necessary. Cryptocurrencies use a system known as Transaction inputs and outputs.

Let’s look at how a cryptocurrency ledger works. Alice mines 100 coins:


Now, she sends 50 coins to Bob (assuming fees are zero). Alice’s existing coins will act as input and create two outputs – Alice gets 50 in change and Bob gets 50 in credit:


Total of coins held by Bob and Alice is 100 ie the coin mined by Alice.

Next, Bob sends 25 coins to John and Alice mines another 100 coins. Freshly mined coins don’t have any previous input. While there are another two outputs created for Bob-John transaction:


Now that we have 100 new coins, total in white boxes is 200.

Let’s say Alice sends Adam 40 coins. Wallets will always try and optimize transactions. So, it will combine two inputs to create the two outputs – Alice’s change and Adam’s credit:


The total still doesn’t change and it remains 200.

Now, these are just some of the possible input/output combinations. It is possible to have 100s of inputs going to one output or 1 input to 1000s of output.

So, in a cryptocurrency we can trace all coins back to their mining source. All transactions are connected in a chain. Hence, the name blockchain? 😉

Let’s look at a real life example from bitcoin’s blockchain explorer. Here’s block #500012:


These coins are new so, we don’t have any inputs.

We follow these mined coins (~16 BTC):


(You can check the transaction here. Click + sign from the green highlight box to get this view).

Left side are inputs and right hand are outputs. Here, 7 inputs from same account are connecting to multiple outputs. One major difference you will notice is that our account doesn’t appear on right hand side. This is happening because there is no “change” left for our account – all 130 BTC has been debited.

We can further check the first 10 BTC (output) transaction.


(Note: Check this link to see full transaction)

Here, we see another possibility – multiple inputs from many accounts connected to multiple smaller outputs across different accounts.

“Send” button

So, when you press the “Send” button on a cryptocurrency wallet, it creates an output  to send coins to recipient(s):

  1. If you spend some but not all coins, there will be two outputs – one to give you back some change and second pays the recipient.
  2. If you send all the coins in your account then there will be only output.

Unspent Transaction outputs or UTXO

In my piece on Bitcoin Energy, I said “95% transactions take 22 second (to spread through bitcoin network)”. Someone asked me – “You still didn’t explain how exactly does bitcoin solve double spending? Without a fail safe I can spend any coin twice within those 22 seconds or even before the first confirmation.

The answer is – “unspent transaction outputs” or UTXO. Any coin which is not an input to another transaction is a UTXO.

If you look at my cryptocurrency ledger example above, white boxes are the UTXOs.

Live example from bitcoin:


We see 0.56 BTC broken down to 0.55 BTC (spent) and 0.004875 BTC (unspent).

Why is 0.55 BTC showing as spent? Because of this transaction:


In this case, both outputs are still unspent.

Wallets can only use UTXOs to create proper input/output pair.


Once we have outputs in place, transaction is send to a memory pool or mempool. Transaction remains in the mempool until a miner includes it in a block. You can find all pending transactions in a cryptocurrency by looking at the mempool.

Bitcoin Mempool charts are here:

This data shows aggregate size of all transactions in current bitcoin mempool. You can find also find all pending transactions:

Too many transactions in a mempool means slower transactions. This tends to happen during weekends and holidays. So, it is always better to check the mempool before submitting a transaction.

People also use large mempool as a proxy for an overwhelmed or active currency. You might see headlines saying “x number of pending transactions”. These types of analysis can sometimes be faulty.

For example, the smallest bitcoin coin size is a satoshi or 0.00000001 BTC. But, you cannot spend less than 5300 satoshis or 0.00005430 BTC in a transaction. So, I can create 10k transactions with zero fees and send it to the mempool. This is like spamming someone’s inbox with millions of emails. It will cost me 0.5 BTC or $5000 at current bitcoin price. In turn the mempool will be bloated with 10k pending transactions.

Transaction Sizing

A traditional accounting system adds ledger entries into the book, as soon as transaction arrives. In my previous post, we saw how things are difficult for a cryptocurrency.

Everyone needs to be on the same page for the cryptocurrency to work. But there is always a delay/latency in sharing information. So, cryptocurrencies collect a bunch of ledger entries and add it to the blockchain at once. Furthermore, as there should be minimum delay/latency in sharing updated information. So, cryptocurrencies also limit how many transactions can be collected. This limited collection is enforced through the block size mechanism. Hence, the size of input/output combination becomes very important.

Let’s take bitcoin as an example. Bitcoin block size is 1 MB. One input is nearly 150 bytes and output is 40 bytes.

So, if we look at the Alice to Bob transaction above i.e. one input and two outputs, transaction size will be 230 bytes (150 + 40 * 2). One bitcoin block can contain 4350 such transactions.

But, if we look at the Alice to Adam transaction where there are two inputs and outputs, transaction size will be 380 bytes. One bitcoin block can contain only 2630 such transactions. This is 60% reduction in transaction storage.

Transaction Types

Cryptocurrencies offer a myriad range of transaction types. In Bitcoin, we have:

  1. Normal Transaction – These are transactions we have been discussing a lot. Alice to Bob transaction is a normal transaction.
  2. Multi-sig transactions – We have discussed multiple signatures or multi-sig in our first post. These are transactions where payment goes to an address with multiple private keys.
  3. Metadata transactions – In this transaction type, there is no coin exchange. Instead people use bitcoin blockchain to store some information. Something like Nelson Mandela pics or OMNI transactions
  4. Unknown transactions – These are transactions which don’t fall in any of the three categories.

If we look at bitcoin average transaction size, it varies a lot:



Since early December, average transaction size has been between 369 to 689 bytes. At the lower end, bitcoin block can contain 2710 transactions.  While on the higher end this figure reduces by 50% down to 1450 transactions. This is a huge variation in transaction performance.


Miners play a big role in transaction performance due to two major aspects:

  1. Location – Miners need to see your transaction before they can add it to the blockchain. Most of cryptocurrency miners are based out of China. So, if you located in place having huge latency to China, your transactions will be delayed.
  2. Block sizes have an important caveat – it is the maximum possible size of a block. Blocks which are smaller in size are also valid. Even the blocks with zero transactions.

So, in bitcoin there are valid blocks which are less than 1 MB. Data on historical bitcoin block size can be found here:

In last one year block size has varied between 0.58MB to 1.08MB.

Miners also have an upper hand compared to other parties in any cryptocurrency. They can select and prioritize transactions irrespective of fees. So, they not only pay lower fees but also have fastest transactions.

If you look at one of the previous example bitcoin transaction:


Size of the transaction is 33547 bytes. Ideal fees for this transaction is 0.14 BTC or $1700. But, the actual fees paid was 0.0003388 BTC or $4.

Additionally, lot of mining pools provide paid transaction “acceleration” services. They will take your transaction and try to included it in the next block.


At this point the concept of fees should be self-explanatory. Users bid on limited block space via fees. You pay more fees for a faster transaction. As the measurement for block space is MB, fees are calculated as “coins per byte”. So, fees are independent of coin amount. For example, it is possible to send 0.01 BTC and 100 BTC using same fees.

Just like any market function, fees are dependent on supply and demand. In this case, supply is the availability of blocks.

  1. If block size is too low, fees will be high.
  2. If block generation is slow, fees will be high.

Similarly, demand is on the transaction side.

  1. If you have too many inputs/outputs you transaction size and fees will be more. So, always optimize for transaction size. For example, if you look at the Alice-Adam the fee is about $21. It is possible to complete the transaction in $12, if we use 50 coin output to 40 for Adam and 10 for Alice. But what happens if Alice now need to send 12 coins? She needs to pay $21 because it will require two outputs. Combining is required at one point or other. Doing it as early as possible is the key lowering future fees. So, find a good wallet which can do that for you.
  2. If there are too many transactions fighting for the same spot, fees will be high. Mempools will shows you if there is too much competition.
  3. If someone pays higher fees for their transactions, rest will need to follow their lead.

Finding lowest fees

Most wallets have an inbuilt mechanism to calculate lowest fees. You can also use other websites to find lowest fees. An example site for bitcoin is:

This page lists transactions with worst fees on top.


It shows 4 transactions with zero fees per byte. These transactions will complete in anywhere between 780 minutes (10+hrs) to never.

As you scroll down, fees will increase and transaction get faster. Last line transactions have the highest fees and fastest transaction time.


Here, we see 16500 transactions with 581+ satoshis or 0.00000581+ BTC per byte. These transactions will complete in next 30 minutes.

Sweet spot for fees is towards end of the green zone.


As per this screenshot, best fees is anywhere between 0.00000450-460 BTC per byte. A transaction with 2 inputs and outputs is 380 bytes. So, if you think about Alice sending bitcoins to Adam she will need to pay 0.00170-0.00175 BTC in fees. At current exchange rate it is nearly $21.

You will find people claiming that their cryptocurrency has the lowest fees. I hope you can use information discussed in this article to evaluate and arrive at an informed conclusion.

The way forward…

This discussion will not be complete without answering questions like – What is the future of fees in cryptocurrencies? Is bitcoin scalable?

There has been lot of work done on the demand side. Transactions can now be a bit smaller due to Segregated Witness or Segwit which was first discussed in 2015. Litecoin activated Segwit in May 2017 and Bitcoin August 2017. Segwit also changed the block size parameter and introduced a new term called block weight. Due to this change, bitcoin blocks can now be nearly 4 MB in size.

There is also work being done on a new scaling solution called Lightning Network which was proposed in early 2017.

In comparison, trying to change the supply side of equation by increasing block size has been controversial. We have discussed earlier that it takes 13 seconds to propagate 1MB blocks. People opposing size increase fear that bigger blocks will cause further delays. So, they might end up mining only orphan blocks and never receive any mining rewards. So, all rewards will go to handful of miners with faster connection and lesser latency. They call it as centralization of mining power.

But, the block size controversy has gotten progressively worse and led to creation of an entirely new coin called “Bitcoin Cash” or BCH.

Interesting fact – In the BTC vs BCH debate both side accuse other of not following Satoshi Nakamoto’s dream. It is not often highlighted that the first version of bitcoin had 32MB block size. He later reduced it to 1MB. There is no official explanation from Nakamoto on size reduction or why 1MB was an ideal choice.

Still there is a huge amount of pending research on block size. For example, in October 2017, researchers from Bitcoin Unlimited presented a paper showing off 1GB block size.

In conclusion, bitcoin and other cryptocurrencies are cutting edge research combining two different fields – money and cryptographic technology. This might be the worse combination in history but with so much of research still pending, writing off cryptocurrencies might be too early.

Appendix – Triple Entry Accounting

This part is specifically for people interested in accounting so skip it if you don’t want to go there.

People often say triple Entry Accounting is one of the major benefits of using a blockchain. But there is a lot of confusion on what exactly is triple-entry.

Some people incorrectly think it is about the public nature of blockchain. They think if we add all transactions into a public book that is our third entry.

There is also some confusion over the origins of this method. People often incorrectly attribute it to Momentum Accounting for Trends: Relevance, Explanatory and Predictive Power of the Framework of Triple-Entry Bookkeeping and Momentum Accounting of Yuji Ijiri. This is because usage of a “third entry” was first proposed in this book. But, the proposed system by Ijiri is a complex beast. The proposal is to tie accounting to forecast. So, every credit/debit will cause the whole budget/forecast change. As, blockchain don’t exactly have an in-built forecast Ijiri’s concepts are not applicable.

The proposal for a blockchain type accounting comes from a separate work by Ian Griggs. He proposed that each credit/debit entry should have a third entry – unique cryptographic signature. Systems will not accept transactions with invalid cryptographic signature.

Now if you go back to the Alice-Bob transaction it is not exactly a two-entry system. We don’t have a book or entry storing Alice’s debit and Bob’s credit separately. The whole transaction is more like a single-entry system operating at the blockchain level. Blockchain had 1000 coins, when Alice completes mining the first block, she gets 100 coins. When she pays Bob, blockchain debits her account and credits Bob 50 coins, so on and so forth. This total will never exceed beyond 1000.

But blockchains implement a form Grigg’s proposal – all entries have an unique cryptographic signature in form of the mining hash. If the hash is invalid, entries cannot be created because there is no block.

So, when you read about Maersk tracking ships or China tracking chicken meat, all of them are using a form of cryptographically signed entry system.


Dummies guide to Bitcoin Energy Use

For past couple of months, there has been an increased focus on bitcoin energy usage. Recent examples are –  Vice article  and IEEE.

This post attempts to explain bitcoin’s energy usage. It also tries to add some perspective on the energy problem.

Warning: This article gets a bit technical.

Flow of Money

“It is digital money” is simplest explanation for bitcoin.

Digital currencies have an inherent problem. Let’s take an example. A digital currency called “MyDitigalCoin”:


If I need more MyDigitalCoin I can create a copy.


Tada! I have 2 coins now. It is called double spending.

The solution is to record ownership information.

Owner How Many MyDigitalCoins?
Me 1


Ownership and amount can be verified using this record. You can now reject every “copy” coin. This record is called a ledger.

Banks use ledgers to store your ownership and spending. Banks secure and maintain the private ledgers. Government authorities act as monitoring authority for the banks.

A cryptocurrency’s ledger is open to everyone. Anyone can check and edit the ledger. Hence the name – “public ledger”.

Public ledgers have two issues:

  1. Editing the ledger requires a trusted party.
  2. The identity verification of the trusted party should be fast.


Proof of Work

We discussed “proof of work” earlier on this blog here.

Proof of Work asks a miner to generate a token (nonce). The nonce verification happens in less than a second.

After verification, the miner can edit the ledger and earn reward coins.

But, there is a problem.

Latency and “Blockchains”

On the internet there is always a delay between action and reaction. This time delay is called latency.

In Bitcoin, it is the time difference between block creation(action) and acceptance by all peers(reaction). This process of a block being accepted by other peers is known as block propagation.

Because of this delay there are always multiple versions of a blockchain. Wikipedia entry on blockchain has a diagram:


Green box is our genesis block. Black boxes are blocks accepted by the whole network. This chain of black blocks is called main chain.

Purple and black blocks are mined at the same time. Purple boxes are valid blocks but not accepted by the whole network. These are called orphan blocks.

This latency causes two problems.

First, we don’t know if an accepted transaction is in an orphan or main chain block. This can cause double spending.

Visually, think a transaction included in purple block #1 but not black block # 1. This can be due to latency or someone maliciously changing the structure. Whatever the case, coins from purple # 1 can be re-spent and included in black block #2.

Second, orphan and main blocks both require same mining effort. So, orphan block is essentially wasting computing resource. Additionally, the network needs to decide the valid block and build from there. This is called block reorganization. 

Think about the 2nd and 3rd purple block. That is a chain of two blocks. So, cryptocurrency network needs to work together and find if that chain is invalid.

As per this site, bitcoin’s:

  1. 95% transactions take 22 second
  2. 95% of blocks take ~13 seconds

There is a 13 seconds window where two different people can find a block. Combine it with the block generation time of 10 minutes, that is nearly 2% chance of an orphan block. This situation was even worse back in 2013. Block propagation was 125 seconds or 20% chance of an orphan block.

Confirmations and Maturity

The solution for transaction issue is to measure probability of double spending. All cryptocurrencies use the same metric – confirmations.

Once a transaction is included in a block, number of confirmation becomes 1. Probability of a block being an orphan grows smaller and smaller with each additional block added.

All crypotcurrencies have the “confirmations” section on the transaction page. Example bitcoin:


Here, the number of confirmations is 2. There is 1 additional blocks on top of the transaction block. So, the latest block number/lock time is 495750. Now, the block confirmations will be more than 1000 now.

Block rewards, the newly minted coins, need 100 confirmations. This is known as block maturity. New coins can only be spend after maturing.

Revisiting Block Generation and Difficulty

Bitcoin’s solves block latency problem using block generation time and difficulty adjustment.

First, selecting a block generation time is a balancing act. This needs to be:

  1. High to delay blocks and minimize probability of an orphan block.
  2. Low to allow faster transactions.
  3. Low to allow faster confirmations. Confirmation counting starts from transaction block.

Bitcoin block generation time is 10 minutes. The recommended number of confirmations is 6 blocks. So, after an hour a bitcoin transaction is nearly immune from double spending.

Second, difficulty retargeting keeps the network within generation time boundary. Difficulty increases, if block generation is too fast. Mining becomes harder. Reverse is also true. Difficulty reduces, if blocks are taking too much time.

There is a simple relation between difficulty and PoW or hashing – Higher difficulty requires more hashes.

In Bitcoin, difficulty changes every 2 weeks. Additionally, it cannot change by more than 4 times the current difficulty.

Short History of Bitcoin Difficulty

When bitcoin started, the difficulty was 1. The first difficulty jump to 1.125 happened 11 months later in December 2009. As more people found bitcoin, the difficulty increased slowly.

A watershed moment happened when Laszlo Hanecz was able to find a way to mine coins using his GPU. Here’s the passage from Digital Gold by Nathaniel Popper:

Laszlo’s CPU had been winning, at most, one block of 50 Bitcoins each day, of the approximately 140 blocks that were released daily. Once Laszlo got his GPU card hooked in he began winning one or two blocks an hour, and occasionally more. On May 17 he won twenty-eight blocks; these wins gave him fourteen hundred new coins that day.

Satoshi knew someone would eventually spot this opportunity as Bitcoin became more successful and was not surprised when Laszlo e-mailed him about his project. But in responding to Laszlo, Satoshi was clearly torn. If one person was taking all the coins, there would be less of an incentive for new people to join in.

“I don’t mean to sound like a socialist,” Satoshi wrote back. “I don’t care if wealth is concentrated, but for now, we get more growth by giving that money to 100% of the people than giving it to 20%.”

As a result, Satoshi asked Laszlo to go easy with the “high powered hashing,” the term coined to refer to the process of plugging an input into a hash function and seeing what it spit out.

But Satoshi also recognized that having more computing power on the network made the network stronger as long as the people with the power, like Laszlo, wanted to see Bitcoin succeed.”

With people racing to find more blocks, difficulty increased steadily. In next four years, it went from just 1 to 3 million.

Many people were not interested in investing money the R&D money required for ASICs. But, in 2013 bitcoin prices touched $100 and suddenly there was interest in specialized bitcoin miners.

The miners started shipping towards end of 2013. While ASICs promised more efficient mining they came at a cost. The difficulty of bitcoin doubled in 2 months. This was truly “Tragedy of Commons“.

By the time 2013 ended difficulty increased by 1000 times to 1 giga hashes. Today, difficulty has increased by 1,500 times to 1.5 Terra hashes.

Energy usage

Now, let’s see the relationship between hashing and energy usage.

One of the famous bitcoin miners is Bitmain Antminer S9 Bitcoin Miner.

This machine can do 13.5 Terra Hashes per second (TH/s) or 13,500 Giga Hashes per second (GH/s). Here’s a table of coins at different difficulty levels:

Hashing Power (GH/s) Difficulty Bitcoins in 1 day
14000 1 3379583358.7646
14000 1000000000 3.3796
14000 1590896927258.079


14000 3181793854516.158 (twice the current difficulty) 0.0011

Let’s look at how the economics work:

Assume machine cost is 0.

This machine requires 1323 watts of electricity. In US, average cost of electricity is $0.12 kilo watts per hour. So, each day power cost is $3.81.

1 bitcoin goes for $13000. At 0.0021 BTC per day, revenue is $27.3/day.

Profit per day, after power costs, is $22.82.

That is ~$600 revenue per month.

This calculation is simplistic, especially with machine costs assumed to be zero. If people want, I will get into the economics of this.

Since starting of the year, difficulty has increased by more than 5 times. So, people mining 1 BTC in January can now only mine 0.2 BTC. Price have skyrocketed. People want to mine more coins.

Hence, people are adding more hashing power to bitcoin network. This has caused bitcoin’s energy usage to explode.

Bitcoin and the Energy concerns

The articles are right to an extent. If prices keep rising then surely people will spend more and more hashing power to earn coins. But, most of these discussions miss an important metric – mining efficiency. The metric for mining efficiency is watts required for 1 giga-hash. (1 giga-hash =1000000000 hashes)

Mining efficiency chart for the flagship Bitmain S-series miners:

bitcoin energy efficiency

The mining efficiency is up by 10 times in last 4 years.

The variability of mining profit comes mainly from electricity costs. With prices increasing (and lot of criticism on electricity usage) there will be even more research dedicated to reducing electricity costs. Sure, people might counterbalance this by trying to earn more coins. But, in time we will reach a balance. So, predicting a failure so soon is unwarranted.

There has been work on another Proof-model too.

Proof of Stake

This mining algorithm was first proposed on bitcointalk in 2011. The description given was (emphasis mine):

What I mean by proof of stake is that instead of your “vote” on the accepted transaction history being weighted by the share of computing resources you bring to the network, it’s weighted by the number of bitcoins you can prove you own, using your private keys.

So, instead of hashing and spending energy, a miner verification happens using coins owned by her. This proves her stake in the coin’s ecosystem. The idea being, if she has a stake then she will be less inclined to harm the coin. The first implementation of PoS happened in Peercoin.

There are couple of problems in PoS. First, someone can acquire coin just for creating issues. So, there is a coin age criterion. For staking considerations, coins need to be older than specific number of days. Example, peercoin considers coins not used, bought or sold, for last 30 days.

The second problem is “nothing at stake” problem. As we discussed above, due to latency, we have multiple blockchains at once. In PoW, computing acts as a deterrent to stop people from changing history.

In PoS, someone can stake their coins for more than blockchain. This can create a situation where there are multiple histories. So, blockchain reorganizes quite frequently.

To avoid this, PoS coins use a checkpoint system. On reaching a checkpoint, the blockchain freezes. There can be no changes beyond this checkpoint.

To understand this, look at the diagram in latency section. Let’s say the rule is – checkpoint after 4 blocks. So, after 4 blocks the first purple block is no longer valid.

The third problem is staking mechanism. Only people allowed to mine are the ones already owning coins. This makes the cryptocurrency somewhat centralized.


A decentralized currency where everyone can get in and have a fair say without consuming too many resources is a super interesting problem. Bitcoin is doing moderately well in this area. Mining efficiency research will lead the way for better energy future for bitcoin.

Blockchain Usage Part 2

We looked at two major uses of blockchain in our part 1. Here we expand our understanding looking at two more changes (but not usage) in blockchain space. We will tie this information in an ICO evaluation piece later.

Hashing Algorithm Change

(We have covered hashing and mining earlier in the blog.)

Bitcoin started with normal or “CPU Mining”. As bitcoin became famous people started to find ways to mine faster. There were miners (mining software) written to use the computer graphics card or GPUs. This difference in mining speed between CPU and GPU mining was nearly 5-10 times. That means for the same amount of work, GPU owners were earning 5-10 times more coins compared to CPU miners.

With time there were specialized machines called ASIC and FPGA which tilted the bar even further, sometimes in tune of up to 100 times.

This is not a bitcoin problem per se but an algorithm problem. So, any coin, example like Peercoin, which uses SHA-256 also has a similar problem.

This lead to people trying to find alternative hashing algorithms. Something which made GPU mining difficult. One of the earlier attempt to this was using scrypt algorithm.


Litecoin was announced on October 9th, 2011 as a faster coin. Three major changes were:

  1. Faster block time – 2.5 minutes vs 10 minutes on bitcoin
  2. Increased number of coins – 84 million vs 21 million
  3. Hashing algorithm – Scrypt instead of SHA256

The general idea of Litecoin was to be silver to Bitcoin’s gold. Compared to Bitcoin’s gold colored “B” icon,  the coin has a silver colored “L”.  Additionally, this was one of first implementation of dual mining. People could mine bitcoin as well as Litecoin using the same software.

CPU mining was not the highlight feature of Litecoin. But, scrypt algorithm was used for the coin’s Proof of Work for precisely because it could be mined using CPU. With time people did find a way to mine Litecoin on GPUs too.

Nowadays, many coins which start with explicitly seeking to make it easier to CPU mine; but most of them are unable to hold that position for long. So, CPU mining is effectively dead.


In bitcoin, addresses are a series of numbers and letter which provides some level of anonymity. But, the public ledger has a downside. As we saw in our post on blockchain explorers, once I know your bitcoin address checking your balances and transactions is very easy. Every trail and transaction exists in the public domain. So, it is not fully anonymous rather half or pseudo anonymous.

People have tried to find ways around it. Bitcoin allows anyone to create unlimited number of addresses. So, one of the ways to avoid the above issue is to create a new address for every transaction. This is not a long-term solution as blockchain explorer can show a predictable pattern of transactions.

This lead to creation of bitcoin mixer/ tumbler services. These services confuse the trail of transactions by shuffling the coins between multiple address. At the end of the cycle, original owner receives the coins to a new address. There is no direct link between original and ending accounts. So, there is a certain degree of anonymity.

There are couple of issues with these services –

One, these are third party services. So, you have to trust the people running these service with your bitcoins. This is not ideal.

Secondly, over time mixer might end up using some old addresses. This again creates a public trail of transactions.

So, people came up with ways to have anonymity on blockchain. Two major coins in this area are:


Johns Hopkins University professor Matthew Green and his students Ian Miers and Christina Garman set out to resolve the issue of pseudo anonymity on bitcoin. Their proposal is called Zerocoin. The idea behind Zerocoin was to create a mixing service on the blockchain; thus, making every transaction untraceable. The actual technology enabling the untraceable accounts is referred as “zero knowledge proofs or zk-SNARKs

Zerocoin was first implemented into a fully functional cryptocurrency called Zcoin which was released Oct 2016.

There are two different type of accounts on Zerocoin. Account starting “z” are untraceable. Accounts starting with “t” are traceable.

Zcash has a block time of 2.5 minutes and total supply of 21 million.

Looking at the Zcash blockchain explorer:

Block information

You can see most addresses start with “t” and hence show full amounts. Z-type accounts are hidden and no transaction information can be found.

There are transactions marked with heading – JoinSplits (example transaction –

These are the transactions which involve at least one “z” account – either on the receiver or sender side. Amounts show up only for “t” accounts.


Monero was announced in 2014.  Features announced were:

  1. Untraceable payments
  2. Un-linkable transactions
  3. Blockchain analysis resistance

Monero’s block time is 120 seconds.

Monero uses a technology called “ring signatures” to obfuscate transactions. So, if you look at:

Block info

Transaction information

Transaction amounts or “output total” are marked “confidential”.

Interestingly,  both Monero and Zcash started with CPU friendly algorithm. Over time people have written GPU miners to tilt the advantage in favor of GPU miners. So, as a rule of thumb – if you want to mine coins, it’s better to have GPUs.

Now let’s answer the perennial question:

Why do we need Altcoin?

There are good reasons for creating an new coins and not going the OMNI way.

(Note: I am going to use address and account interchangeably.)

First let’s deal with why can’t we build coins directly on top of bitcoin just like OMNI.

Bitcoin transactions have a fixed format.

So, the only way to store information on bitcoin blockchain is to use address. The process is rather cumbersome. (Steps can be found at – (Read – “How to put your own message in the blockchain”)

There are two caveats here:

  1. Storing anything on blockchain requires a fee. So, storing information on these special addresses is not free.
  2. Bitcoin doesn’t recognize these addresses. So, any coin sent to these “un-spendable” addresses are lost forever.

OMNI uses these un-spendable addresses to store information. Let’s take an example – Here’s the transfer of an asset named Tether on OMNI:

The amount transferred was 8495 Tethers.

While the same transaction on bitcoin blockchain has a different structure:

The un-spendable account which holds information about transfer shows up as “Unable to decode output address”.

While OMNI can read these un-spendable accounts, bitcoin cannot. As far as bitcoin is concerned these accounts are completely nonsense. This adds a layer of complexity on using bitcoin blockchain as the backbone.

We also need to consider other bitcoin features, like:

Block size

It defines the maximum possible size of a block in the chain. So, if we look at our blockchain example:

Complete Blockchain

Currently it has 3 transactions – 2 transfers and 1 reward. Total number of transactions – 4 transfer + 2 rewards (yellow). The length is 3 blocks.

Let’s say I reduce the block size to 2 transactions. Then every block will contain 1 transfer and 1 reward transaction (yellow). This means each transfer needs a reward.  This will cause a radical change. With 4 transfers each of them needing 1 reward, my number of blocks will swell to 5 – 4 transactions blocks and 1 Genesis

Similarly, if I increase the block size to 5 transactions. Every block will contain 4 transfers and 1 reward. With 4 transfers in total I can accommodate everything in one block. My number of blocks will be 2 – One Genesis and one Transfer.

In cryptocurrency, megabytes is the measure of block size.

Bitcoin’s block size is 1 MB. At this size 1 bitcoin block can store a maximum of 4200 transactions.  The OMNI transactions will also be a part of this limited 4200 “seats”.

Nowadays, increased fees is a serious concern on Bitcoin. It is exactly due to small block size. So, if all coins were use Bitcoin as the base we might see even more heavy fees.

Block Generation Time

Transaction times are tied directly to block generation time.  Bitcoin’s generation time is 10 minutes. So, a bitcoin transaction takes at least 10 minutes. The amount doesn’t matter. It is as true for 1 BTC as it is for 0.00001 BTC. In comparison, Litecoin’s block time is 2.5 minutes. So, transactions are 4 times faster.

Hashing Algorithm and Features

Some features require changing the hashing algorithm. Example being CPU mining friendly. Today, bitcoin’s SHA256 hashing algorithm cannot deliver that promise.

While features like full anonymity cannot be delivered on the existing bitcoin blockchain.

Limited Scripting

Bitcoin uses a scripting language to interact with the blockchain. The language is somewhat restrictive. It was exactly this issue that led to creation of a new coin and the “Rise of ICOs”.


Blockchain Usage Part 1

Disclaimer – Coins discussed in this post are for educational purpose. Please don’t take them as any form of endorsements.

In our previous post we discussed one of the important tools to evaluate ICOs. In this post, we will expand our understanding of the blockchain technology. This will help us to further evaluate ICOs by understanding their underlying technology proposal.

Trustless and decentralized transactions, consistency and privacy – are the major advantages of blockchain.

All these features are already provided by bitcoin. So, the question is what do ICOs or other blockchain offer at all? It all comes down to usage.

Blockchain Usage

Let’s go back to our earlier blockchain example:

Complete Blockchain

From this we understand that a blockchain contains:

  1. Balances
  2. Identity information

But what if things can go beyond this?

Blockchain as Database

The very first block of bitcoin or genesis did not contain only balances and identity information. It also contained a message –

“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”

If you actually want to see the actual message. Find the genesis block:

Click on the text just below “Transactions”, it will take you here:

Click on “show scripts and coinbase”.

As bitcoin caught on, people started storing all sort of  data on the blockchain. With ingenuity and enough fees anything can be stored . Examples include:

  1. Bitcoin logo
  2. Catholic Prayers – Oh yes, it is embedded in the bitcoin blockchain forever
  3. Nelson Mandela complete pic
  4. Bitcoin pdf paper etc.

(credit to: Check the page for detailed information. )

Combined with inherent characteristics like privacy, decentralized etc., blockchain could be used for a lot of things.

Now, armed with this information people came up with two ways to utilize it:

  1. Using the blockchain underlying principle to create a new blockchain (also known as altcoins) to solve a problem.
  2. Using bitcoin as a metadata store (Metadata is data about data. Check the Nelson Mandela pic example in the link above. Nelson Mandela pic is the data. While the pic name – 3Nelson-Mandela.jpg? is the metadata).

Let’s look at one example of both the ways:

New Blockchain or Altcoins

Any new coin with its own blockchain falls into this category. These tend to solve a particular problem.

Namecoin is the first example of leveraging blockchain concept for a different purpose other monetary transaction.


This was the first fork of bitcoin.

A fork, in layman terms, means copying a program code and then reusing it. The re-use can be:

  1. Simple renaming (ex. Use bitcoin code as it is to create Mycoin)
  2. Improving the code
  3. Re-purposing the code


Namecoin used the bitcoin code to create a new coin which could be used, you guessed it, to store names. Domain names are the most stored information on namecoin.

Domain Name

Think of addresses –  the major component of a normal address is the House Number and Zip code. Similarly, every computer in this world has an IP address. A website which is a computer also has an IP address.

For example, IP address is:

So, when you type in chrome or Firefox, it checks the site address in a domain name registry which is hosted on a Domain Name Server or DNS. Your computer requires the correct IP to open a website.

The DNS database is a centralized server. So think of a controversial website like – In this case, blocking a site is simple. Just delete the IP address associated with from the DNS database.

Namecoin and DNS

Namecoin blockchain allows people to store site name and IP address in exchange for well what else but namecoins. The extension for a namecoin site is .bit (extension examples are .com, .net, .org etc). So, WikiLeaks can create a site – wikileaks.bit and store a corresponding IP address on the namecoin blockchain after paying some coins.

Website IP information cannot be tampered as blockchains are secure (immutable in tech speak). So any website information stored on namecoin blockchain will remain forever within the blockchain.

Normal web browsers cannot find the .bit websites. It requires specialized namecoin software,chrome and firefox extension, to get the DNS information of .bit websites.

Using Bitcoin Blockchain as Metadata Store

Metadata is data that provides information about other data. So, using blockchain as a metadata means using it to store information about “other” data ie non-bitcoin information.

An example of these are coins which are layered on top of bitcoin. They utilize bitcoin’s blockchain to store their metadata information ie non-bitcoin information. They utilize the computing power behind bitcoin to secure their network. Examples include — Omni (earlier known as Mastercoin) and Counterparty.

Let’s look at Omni (I will be using Mastercoin and OMNI interchangeably)

Omni (MasterCoin)

OMNI architecture:

Omni and Bitcoin Layering

(Their paper )

Mastercoin was one of the first coin sales or ICO. People were asked to send coins to an exodus address (1EXoDusjGwvnjZUyKkxZ4UHEf77z6A5S4P).  Mastercoin was credited in lieu of BTC to those accounts. The distribution was similar to ICO nowadays. Just like a classic IPO, late buyers paid a slight premium compared to the early adopters.

How does OMNI work?

Omni uses an elaborate scheme to manage transactions. All OMNI transactions have three parts:

  1. The sender and receiver -These are bitcoin addresses which own OMNI coins. Yes you read it right, because of layering all OMNI coin owners are also bitcoin owners
  2. Exodus address – Each OMNI transaction pays a small fee to the Exodus address. It makes filtering OMNI transactions from the complete bitcoin blockchain very easy. So all OMNI transactions can be found on the exodus account page:
  3. Data Address – This is a special bitcoin address which stores the OMNI coin transaction. So if I send you 1 OMNI from my bitcoin address to your address, a special data address will store that transaction.

Let’s take an example:

A transfer of 0.9 OMNI between two addresses as seen and stored by OMNI:

You can see the sender and receiver of the coins.

As, we know OMNI uses bitcoin blockchain so the information must exist there too:

If you match both the page, the information can be broken down to:

  1. Sender – 1BF6A2MU7iS5qLRe8tLTHkLZBmEUsKHV5m
  2. Receiver – 1KTpA9UJfCP5L3at3QwgHYYyRCUwNnRhWY (Both are actual bitcoin address)
  3. Exodus Address – 1EXoDusjGwvnjZUyKkxZ4UHEf77z6A5S4P (Omniexplorer uses this to filter transactions)
  4. Data Address – 1BF6A2MU7iS5qLRe8tLTHkLZBmEUsKHV5m → This stores the transaction and ownership information of OMNI coins. In this case it will store the transfer of 0.9 OMNI coins


ICO, Token, Genesis, PreMine and Instamine Explained

Please note: This is a supplement to the “Blockchain and Cryptocurrency Explained” series. If you want to start from the beginning, go here.

This information should help you during your next token or ICO sale.

What is ICO and pre-mine?

To understand this let’s go to our blockchain example in part 3:

Blockchain Example

The question here is – How do Red or Blue transfer any coins at all? There is no mining information at all.

So, we expand our example to include mining:

Complete Blockchain

With Red and Blue getting some coins in block#0 they can now transact in block#1. The noticeable thing for Block#0 is:

  1. Red and Blue are not rewarded for mining.
  2. Both Red and Blue get some coins. Ideally, this should not happen. Block reward belongs to “a person” mining the block (check part 4)

Genesis Block

Genesis block is a special case in cryptocurrency. This block can have rules which are separate from other blocks. For example, Bitcoin’s genesis block:

Using what we learn in our last article :

  1. The section called “previous block” is all 0.
  2. Transaction section shows only one transaction. The “Newly Generated Coins” or the block reward.

So, the only transaction in the block was rewarding 50 BTC to the person mining the genesis block of bitcoin. You can click on the bitcoin address and you can see all the transactions. (If it is not clickable, you can check the address here). It says “Genesis of Bitcoin”.  The special rule for bitcoin genesis is that these 50 BTC cannot be used. That means no one can use this 50 BTC to exchange for USD, buy ethereum etc. So, the actual block rewards in bitcoin start from block#1.


When Satoshi came out with the idea of Bitcoin it was a passion project. As time went by there were a glut of coins – 817 coins. Now coin developers are facing an issue of getting people interested in their platforms. Additionally, with more money invested into cryptocurrencies expectations started change. Developers are expected to:

  1. Hire more developers to keep improving the coin
  2. Promote the coins
  3. Develop necessary features like blockchain explorer. Private explorers like tend to get controversial.
  4. List the coins on exchange. This can cost up to 25 BTC per listing.


So, the idea of Initial Coin Offerings or ICO was born.  

In an ICO, developers ask people to send BTC or ETH to a particular address. In exchange, people get coins on the newly developed blockchain. These coins are generated in the genesis block.

So, in our example blockchain above Red and Blue must have paid BTC to our fictional coin developers. They were then given 10 and 20 coins respectively, in the genesis block.

A real world example is the Ethereum ICO:

The rewards were 2000 ETH per BTC for first 2 weeks. So, if I sent them 1 BTC they added a record in Ethereum genesis block to give me 2000 ETH.

If you look at Ethereum’s genesis block, it has 8893 transactions:

These transactions are the outcome of Ethereum ICO.

If you look closely ethereum developers also got 12 million ETH in the genesis block. The account and transaction here(scroll to the end):

Some people consider this was unfair.

PreMine (or Pre-mine)

When a significant chunk of a coin is mined before widespread adoption, it is called pre-mine.

An ICO is also somewhat of a pre-mine. If developers are open about their intent, it is considered fair.

So, it is necessary to lookout for any un-wanted surprises during the reward allocations for the starting blocks, especially genesis. If possible always demand your coin has some sort of blockchain explorer at the launch date to help you dig into this information.

Instamine (or Insta-Mine)

Let’s re-look at the genesis block of bitcoin again:

There is a section called difficulty. It drives the mining effort required to find the correct hash. 1 is the easiest difficulty on bitcoin. To give you an idea, look at the difficulty of the most recent block at writing of this blog:

The difficulty is 888,171,856,257.32. So it is nearly 900 billion times more difficult to find a block now than it it was at the genesis block.

As we discussed in part 4 , block rewards decline over time. This entices people to start mining early and earn lot of coins. But, this a double edged sword. If a particular group was able to capture those starting blocks, they can control the supply. This capturing of initial/starting blocks is called instamine (insta-mine)

Dash is an example of an instamine coin. The total supply of Dash is 18.9 million coins. Due to a glitch, 25% of the coins (1.9 million) were mined within 48 hours. As per the developer, this was caused by a coding error. Difficulty change between blocks was not working correctly. So, someone was able to mine all those coins at a very low difficulty.

So again, always ask for an explorer to help you check what is happening behind the scene.


Crowdsale was the “hot term” during ethereum launch. Tokens or ICOs were not in vogue. So, it gets quite confusing with all the new words.

In my opinion:

  1. ICO or Coin offerings should be for new blockchains. So, take coins for developing a completely new coin.
  2. Cryptocurrencies like Ethereum, Omni and NXT allow people to develop businesses on top of its blockchain. These “coins” cannot be mined per se. So, the term token and “token sale” is more suitable.

But, nowadays even the token sales are called ICOs.

We will apply some of the rules to evaluate coins in a later post.

What is a Blockchain Explorer and Difficulty?

Please note: This is a supplement to the “Blockchain and Cryptocurrency Explained” series. If you want to start from the beginning, go here.

Blockchain explorer is one of the essential tools in any cryptocurrency. These explorers provide information on the status of the blocks, transactions and currency. We will cover some of the basic information related to blockchain explorers.

Let’s take two currencies side by side to understand this completely:

  1. Bitcoin Blockchain Explorer –
  2. Ethereum Blockchain Explorer –

Network Status

We can find out how the network is doing by looking at the below stats. Each piece of information can help us understand the currency better as whole.

Blockchain length

The height or last block number tells you the current blockchain length. If the height or last block is 100, then the current blockchain length is 100.

A longer chain means it is more secure.


Bitcoin Blockchain explorer Homepage



Etherscan Blockchain explorer Homepage


The amount of computing power being utilized on the cryptocurrency network. This is normally denominated as H/s or hashes per second. It can be GH/s for giga-hashes per second or TH/s for tera-hashes per second

If you remember our discussion on the email and Hashcash, computer needed to try every combination to find the correct combination and hash. Same formula applies here. So, when it shows that the network hashrate is:

1 GH/s or 1 Gigahashes per second → Computers are trying 1 billion combinations (or hashes) each second to try and find the correct combination

We want the hashrate to be higher as it will mean there are a lot of computers working on securing the cryptocurrency.


Info is there on status page (

Bitcoin Blockchain Hashrate


Ethereum Blockchain Hashrate


Mining Difficulty

Cryptocurrencies need to ensure coin distribution is fair. Most of the coin supply is from block rewards (check part 4). So, cryptocurrencies tend to have an average block generation time. Bitcoin’s is 10 minutes. Every time a block is generated before 10 mins it will increase the mining difficulty. The process of changing the difficulty is referred to as difficulty adjustment. 


This can be found on status page (

Bitcoin Blockchain Difficulty


Ethereum Blockchain Difficulty

Each currency has it’s own way of expressing difficulty. Ethereum is denoting as number of hashes required while bitcoin doesn’t. Not going into technical details, higher is always better as it will mean more people are mining and securing the cryptocurrency.

What is difficulty?

To understand let’s take a hypothetical example on Hashcash. There we said a hash with starting 20 bits being zero might take a second. So suppose we have a coin using the basic Hashcash. The block generation time is 2 seconds. This will happen step by step:

  1. First block is generated in a second.
  2. Cryptocurrency sees that and enforce rule by changing “difficulty”. Now the requirement is to find hash with 40 bits ie 2 seconds.
  3. Second block is generated in 2 seconds.
  4. Third Block is generated in 1.5 seconds. People want more coins and quickly! So they use more computing power and reduce time.
  5. Cryptocurrency adjusts the difficulty again to ensure 2 seconds. It will change the rule to 80 bits.
  6. Fourth block is generated in 3 seconds. Now there is not enough computing power to complete the hash in 2 seconds.
  7. Cryptocurrency adjusts the difficulty again to ensure 2 seconds. It will change the rule to 60 bits
  8. Fifth block is generated in 2 seconds.
  9. Sixth block is generated in 1.5 seconds.
  10. Cryptocurrency adjust…. you get the idea…

Block Generation Time

The statistics for generation time can also be found.


Info on status page (

Bitcoin Blockchain Generation Time


Ethereum Blockchain Generation time

Fun fact: You can look at Ethereum’s difficulty and hashrate to arrive at the average time. Here’s the calculation:

HashRate = 86785.40 GH/s

Difficulty = 2159.71 TH = 2159.71 * 1000 GH = 2159710

Average Time = Difficulty divided by Hashrate = 2159710/86785.4 = 24.78 seconds

Note on mining

While I said high hashrate and difficulty is good for a currency. It also has an inverse effect on mining. Most of the currencies are unmineable by Average Joe because there are now specialized hardware and software miners which work even in these extreme conditions. Only when you find a coin with less hashrate or difficulty should you think about pool mining. Nowadays, you shouldn’t solo mine.

Block Information

Blocks are the basic building blocks of any cryptocurrency. All transaction and identity information is stored in the blocks. Blockchain explorers provide a for us to see any block in the chain. It can be as far as the very first block in the chain to the newest blocks.

Block Search

We can search for any block from the homepage or you can click on the most recent blocks.


Bitcoin Blockchain explorer Homepage

482434 is the recent block. You can click to see the block information. While you can search for the block number above.


Etherscan Blockchain explorer Homepage

4215359 is the recent block. You can click to see the block information. While you can search for the block number in the search box.

Block Information Content

Once you click on the blocks you can see all the relevant information. The information structure will depend on the explorer as well as coin characteristics.


Bitcoin Blockchain Block Info

Some of the details of the block are:

  1. The block number or height
  2. Output total – The total number of balances after the transactions (total of all the green highlight)
  3. Estimated Transaction Volume is the amount of transactions within the block
  4. Transaction fees which goes to the miner finding the block
  5. Time of addition of the block
  6. Relayed by shows the miner of the block – Here it is a mining pool
  7. Difficulty of mining the block
  8. The block reward which is currently 12.5 BTC
  9.  “No Inputs” shows the total block reward. (12.5 BTC per block+ 3.87 BTC in fees ~ 16.37 BTC)
  10. Transactions contained in the block along with the addresses
  11. Hash of this block as well as the previous and next block


Ethereum Blockchain Block Info

Here you find nearly the same information as above. Some of the ethereum specific details are:

  1. Ethereum allows people to write digital contracts. Hence there is a separate section for contracts as well
  2. Fees is knwon Gas in ethereum
  3. Uncle reward – Think of these as block rewards as well
  4. Block reward is already broken down to Reward + fees. There are two entries for fees related to transactions and contracts

You can click the transaction link to see all the transactions and associated:

Putting this all together:

  1. Transaction fees can give you an idea on cost associated with doing a transaction. Example bitcoin from above. Total fees are nearly 3.88 BTC and Total number of transactions = 2309. So, the average fees is 3.88 BTC/ 2309 = 0.00168 BTC. You can do a lot of similar calculation to see how well the fees are working.
  2. More active coin means more number of transactions as well as volume of transactions.
  3. It is necessary to see the difficulty of blocks, specially the early ones. We will discuss the impact in next blog.
  4. Block reward tells you the number of coins given for finding a block.

Account Information

Blockchain being a public ledger, you can also find all the account information too. Just input the account address in the search box mentioned above. Address summaries look like this:


Bitcoin Blockchain Account Info

Details here are:

  1. Transaction Hash (green box)
  2. Address
  3. Number of transactions from this account
  4. Total received in the account
  5. Current balance of the account
  6. All transactions of this account (Green arrows shows BTC coming into the account and Red show BTC going out)


Ethereum Blockchain Account Info

Most of the information is similar. Differences are:

  1. Out and In mark outgoing and incoming transactions respectively.
  2. Token balances show the Ethereum tokens held by the account
  3. Token transfers are under the tab “Token Transfers”

Transaction Information

You can also check any transaction you want. These are clicking the transaction hash in:

  1. Block information
  2. Account information


Bitcoin Blockchain Transaction Info

Skipping the technical information here, what we can see is:

  1. Transaction amount
  2. Fees paid for this transaction


Ethereum Blockchain Transaction Info

Information here is similar. Ethereum goes into a lot of detail about “Gas” or fees as this has been a concern among people wanting to use cryptocurrencies. So, it not only tells you the exact fees but also the exact fees required. So here it costs $0.15 for each ether ($357).

Next blog will cover the how to use what we have learned here to find out talk about fraud coins.


Please note: This is supplementary for the “Blockchain and Cryptocurrency Explained” series. If you want to start from the beginning, go here.

Oft asked questions for any cryptocurrency is – How do I start using a coin? How do I mine so and so coin? Or How does one become a node or a peer? The steps for achieving any of these is similar in any coin. This post aims to provide a general outline of those steps.

Here’s the decision tree (click to see larger version)

Now to answer some questions:

What does running a full node mean?

A full node is a simple validator of transactions. It supports the cryptocurrency network by providing distributed consensus. A node requires the pc to be running all the time. Additionally, it requires a lot of data bandwidth. If you lack bandwidth or a server which can be running all the time, it’s best not to run a node.

What is the Core client?

Most coins have their own software called the core client. This is the base which is required to connect to the peers and download the whole blockchain. To use a wallet, you need blockchain connectivity. There is no other way. Example, the core software for ethereum is called geth and bitcoin is called bitcoin core.  You can find the software by searching for “coin name” core client download:

What is a wallet software and how is it different from core client?

Wallet software is a vanilla software to store your coins. It is the simplest way for anyone who wants to start using any cryptocurrency. It can’t check transactions against blockchain. As we said in previous question, there is no way to use cryptocurrencies without interacting with blockchain. So these rely on the blockchain hosted by the wallet company. Example is Exodus wallet software. It will rely on the blockchain which exodus will have running on its computers. If you just need to use cryptocurrencies you can download wallet and be done.

Why are there two different steps for wallet address creation?

In most cases, creating wallet address is a simple task in both core client or wallet software and created automatically once you open the software. But in some core client cases, like geth, this requires special knowledge and steps. If you are mining, you need a wallet address where the block rewards and fees can be stored.

How to connect peers in the network?

Most of the software connect to peers automatically. There might be some, again like ethereum’s geth, which require you to do separate steps before you can connect to peers.

What does downloading a blockchain mean?

Blockchain contains all transactions in a network. So, before you can become a node you need the whole copy before validations can be done. This is a time, bandwidth and disc space consuming process. Currently bitcoin blockchain size is 160GB while ethereum is 250GB. So, if you decide to become node for ethereum you need 250GB on your hard disk. Then an internet plan which allows you to download 250GB of data. Then depending on your speed, this download can take up to couple of days.

What is mining?

Mining is the process of finding the next block and earning coins for it – block reward and fees. It is very resource intensive – electricity bill and computing power wise both. If you don’t have the computing resources then don’t do this. If you still want to help the network, you can utilize your computer to become a node and help the network. See question 1 for considerations.

What is a miner?

The miner does the heavy lifting of finding the correct hash and next block for you to earn coins. Finding the correct miner is necessary as an inefficient one will just waste power but get no returns. Example of a good miner is cgminer for bitcoin and ethminer for ethereum. Note: Miner is a word used for both the software and the person who is running miner on his computer. So, “miner using the miner cygminer” is common in cryptocurrency world – the first reference is the “person who is mining” while the second reference is the mining software.

What does “using your resource for yourself” mean?

Here we are talking about solo mining. In this case you are mining for yourself and competing against all the miners in the world. So if there are 1000 miners with say similar computing power to yours then you have 0.1% chance of finding the next block. You need to have a blockchain copy on your computer to solo mine.

What is a mining pool?

The problem of solo mining is quite evident, not only there are lot of resources used, the probability of winning is low. This becomes even more problematic when there are people with more computing power than yours.

The alternative is pool mining. In this case, lot of people connect to a single server called the pool and use their resources collectively. So, if suppose 100 of the 1000 miners join a pool, they now have 10% chance of finding the next block. Everyone is paid according to the effort put in. If your efforts amounts to 20% of  the total pool, you will get 20% of the block rewards once the pool finds the block.

The second advantage is you don’t need to download the whole blockchain. You can use the pool’s blockchain to mine. So unlike solo mining you save a lot of resources.

It is very important to find an honest pool. You can check for reviews on coin forums etc. You can get taken for a ride. Instead of getting 20% you may end up with 5% of payout only.

How to configure a miner?

As miner is a separate piece of software it needs to connect to the blockchain to start working. In solo mining, this is easy as the miner will mostly install and connect to the core software automatically. Things become a bit difficult when you are pool mining. First you need to find the pool address. Once you have that you can start you miner with the pool address followed by your wallet address.


Blockchain and Cryptocurrency Explained – Part 4 – Mining

We have looked at identity, verification and trust in cryptocurrency and blockchain. In our last part, we will put everything together and look at the end to end transaction flow using mining. 

Let’s start with the often used word:


The process by which a peer or a node earns coins is called mining. The node which is earning through mining is called a miner.

Okay…but what is mining?

If you remember our discussion on hashcash – email sender had to find a specific type of hash. The rule being that the hash needed to start with 20 zeros.

Mining is a similar process where a peer in the cryptocurrency network works to verify the transaction and generate a hash out of it. A peer(node) earns coins for his effort once he finds the correct hash. Every cryptocurrency has its own rule on what exactly is the correct hash. This type of mining is also known as Proof of Work (PoW).

Note: When someone says “finding a block”, they actually mean generating the correct hash for the next block.


Here’s what the transaction between Red and Green looks like when we include mining. This assumes we have only one node (peer):

Reward coins?

They are of two types:

Block Reward

All cryptocurrencies start off with a fixed supply of coins. This is the maximum number of coins for a cryptocurrency. The distribution of these coins happens through “block rewards”. Any one who finds a block is given some coins from this fixed supply.

Fixed supply of coins means that these rewards need to be adjusted every now and then. This ensures adoption is fast as early adopters tend to get a lot of coins.

Cryptocurrencies also implement a feature called block generation time. This helps in controlling the supply. It also ensures block rewards are not paid out too quickly.

The rewards differ from coin to coin:

Bitcoin (BTC) 21 million coins is the total supply. Early block reward was 50 bitcoins. In Bitcoin, tapering happens in form of halving the block reward every 4 years. So, block reward reduced to 25 BTC in 2012. It further reduced to 12.5 BTC in 2016. The next reduction to 6.25 BTC will happen in 2020.

Bitcoin’s block generation is 10 minutes. So, a node can earn 1.25 new bitcoins every minute (12.5 BTC per 10 minutes). Currently ~80% of the BTC supply has been mined.

Ethereum initial supply was set to a quintillion (billion times billion). Ethereum developers wanted to have a coin unlike bitcoin. The idea is that the coin should be mine-able forever. Currently the block reward is 5 ETH. There has been discussions to reduce this down to 3 ETH.

Ethereum’s block generation is ~14-20 secs per block. So there is ~15-20 new ETH per minute.


With block reward reducing over time, cryptocurrency includes an additional incentive for miners. This incentive is the transaction fees. The node finding the new block earns all the fees from the

transaction he has included in the block.

At the time of writing this the fees for bitcoin is ~ 0.000678 BTC per transaction and, fees for ethereum is ~0.00092 ETH.

While transactions with zero fees are also acceptable, miners might delay in verifying those transactions. That is simply capitalism at play – everyone needs an incentive to do something. So, it is always better to add fees.

Going back to our above Red, Green and Blue example. If in the picture Red and Green were using bitcoin, then at the end actual transaction will be with Blue earning coins for his effort:

Red = Debit of 1 BTC for transaction + Debit of 0.000678 BTC for fees = 1.000678  BTC

Green = Credit of 1 BTC from Red

Blue = Credit of 12.5 BTC in block reward and 0.000678 BTC in fees= 12.500678 BTC earned

Full network

I have expanded on an example used earlier. Assume Red and Green are transacting a fictional coin called JeansCoin.

A full network from this pic:

  1. Red’s identity and balance is verified using a digital signature – Discussed here
  2. Verification is done by multiple people in the network or peer to peer – Discussed here
  3. Grey is only verifying identity against the blockchain. So, Grey is a node(peer) but not a miner.
  4. Red, Green and Blue are miners. So, they are not only verifying the transaction, they are also securing the network by hashing information. Discussed here
  5. There is actually a competition going on between – Red, Green and Blue. So, the first one to find the hash earns reward coins as described above.  
  6. Let’s say Blue finds the block. He will earn coins from the supply and fees from Red. Now the blockchain has an additional block.
  7. Now a new block added to the old chain. Every node needs to update their blockchain too. So the block from Blue goes out to – Red, Green and Grey.
  8. Next round of verification and transfers happen on the extended chain.

For a mainstream coin like Bitcoin, there are tons of nodes who verify and secure the network. Mining in itself is extremely competitive. People use specialized software and hardware to mine and earn those extra coins.

I hope this series has given you insights on all three parts of a cryptocurrency. In addition, money generation and how other parts fit in should also be clear now. 

Blockchain and Cryptocurrency Explained – Part 3 – Blockchain (2)

How does Hashcash tie into cryptocurrency?

Cryptocurrencies using the concept of Hashcash to generate coins and maintain blockchain. Some of the important concepts which are re-used from Hashcash:

  1. The software used for Hashcash was referred to as mint. One correct hash meant 1 token or coin (cash) to send one email.
  2. The process for finding correct nonce is called mining.
  3. Correct hash is used to prove that the sender’s computer has done some work on finding the right combination, hence the name Proof of Work 

While this method worked flawlessly for emails there was an issue when using it in a currency setting. If your bank said that each coin can be spent only once, how would that turn out? You buy a dollar worth of groceries, your grocer takes the dollar to bank to exchange, then the grocer buys a dollar worth of gas, again the dollar has to be exchanged…so and so forth. See the problem? Things get needlessly complicated.

To resolve this, in comes RPOW – Reusable Proof of Work by Hal Finney. Now the coin could be used repeatedly. To achieve this every coin was attached to each other. For example, an email flow in RPOW would be like this:

The output hash from the original message will be chained into the next email. The nonce 119598 was calculated on the extended message.


In a traditional money system, the bank has a general ledger detailing each transaction – debit and credits etc. They have a separate identity store which holds balance. Here’s what a traditional transaction actually looks like:

In cryptocurrency having each part being done separately is not feasible. So blockchain contains both information:

  1. Everyone’s public key (used to verify identity – check part 1)
  2. Transaction information

So, a blockchain transaction between Red and Green looks like this:

Every peer is having a copy of the blockchain and uses it to verify the ownership of coins as well as balances. Once confirmed they add entries to the blockchain to reflect new balance for Red’s key. Hence, blockchain is also sometimes referred to as distributed ledger.

To ensure trust transaction and identity information is hashed into a block. That way unless someone knows all the information it is impossible to find the hash.

Furthermore, all blocks are chained to each other like in our RPOW example. So, the block”chain” looks like this:

To reiterate a block contains two information:

  1. All transactions which have happened
  2. The nonce which used along with the transaction info to create a valid hash.

Since each block is chained to the previous and next block, it makes hacking or changing even more difficult. As the data cannot be changed it is also referred to as immutable.

How does Trust work?

Say at the 11th block Blue wants to get back her 2 coins included in block1. As everything is connected to each other, all hashes will need to be re-done since block1. This is almost impossible. Not to mention the peers would catch on and kick Blue out from the network.

Hence, blockchain has to work in conjunction with p2p network to achieve the distributed consensus.

Now remains the question of money flow – how are coins created, transactions etc in a cryptocurrency. We will discuss that in part 4.

Blockchain and Cryptocurrency Explained – Part 3– Blockchain (1)

This part on blockchain gets a little technical. So I have broken this down to two smaller pieces.

We understand p2p systems must ensure trust especially when it the whole idea is based on a system of unrelated computers. Let’s look at how the trust is achieved.

If we go back to our p2p example in part 2 , here’s what we said:

In a p2p environment, the bittorrent program checks the file it is downloading.

The question is how does the checking work and trust is established? Well, one of the ways is to do a byte by byte comparison. But that will be slow and unreliable. Instead it stores a hash of the original file and checks it against the file from If the file hash doesn’t match it is rejected.

What is hashing?

Hashing is another cryptographic technique to hide data from hackers. So it takes any data and then makes it unreadable. While each hash is unique, unlike encryption you can generate hash without any key at all. There are various forms of hashes – MD5, SHA1, SHA256 etc.

All examples below use SHA256 hash [See Appendix for notes on tools]

It differs from encryption in three more ways:

Output is irreversible:

It is one-way street; the output cannot be decrypted at all. Knowing the original message is the only solution because even a small change leads to different hash:

I have progressively capitalized the words in our message.

Output length is fixed:

I have repeated the same message thrice. As you can see the output length is still same.

It works on any data :

The second example is an Ubuntu file. To go back to our torrent trust example, the torrent file will have the above hash stored. A corrupted file’s hash will be different from the expected hash. Hence, the corrupted file will be rejected.

Innovative usage of hash

Email spam has been the bane of electronic communication. Back in the 90s, a cryptographer named Adam Back proposed a brilliant idea to counter spam. The system was called “hashcash“.

Without getting into minute details, the idea was to have the email sender’s computer to take the below information and generate a hash:

  1. email address, date and time etc
  2. random number, also called nonce 

This hash had to start with 20 zeros to be valid. Once the valid hash was found it was attached along with the email and sent out.

The email receiver’s computer could use the email content to generate another hash. It would then check the resulting hash against the received hash. If they did not match, email would be marked as spam.

Example of email flow between Red and Green (relaxed condition to 4 zeros only):

The number – 15395 is the nonce part of Red’s message. To generate the valid hash with 4 starting zeros, our sender’s (Red) computer has to check each combination:

Message Hash
1How are you?21:37 7834A5C1A266260A30D310696C0CE20811E44D853F4ECA6EF570AC595B2F6C4A
2How are you?21:37 AB2C56650D330F4A10AFF17F51BE71B0875172EE53A343B1EF620DC17B3821BD


so and so forth unless the correct number (nonce) and hash with required zeros is found.

15395How are you?21:37 -> 00007A092207AD90CC5DC4DDD4865A43DDD4716DA33034ACD66A52F9BE9A162A

How does all this stop spam?

On the sender’s computer finding the correct hash takes about a second. While on the receiver’s side verification takes milliseconds.

For a genuine mail sender this is not a problem. They can take the time and date, email address etc information and generate the correct hash in one second to earn the cash for one email.

For a spammer sending say 10k emails, his computer will be in peril for a long time. Each email requires 1 second so the computer will hang after every email sent. The total time it will take to send email will be 10k seconds or 2.8 hours or even more. All the while recipients verifying spam in matter of seconds.




  1. Google “SHA256 hash Generator” and you will find a lot of tools to generate hash
  2. Small tutorial and tool to generate SHA256 on a pdf, video,  etc here –