Un-Geeking Bitcoin, Ethereum and CryptoCurrency: Part 1
This is the first post of a series of articles aimed to introduce Ethereum development through Solidity. However, before we dive into the details, it's important to understand the background of the technology, especially when we're talking about Ethereum. In this introductory article I want to introduce the basic notion that it’s important to understand where and how this technology can (or cannot) be used. The next article will introduce tools needed to set the development environment, and the third article will be a sample system we will build from start to finish. The last article will introduce advanced concepts in writing solidity contracts such as security.
Introduction
The terms bitcoin and crypto-currency seems to be everywhere these days. Seminars, articles, news bulletins all seem to contain references to them but why is it so hard to understand what they mean? Surely a successful new technology cannot be this complicated. The reason is simple. These terms combine two worlds that are daunting on its own: the world of finance and the world of software. But at its core, this technology is not complicated at all and through this article, I hope you will have a better understanding of what it is, what it’s not, together with a better knowledge of how to harness its potential. As the title implies, this article is not meant for geeks and uses zero geek terms so let’s start.
Blockchain Explained
Imagine you are sitting at a cafeteria and order a coffee. After you finish it, the waiter comes with the bill, you settle it and leave. That is a normal transaction, goods were exchanged for money and every party knows what he or she is getting. Simple enough — but let’s consider digital assets now. Imagine you own a digital image of a coffee, something you did on your computer for example. You might not know who the other party in the transaction is, realistically you might not even ever see his or her face. How do you know that he or she will not copy your image and re-sell it at a higher price?
The solution to these issue is to keep a public ledger. A ledger is basically a list of all the transactions that have been carried out with details of these transactions. That way, it is easy to know who owns the assets, who transferred them, and for how much. Some very famous computer games such as World of Warcraft keep a ledger of rare swords used in the game; that way, they can always verify when someone says that he is the owner of one. If I buy a rare item in the game, which mind you can be very expensive, Blizzard (the creators of World of Warcraft) will confirm that the transaction and digital goods are genuine. This public ledger is called Blockchain.
The issue here is that for every transaction, we need a third person to verify the transaction and that takes time and they need to get paid for that service. So why not give everyone a copy of this ledger and make it public? These ledgers will also synchronise between each other and if they do not agree, a system of verification with other computers will be executed. That way, if someone wants to cheat, he needs to hack 51% of all the computers at once. This is a very daunting task to accomplish. Remember, they need to be hacked all at once because if only a few computers are hacked at the same timem the system will ‘clean’ it by instantly validating those computers with the rest. It’s easy to know who is lying when 99% of the computers say ‘A’ and 1% say ‘B’.
What this technology produce is a self-controlling decentralized system. All that means is that the system does not have one controlling entity who needs to be asked for every transaction — essentially everyone is in control. Furthermore, the rules of how to accept a new transaction, what makes it valid, and what not are agreed in the beginning, which makes the system self-controlling. All the computers, given the same input will produce the same output (add a new transaction or not). Simple no? That is Blockchain for you. As you can see it’s not that complicated at all. Because transactions are done in the digital world, normal money cannot be as flexible as we need. Thus, we created digital money called bitcoins. Bitcoins cannot be cloned, divisible, and are not easily transportable. In fact, you can send 0.00000001 BTC (Bitcoins) which is equivalent to 0.00000936 EUR (Euro) at the time of writing.
When you go to a bank with a cheque of another bank you need a few days, typically three, for that cheque to be cleared. That’s because the bank needs to contact the other bank and verify that the person has an account with them and has enough money to honor that cheque. With this system, this transaction will be instant because each bank will have a ledger of all the bank accounts and therefore verify instantly if that cheque can be honored or not.
Difference Between Bitcoin, Ethrium, Blockchain, and Crypto-Currency
What is the difference between Bitcoin, Etherium, Blockchain and crypto-currency? Crypto-currency was specifically designed for the exchange of digital information. As previously explained, blockchain is a public ledger of all transactions that have been executed. Bitcoin is an implementation of a crypto-currency, the first successful story of it. Etherium is the public blockchain (the ledger) and is used for execution of some software known as smart contracts. So, if you want an application that will verify if I am the owner of something, it must be written on blockchain. If a betting company wants to accept digital currencies for its services, it can implement Bitcoin.