Bitcoin Demystified: A Hacker's Perspective

My Secret Life as a Bitcoin Miner - Part 1: The Basics

This is part 1 in what will be a 3 part series, which will become progressively more in depth and technical.

The term Bitcoin has been in the news lately; Bitcoins have been rising in value with volatility, but also mystery for someone without a computer science or mathematical background. In this post I will cover the vocabulary and basics of bitcoin and bitcoin transactions.

Basic Vocabulary:

Wallets and Addresses manage bitcoin transactions.
The Block Chain is a public record of every transaction that has ever occurred.
Mining is a resource-intensive process that rewards successful miners newly “minted” bitcoin (the current reward is 25 BTC; that quantity will halve to 12.5 in 4 years)
Miners are those who mine bitcoin. In addition to adding new bitcoin to the network, miners are necessary to process transactions and maintain the Block Chain.
Pooled mining is when miners get together to cooperate so they can have a better chance to win new bitcoin and then share the reward.

I did not start mining because I saw it as a scheme to get rich. I know that savvy investors, those with specialized mining hardware and hackers who got involved when mining was still cheap and easy, like my buddy Mike, have beat me to it.

I started mining because the term ‘decentralized pseudo-anonymous cryptocurrency’ is packed with buzzwords that resonate with extra clang to a recent mathematics graduate. Mining was a way to join and contribute to a network that I find fascinating, the way an economics nerd might invest on the side for fun.


A bitcoin is not tangible like a dollar, but I can still own a bitcoin; I can spend bitcoins because there are vendors that will accept bitcoins as payment and I can trade my bitcoins for Dollars, the same way that I can trade Euros for Dollars at a currency exchange.

Thankfully, I do not need to spend full bitcoins at a time - it’s not often that I buy goods or services between $500 and $900, which is what each bitcoin is currently trading at. In the same way a Dollar is divided into 100 cents, a bitcoin (1BTC) can be divided into decibitcoins (1 dBTC = 0.1 BTC), centibitcoins, millibitcoins, among other units. The smallest unit is called a “satoshi” (1 “satoshi” = 0.00000001 BTC), named after the pseudonym masking the group of mathematicians who created Bitcoin.

Owning a bitcoin:

All bitcoin transactions are permanently recorded in a public ledger. Owning a quantity of bitcoin is essentially a mark in the public ledger that a given amount of bitcoin is allocated to me. This is analogous to how your bank statement recognizes that a certain portion of your bank’s deposits belong to you; except for instead of just seeing your own deposits, withdrawals, and balance, you suddenly have access to the sum total of everyone’s transaction data, globally and in real time.

Spending Bitcoin:

To possess bitcoin I need an address. This address is just a string of letters and digits, like 31uEbMgunupShBVTewXjtqbBv5MndwfXhb, which serve as an identifier. The bitcoins allocated to me (or to that address) are known to be mine, because when bitcoins were transferred to my bitcoin address, that transaction was recorded in the public ledger.

It does not matter that my bitcoin are intangible because the public ledger contains all the necessary proof for which address owns how many bitcoins. If I ever try to spend more bitcoins from a given address than are owned by that address, my peers in the network will notice the inconsistency. Each participant in the network must come to consensus on the validity of a transaction, analogous to how a bank clears a credit card transaction. If I spend more bitcoin than I have, instead of verifying the transaction and broadcasting it to the rest of the network, my peers in the network will see in the ledger that the transaction is invalid. In this way double spending and fraud is prevented.


Say Alice has bitcoin address AAAAAAAAA, and Bob has bitcoin address BBBBBBBBB, and Alice wants to pay Bob 0.5 bitcoin for the new product that Bob promises to send her. How do Alice and Bob logistically make their transaction?

Alice and Bob need wallets. A bitcoin wallet is software that handles transactions and manages bitcoin addresses. Alice’s wallet might be an android app, or an application she downloaded onto to her computer, or it might be web based. The wallet handles notifying the bitcoin network that Alice is transferring funds from AAAAAAAAA to Bob’s BBBBBBBBB address. Bob’s wallet sees the transaction recorded in the public ledger and updates so that Bob can see that he has more bitcoin in his wallet. After the transaction, the entire bitcoin network can see that address AAAAAAAAA is 0.5 bitcoin poorer and address BBBBBBBBB is 0.5 bitcoin richer.

Alice never even needed to know who Bob was - bitcoin is pseudo-anonymous. Alice only needed to know that someone with the address BBBBBBBBB had a commodity that she wanted to buy. The transaction occurred between addresses, not people. The real Bob might even have tens of bitcoin addresses. Say Bob also has addresses CCCC, DDDD, and EEEE. Alice might have paid bitcoin to all of them at some time and never even realized that she was paying the same person, Bob.
Although every transaction that has ever occurred involving bitcoin is public, tracing these transactions between addresses back to people involves the difficult task of tracing addresses back to people. Creating a brand new address for each transaction is recommended to maintain anonymity.

You might be wondering what prevents theft. For example, if Alice can see in the public ledger that address ZZZZ owns 5 bitcoin, why can’t Alice pretend to be the owner of address ZZZZ and write a fake transaction message to convince the Bitcoin network that address ZZZZ is sending 5 bitcoin to her address AAAAAAAAA? This is where cryptography comes in.
Each bitcoin address has an associated public and private key pair. Although everyone’s public key and address are known, only the address owner knows their private key. The private key is used to sign the transaction. In other words, Alice cannot fake a transaction from the ZZZZ address because she is not able to properly sign the transaction without the private key belonging to ZZZZ. Similar technology is used to secure network connections every time your browser visits a website where the url address begins with ‘https’ rather than ‘http’.

Popular in the Community

Close

What's Hot