The Multi-Million dollar pizza
It’s May 21st 2010, Laszlo Hanyecz a developer and enthusiastic Bitcoin miner is sitting at his desk and getting a little hungry. He’s been mining Bitcoin and making thousands of them in a day along with some of his peers. He has very little concept of the consequences of his next whim but indulges it anyway. He posts an offer of 10,000XBT to the Bitcoin community for a couple of pizzas.
It wasn’t long before he finds his wish facilitated. What was to become the world’s most valuable pizza was delivered to his front door by what must’ve been a clueless young speckled delivery boy. I’m sure it was delicious.
Since then the date has become infamous in Bitcoin circles and is widely regarded as the day on which the very first Bitcoin transaction took place. In retrospect it was a fundamental milestone in the progression of what has become the greatest wealth generation tool of the 21st century. On that fateful day 10,000XBT was worth roughly $45. As of today, that pizza is worth over $11M.
The very first listed exchange rate of Bitcoin in 2009 was $1=1309.03BTC. This means that as of today, with one Bitcoin costing over of $1100, its value has appreciated some 145,000,000%. This is a powerful statement the magnitude of which might seem impossible at first glance. There are several factor’s involved in the growth of Bitcoin since its inception and to make any sort of projections or speculations a sound grasp of these factors is essential. The focus of this chapter is to illuminate the reasons behind the explosive growth of Bitcoin and how they might affect the value of the currency in the future.
The easiest of these to understand, and that which we will cover first, are the inherent concepts within Bitcoin as a currency. These are the fundamental mechanisms that have allowed Bitcoin to function not only as an unhindered means of exchange but also as a lucrative commodity. The other set of factors are anthropological factors that by their nature affect the day to day behaviour of Bitcoin and the shape of its curves. These are by far the most complicated to understand and utilize and can be very unpredictable at times but these are the factors that all speculators base their decisions upon.
The Bitcoin Network
The Original Concept
The roots of Bitcoin stem from as early as 1970s when the RSA algorithm first became commercially available and the ingenious invention of ‘Public Private Key Crytography’, methods still employed today in everything from PGP email to the Bitcoin network protocol . It was the practical expression of the ideologies by which a movement known as Cypherpunk had aligned themselves. Their ultimate goal was a liberated cyberspace with personal privacy as their absolute first priority. The movement and its ideals have persisted over the decades with massive influence over internet trends. However, it wasn’t until the late 90s that the idea of distributed crypto-currencies that eliminate the need for central authorities was first mentioned by Wei Dai on the Cypherpunks mailing list. Bitcoin has become the first successfully implemented version of the concept but it’s important to know that it didn’t happen in a vacuum and that there have been several attempts at creating digital cash  before but all have failed up to now. Bitcoin has been a long time coming and through the combined genius of a long line of cyber-pioneers we have finally arrived at a point where the some of the original ideologies of Cypherpunk are being applied to mainstream cyberspace.
In 2009 an unidentified entity known only as Satoshi Nakamoto released a paper  within which a new electronic payment system was proposed to resolve the issues involved in the current trust based payment systems of the world. Payments systems that are controlled and mediated by central institutions. The paper highlights the fact that within trust-based systems there are inherent problems, the first of which is the fact that completely irreversible payments are not possible since the trusted third parties can’t avoid acting as mediators. The cost of mediation results in increased transaction costs which limits the minimum practical transaction size and eliminates the possibility of small casual transactions online. Before Bitcoin these casual transactions were only possible as cash transactions which are of course geographically limited. The possibility of reversal means that the need for trust increases and we find ourselves in a situation where merchants and financial institutions require far more information from their customers than they would otherwise have needed.
In the paper Satoshi Nakamoto proposed:
“What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes.”
Thus, a working prototype of digital currency was born and has since become a multi-billion dollar economy. In the short time that Bitcoin has existed, it has proven that the concepts work and has already started to flourish as a result.
How it Works
Essentially Bitcoins are just numerical values assigned to digital addresses known as wallets. Each wallet is connected to every other wallet using peer-to-peer technology and collectively they constitute the entire Bitcoin network. The entire network then collectively monitors and maintains a shared public ledger known as the blockchain thus eliminating the need for a centralized ledger. Each wallet necessarily contains a copy of the blockchain for this purpose and is easily accessible making Bitcoin an absolutely public and transparent system.
New transactions are broadcast to every node and then concretized into the blockchain through a proof of work process. The work required to complete the next block in the blockchain is done by cryptographic hashing and requires real resources namely, processing power and electricity. This ensures that no Bitcoin can be double spent as it is always the block that has required the most amount of work to complete that gets accepted by network into the blockchain. This process is known as mining and can be done by any and every node in the Network. Thus, If an attacker wished to fraudulently double spend a Bitcoin he would have to do more work than what has been done by the entire network, producing an alternative block which contains the fraudulent transaction, for it to be accepted into the blockchain instead of the legitimate one. Today, with the strength of the Bitcoin network almost insurmountable as far as combined processing power is concerned, it has become very close to impossible for any cooperating group of attackers to achieve this.
The amount of processing power that is required to complete one block is adjusted at set intervals. This is known as the ‘hashing difficulty’ and it ensures that new blocks are created roughly every ten minutes as the collective processing power of the mining nodes increases. Once a transaction has been completed and entered into the block and the block is accepted by the network it becomes locked in time and a permanent feature of the blockchain as consecutive blocks are mined and added to it, making that transaction completely irreversible.
A wallet address functions much in the same way as an email address does in that just as you can send a message to a digital mail address you can send digital cash to wallet address. A user can generate an infinite number of addresses that are linked to a single wallet and it is recommended, for increased security, that you use a new address for every new transaction although you can use the same address for multiple transactions.
A typical wallet address looks like this: 1EdExjNdsendzpGp9ndxrgZYTxRTjXUkf. They are case sensitive and exact. It is thus advisable to always use your computer’s clipboard to copy and paste addresses. Incorrectly entered addresses would have a 1 in 232 chance of being accepted as correct which is roughly 1 in 4.29 billion. A wallet address has several characters that are used as a checksum so that typographical errors can be found and rejected automatically.
Wallet addresses are generated within the wallet itself and can be done so offline. It is possible for two wallets to independently generate the same wallet address which causes something known as a collision. In a collision both the intended recipient and the collider could spend the sum of Bitcoins that were transferred but they could not access other funds available in each other’s wallets. If you were to intentionally try to create a collision it would currently take 2^107 times longer to generate this than to mine a block. It would thus likely always be more profitable to collect generations and transaction fees than to try create collisions.
A wallet address is a hash of the public portion of a public/private key pair. Each time you generate an address the accompanying private portion of the key is stored in the wallets data file. The private key is used to validate the authenticity of the transaction and is subsequently required to spend the funds that were received to that address. If the private portion of the key is lost the Bitcoins associated with it are effectively lost forever. To insure that this never happens it is advisable to back up your wallet’s data file as often as possible, even better would be to do so after every transaction since any transaction completed after your wallet’s latest backup would also be lost if the if the wallet were to be destroyed or the data file corrupted for whatever reason.
The interesting thing about Bitcoins is that they don’t actually exist anywhere. There is no such thing as an actual Bitcoin that exists physically or on a harddrive somewhere, instead there are only transaction records with increasing or decreasing value. The blockchain is simply a string of all the transactions that have ever taken place from which the balance in every wallet is calculated. To create this cohesive record every Bitcoin transaction must contain three pieces of information which are: where the original Bitcoins came from, the input; the amount; and where they were sent, the output.
This means that the value of Bitcoins represented in a particular wallet is just a collection of transactions, and they remain there as such and do not get combined or divided. A transaction can contain multiple inputs combing smaller amounts or a single one that is larger than or equal to the transaction amount. It can only contain a maximum of two outputs, one for the receiver and one for the sender to receive change if there is any.
To make this clearer I will use an example. Let’s say Jack wants to pay Sara 4.5 btc. He has previously received three transactions of 4,2 and 3 btc respectively. To pay Sara he would have to send a combination of the 4 and 2 btc transactions as a 6 btc transaction and receive 1.5 btc from Sara in change.
Because of the need for a trusted third party in the traditional banking systems of the world there is the inherent need to know who you are dealing with. So privacy, as is achieved by traditional Banking institutions, involves limiting access to information to the parties involved as well as to the third party. The structure of Bitcoin, as we’ve discussed, necessitates that all transactions are broadcast to the public so privacy is achieved by disassociating identities from transactions. This means that the public can see that a transaction has been made as well as its value but they cannot see to whom the wallet belongs. This is similar to level of information that stock exchanges release. They release only the time and size of the individual trades, the ‘tape’, to the public but do not release who the involved parties were.
Below is a diagram from the original paper on Bitcoin by Satoshi Nakamoto that illustrates the difference between traditional privacy models and Bitcoin’s model.
To further increase privacy it is recommended to use a new address for every new transaction so as to prevent multiple transactions from being linked to a common owner. In some cases linking would be unavoidable as in multi-input transactions that necessarily reveal that their inputs were all owned by the same owner. This means that the only risk to privacy is revealing the owner of the wallet address and by linking other transaction associated with the address could be revealed.
Issuance and the limited supply of Bitcoin
As we mentioned earlier Bitcoin is built upon the concept of a single public ledger and its security stems from mining, i.e. processing transactions into the public ledger, the blockchain. The issuance of Bitcoins comes from this process hence the term ‘mining’. Blocks are designed to be processed roughly every ten minutes and with each successfully processed and accepted block that is mined the miner is rewarded by the network for his work with a specific amount of Bitcoins.
The amount of Bitcoins generated for mining a block is set to decrease regularly by 50% every 210000 blocks which equates roughly to four years. In 2009, when Bitcoin was launched, 50btc were generated with every block mined. This has since been reduced to 25btc per block in 2013 and will follow along this fixed curve until the last fraction of a Bitcoin is generated in the year 2140.
Below is a graph from en.bitcoin.it  that shows total Bitcoins over time.
The end result of this system is that a limited amount (21,000,000) Bitcoins will ever be in circulation.
In this way Bitcoin is something never before seen by civilisation. Fiat currencies of today, by definition of being ‘fiat’, are not backed by anything physically limited nor do they have rigid mathematical systems that determine the issuance of the currency. Fiat currencies are issued by a centralized authority that do so when and how they see fit and they do so out of thin air. Bitcoin offers us a determined and limited flow of currency into the economy which has two particular benefits:
- It eliminates the need for a centralized authority as Bitcoins are produced by the Network itself for the maintenance of the network at large, provided that the incentive to do so is also maintained. This brings us to the second benefit.
- As a limited commodity the value of Bitcoin will perpetually increase provided that Bitcoin remains a successful means of exchanging value. This is known as deflation and is the primary reason for Bitcoin being the most effective wealth generating tool in modern time.
Setting yourself up for profit
To effectively utilize Bitcoin to generate wealth you will want to create a secure and reliable personal infrastructure that will facilitate and protect all your transactions and your Bitcoins respectively.
‘My Wallet’ on Blockchain.info is the most advanced Bitcoin client (user interface) available today and is our absolute first choice. It is free, it is online and it offers fantastic support as well as a variety of security measures and most importantly you still maintain full control and privacy of your wallet. Blockchain.info cannot monitor your wallet or make transactions on your behalf nor can they confiscate it even if they wanted to.
Blockchain.info offers various forms of two-factor authentication (2FA) including sms, Google authenticator and Yubikey. 2FA is pretty self-explanatory in that it requires two factors of security to log into your account, it’s a very important part of securing your wallet and is highly recommended. The best option is to use a Yubikey.
Yubikey is a small usb device that provides the second factor in 2FA. A Yubikey enabled account requires both your password and a Yubikey to log into your account. It’s strength lies in the fact that it combines something you know, your password, with something you have which means even if your password is compromised and your Yubikey has not been stolen your wallet will still be secure.
Yubikey’s are available for purchase from yubico.com for 25USD or from yubikey.mtgox.com
Blockchain.info is available on almost all operating systems and has various other benefits one of which being that because of its APIs, there’s no need to download the blockchain to your computer which will currently save you 11gb and the time it takes to download it. For a full list of benefits visit blockchain.info/wallet/features
Using the Bitcoin Client
This is where the excitement begins! Once you have your client installed and downloaded the blockchain, or have accessed ‘My Wallet’ on blockchain.info, you can start receiving and sending Bitcoins immediately.
To receive your first Bitcoins simply click on ‘receive’ in your client and a new address will be generated. This is, as you’ll remember, the public portion of your wallet address and the part that you will need to give out to any party from whom you wish to be receive Bitcoins. You will be given the option of creating a label for that particular address which will be important to help you keep track of your transactions. However, remember that it is always advisable to generate a new address for every new transaction.
Sending Bitcoins is just as easy, simply click on ‘send’ and your client will prompt you for an address. This address, as you’ve probably guessed, is the address which you would’ve received from the receiving party to whom you’d like to send some Bitcoins.
Remember that new transactions are compiled into blocks which are processed every ten minutes or so. This means that as soon as you complete a transaction it will be reflected in your client immediately but will normally stay ‘unconfirmed’ until the current block has been mined and accepted into the Blockchain. Thus, you will sometimes have to wait a few minutes, 10 at most, for the transaction to confirm.
Securing your wallet
Bitcoin has no over-seeing authority which means that you are absolutely responsible for the security of your funds. If you lose them, they’re gone forever and if they get stolen the chances are slim to none that they will ever be recovered so the onus and responsibility of securing your wallet lies with you alone. It is important to understand that there will always be people who will try to fraudulently acquire money and Bitcoiners are no exception. There have already been hundreds of reported cases of Bitcoin theft as well as other forms fraud within the Bitcoin network.
As we’ve discussed, cryptographically speaking, your wallet is just your private key. The implication that this has, is that if ever your wallet.dat were to be stolen, the attacker would not only be able to spend the Bitcoins in your wallet but would also be able to access all Bitcoins that are deposited after your wallet.dat file has been stolen. It is therefore imperative that you make it absolutely impossible for anyone to ever steel your wallet.
In practice this would mean locking away your wallet far from the internet and idle hands. This however would be impractical for the day-to-day use of Bitcoin. Therefore a good strategy would be use multiple wallets for different purposes. Since it is not easy to completely secure a wallet that is often utilized online it is good practice to have a wallet for your daily purposes that contains only a limited amount of Bitcoins. This is to minimize your losses should you fall victim to a successful attack. Define a maximum amount and be disciplined about sticking to it. If your wallet is ever compromised then transfer your Bitcoins, if you have any left, to another wallet and discard the compromised one.
A savings wallet could be made completely secure by locking it away but you would still be able to transfer your hard-earned coins to it, effectively creating a secret stash that you could access one rainy day. Locking it away implies maximum security which is a step-by-step process and is outlined below.
- Minimum Security (‘spendings’ wallet)
For a wallet that you use to make small transactions on a day to day basis you wouldn’t need much more than 2-Factor Authentication or ideally Multi-factor Authentication. You would still want to back up your wallet frequently to protect yourself from loss other than physical attack.
- Maximum Security (‘Savings’ Wallet)
To set up a 100% secure savings wallet you will need to make an isolated wallet that exists exclusively in a completely external location. Below is a step-by-step guide.
- Create a LiveCD or a bootable USB drive with your choice of operating system on it. We recommend you use the Ubuntu LiveCD. The reason you would want to use a live-CD environment is to make absolutely sure that your running OS does not secretly save your files somewhere or log your keys in any way.
- Boot your liveCD OS and install your Bitcoin client. You can also install some encryption software like TrueCrypt or GNU Privacy guard.
- Your new wallet will automatically generate 10 new addresses and along with it the corresponding wallet.dat file. Remember you can generate as many addresses as you want to and it’s good to have a store of these.
- Save these addresses somewhere or email them to yourself for future deposits into your savings wallet. Since these are your public keys you don’t have to worry about securing these, just don’t lose them or you’ll have to go dig up your wallet wherever you’ve buried it to generate new addresses.
- Copy your wallet.dat file onto an external source, a cd perhaps or a little SD card or flash drive of sorts. Encrypting it is optional here. Making a few copies in different locations can be a good idea as long as you manage them properly.
- Now take your cd or usb and store it somewhere safe. If you encrypted it in the previous step and you feel comfortable about it you can leave one copy lying around the house for easier access. However, it is important to store one copy of it somewhere where it is completely safe from harm. In a safe or even better would be a bank safety deposit box so that it isn’t destroyed should your house burn down or someone steals your safe.
- Shut down your computer. There will be no trace of it anywhere on your harddrive since it was installed in a liveCD environment and never actually resided on your harddrive.
- Now you can make day-to-day transactions with your ‘spendings’ wallet and deposit Bitcoins into your savings wallet whenever you need to using the wallet addresses that you saved from step no. 4.
- Paper wallets
Paper wallets are another way of storing Bitcoins offline and in a physical location. If done properly they are considered to be one of the safest forms of ‘cold storage’. They are physically printed and your private key literally is just ink on paper. There are a few paper wallet services available but the we recommend the use of Bitaddress.org.
Because paper wallets are completely isolated from cyberspace they are advantageous because they protect you from malware and keyloggers. It also means that you will maintain 100% ownership of your wallet i.e. you own the Bitcoins and not the service of a third party and are not dependent on the security of any given website. Paper is much easier to keep safe than securing your computer but remember that everything you need to access the coins is on that piece of paper so if you lose it you lose all the coins on it.
There are a few important things to understand to ensure that you utilize paper wallets securely because if it were to be compromised an attacker would be able to steal both the current as well as future balance in your paper wallet.
The safest way to properly use a paper wallet is to create it completely offline using a live CD environment as with the “Maximum Security” process outlined above. So instead of saving your wallet.dat file in a digital format (step 6) you now create a paper wallet instead and put that into a safety deposit box.
Paper wallets, like all wallet addresses, have two parts, your public key and your private key. You can deposit money into the paper wallet by using the public key and transfer funds from it using the private key. However, when you transfer Bitcoins out of a paper wallet you must sweep the entire wallet and never use it again. If you were to only transfer a percentage of the Bitcoins in your paper wallet you would lose the remainder of your coins due to the way that change works. New addresses are generated for the change transaction and they are not linked to the paper wallet so the returning coins would be lost. So, when you want to withdraw or spend the Bitcoins in your paper wallet you must perform a ‘sweep’ meaning that you must empty it entirely. Once the private key has been used to sweep the wallet it no longer just exists on paper and thus renders the paper wallet obsolete.
Below is a full list of recommendations to safely use a paper wallet:
- Generate paper wallets on a computer not connected to the internet
- Malware and keyloggers often allow a remote party to see you screen and monitor your inputs. This could easily compromise your paper wallet and anti-virus software can’t completely rule out the possibility of infection. Generating a paper wallet using a bootable CD will completely mitigate this risk.
- The only time the private key on your paper wallet should ever be scanned, saved or emailed is at the moment you sweep the wallet.
- Hide the private key of your paper wallet by folding it closed because a photo or a scan could reveal it.
- Whatever website you use to generate your paper wallet should do so on the user side. To test this, open the page and generate a wallet. Then disconnect your computer from the internet and try to generate another wallet. If it still works then the generator is functioning on your side and is secure. Bitaddress.org is such a site.
- Use a ‘dumb’ printer that does not store copies of the print log of an internal drive and do not allow your printer access to the internet.
Using a Secure environment
Well if you haven’t gathered already that security is of the utmost importance when it comes to Bitcoin then perhaps it’s best you start cutting your loses. Linux here is Champion, there are many reasons for that but we’re only going to focus on the single concept that permeates all, the most important and profound, Linux is Open Source.
Open Source is a beautiful little concept that embodies honesty, openness and rationality. Bitcoin stems from the same school of thought and what it means is that there’s no Microsoft or Apple at the centre of it all, no centralized entities that make all the decisions, all of which are driven by the desires of a handful of individuals. The fundamental difference here is that the developers of commercial software profit from its sale, whereas with open source software, the developers profit from how effective it is, and there are so many more of them. Open source means that the development of software is decentralized. Everyone and anyone, around the world, can download the code and have a look at it. They can improve the code if needs be, they can specialize the code for singular purposes; they can find and rectify flaws easier and quicker than Microsoft can. Commercial software simply doesn’t have the man power that the open source community has.
Linux has a much smaller market share than either Microsoft or Apple which makes it a much smaller target. Attackers strive to do the most amount of damage they can which has resulted in the fact that viruses are almost unheard of on a Linux platform and the average time it takes for a new windows computer to get infected once it’s been connected to the internet is 40 minutes.
What does this mean for Bitcoin? With regards to security, it simply means that you are far less likely to be attacked running Linux than Windows. It also means that if a flaw or hole is found in your software that could potential compromise you, the turn-around time to fixing the problem on Linux is far quicker, so you’re much less likely to be affected by it.
Note: When it comes to productivity machines running a Linux operating system are far more effective than Windows because the software is far less cumbersome. Because Linux is Open Source it means that the code is malleable and there are companies that create specialized versions of it. This is true for Bitcoin mining operations so if you wanted to mine you would not only have more CPU power at your disposal but your operating system itself could facilitate better performance.
Profiting From Bitcoin
Buying and holding Bitcoin as a strategy to profit from Bitcoin