What is Blockchain Part 1.
Blockchain is a database technology and use of network that is a bit different than we used to do. It is another way of storing, updating and moving data across networks. And as a result we can develop another kinds of apps (dApps). What is so different is that it is decentralized, meaning that there is no server. For example; the webpage you see here is hosted on a server. Not that the webhosting provider would make some changes to the webpage, it has all control. In a decentralized network there is no such a server. Instead everyone connected to the blockchain has a copy of the database.
The flaws of a traditional database
A traditional database is owned by an organisation or authority who can delete, add, refuse, lock and alter data. We have to trust this organisation or authority for that. This could be ok if you are using such database for your website, personal data, your community etc. For many other applications this is not desirable. For example: banking, voting and storing data. Imagine a voting machine that is not owned by an authority. Instead of that everyone has a copy of all the votes. A set of rules (protocol) decides if a vote is valid. So far, for voting we used traditional databases and one of the biggest flaw is that an authority could corrupt the database. Corrupting a database in a blockchain is not possible since there are many copies of the database.
The current flaws of blockchain
The blockchain technology is developing further and a work in progress. Some current flaws are: transaction speed, verification, data management, and there are still security and privacy challenges. Other challenges are: integration with other system and therefore we need some standards so that different system can communicate. There are already many variations of the blockchain that Bitcoin is using developed. Some of then focus on privacy, security, and others on speed, real world application, etc.
What is a private and public key
When storing data we want to keep our data safe. How does that work on a blockchain where all data is shared? It works by encryption. Particular data can only be encrypted with a public key and a private key. How encryption works is a long story. Some keywords: hash, hashing, cryptography and PKI. You can see the public key as the address of a mailbox, and the private key to open the mailbox. Everyone can see our address but only you, if you keep the private key safe, can see what is inside the mailbox. Both keys are stored in a so called wallet which can be local on your computer, an online wallet a ledger, a paper wallet, etc.
How duplicate transactions are prevented
Duplicate transactions are prevented by making use of Nonces. That is a number used once and it is put to a identifier. This way we are sure there are only unique identifiers. We could use a timestamp combined with some other data as Nonce.
What is Hashing?
Hashing is a mathematical process that takes any kind of data, performs an operation on it which give a fixed size of data. The word "Hello" or a whole chapter of a book would give the same length of data. This is a one-way operation. You cannot find out what the original data was with this fixed-length piece of data that came out of the hashing algoritm. A use of this is to keep a database small. The output, the fixed length, is associated with the original content.
What is mining?
Mining in traditional context requires a significant amount of resources. In the cryptoworld this is not very different. That's probably why a cryptocurrency has real value like gold which is quite hard to mine. Mining in cryptocurrency means that a computer that mines has to solve some math which is quite hard works. It's costs electricity and you have to use top graphic cards or Asics for that. An asic is specialized hardware that does just 1 job and that is mining for a particular coin. In cryptocurrency mining is using nonces, hashes, idientifiers in it's calculations. It ensures that a blockchain is safe.