Summary of Blockchain
Bitcoin isn’t Blockchain and Blockchain isn’t Bitcoin, that’s the quick answer. In short, Blockchain is the technology that make Bitcoin and the other virtual currencies (or cryptocurrencies) possible. Think of Blockchain as a base material, and this material can be used to create other type of products and even services; and Bitcoin, as one of the service that is made possible by it.
Blockchain removes the need for middleman, lowers the cost of transaction, increases the speed of transaction and enhances security greatly. Imagine buying a house without the need for banks, lawyers, nosy aunties and other parties. Just you and the house owner or the property developer. Just think how fast and easy things can be, but without the risk of being cheated because of total transparency.
Decentralized, transparent, secured and open is what makes Blockchain great.
How is this made possible? Then read the long story, this story may contain some slightly technical terms, but I’ll try to keep it as layman as possible.
Disclaimer, this article is NOT meant for the hardcore know-how, it’s intended for the mases of people who aren’t as tech-savvy as we are. If any of the details presented here is incorrect, do let me know in the comments with the source of the correct facts. Cheers!
In this article:
- To know Blockchain
- First, know what is Hashing
- Next, how a Block works with Hashes
- Blocks, chained together. Blockchain
- Distributed and Decentralized
- Who could use Blockchain
To know Blockchain… First, know what is Hashing.
Blockchain depends heavily on hashing to operate, it provides the necessary basis of security to the Blockchain technology. Hashing is basically taking an input, let’s say your password in this case is “hello”, and run it through a hash function that creates a long (up to 40 characters) string of garbled up text:
It doesn’t mean anything, just a bunch of alphanumeric characters. To illustrate how was the above hash result produced, refer below:
- User enters “hello”
- Computer takes “hello” and injects it into a hash function
- The hash function generates a 40-character of nonsense
- The generated hash result is “aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d” which is meaningless, but it acts as a unique identifier
If you were to change any of the characters in “hello”, to something like “hallo”, the resulting hash would change entirely. But if you change it back to “hello” again, the same identical hash result would appear.
|hello||Hash it ->||aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d|
And if we change the “e” to “a” in hello
|hallo||Hash it ->||fd4cef7a4e607f1fcc920ad6329a6df2df99a4e8|
Then change it back to the original hello again
|hello||Hash it ->||aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d|
Let’s try uppercase of Hello, maybe we’ll get lucky?
|Hello||Hash it ->||f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0|
So basically, you can consider hashing like putting a cow into a machine and getting a patty. If you placed a goat into the machine, you get a different patty. Can you turn either patties back into a cow or a goat? No, you can’t cuz it’s disgusting and impossible. Probably a cat with laser eyes will spawn and kill us all.
Likewise, for hash results, it is virtually impossible reverse a hash result back into its original value, a hash result doesn’t store any data of the original information. Hardcore technical guys would argue you could reverse it, but it’s just unfeasible due to the sheer amount of computing power required, not even all the computers and supercomputers combined can provide enough computational awesomeness to reverse a hash.
With that being said, this allows hash results to offer some level of security, but not necessarily as a way to store passwords as any hacker can simply use a dictionary-attack, to keep trying a library list of common words until they achieve the same hash value. Since “hello” would result in the same hash value every time.
Then what is hash all about? You could say that it’s a way to keep a piece of information secure by obscuring it and without the storing of the information within the hash. This is particularly important as Blockchain depends on this to keep the entire network secure.
So, a few things to remember about hashing:
- A hash is generated when a piece of data or information is run through a hash function, which is a complex set of mathematical operations
- An empty string, or basically even if you by typing nothing, can still provide a hash value
- The case of a value (Upper or lowercase) will generate different hash result
- The exact same value will always return the same hash result
- Nothing is stored in a hash result
- Hash results are always unique (I don’t wanna’ talk about collisions, ignore it!
Next, how a Block works with Hashes
We saw how hash can used as a unique identifier to validate whether a piece of information was identical or not, but we had been only using “hello” as the information. Can you actually hash something that contains way more information? Yes, you can.
For the sake of quicker grasp on how block works, let’s use a bank transaction as an example. When you make an online bank transfer, a transaction record is created and stored with the bank. The transaction record would contain information like transaction amount, destination of transfer, date, time and other relevant information. Essentially a block behaves like a transaction record as well, but it extends it by having two very important information, the information about past blocks and next blocks. We’ll explain more later in detail as to why there’s other blocks before and after a particular block.
A block by itself is always ‘present’ and it contains some amount of information about its ‘past’ and ‘future’. This is particularly important as this allows the block to verify not only its own authenticity and integrity, but also blocks before and after it.
A block identifies the past and future blocks through hashes. The ‘present’ block would also have its own hash, which is generated based on whatever information the block holds. To illustrate this, consider this a block, which is similar to a bank transaction record:
This is an over-simplification of a block
Each and every block will store a certain number of transaction data, and that data will be subjected to hash function we discussed earlier on. The benefits of hashing each block is that it prevents anyone from tampering any part of the transaction, as changing even one value in the transaction data would result in a completely different hash.
Let’s summarize what we heard about blocks:
- It’s like a record, contains some amount of data, not necessarily transaction data; could be anything
- A block will always have a hash result, acting as a unique identifier for the block
- A block contains hash results from previous and future blocks
- Changing any data in the block, the hash value changes
Blocks, chained together. Blockchain.
By now you should get hang of the idea of how hashes come into play in Blockchain, and what a block represents. You would also notice that we said something about blocks having a past and future, the reason for having a past and future is that, as we said each block contains a certain amount of transaction data, those transaction have to be completed (or in our analogy, processing the transaction); by ways of mining. As and when a block is completed, it is stored permanently in the chain, waiting for the next wave of transactions to be housed in the next block.
A Blockchain, each block stores the previous block’s hash result
With each block chained together with the hashes stored, there is no way to tamper any part of the data in either blocks. Changing a value would incidentally cause a chain reaction to the entire Blockchain, as the hashes would no longer tally, causing an error.
What this means in simpler terms, remember we said blocks are basically transaction records, or ledgers; that these ledgers are connected to each other. With each ledger assigned its own unique identification code that changes if the contents of the ledger were to be tempered. Each ledger also keeps a copy of the previous ledger’s identification code, allowing you to identify whether the previous ledger was ever tempered. When new transactions are completed, new ledgers are created and chained to the previous completed ledgers.
“But I can just simply change the hash value right? That would fix the problem!” Yeap, you may be right. Here’s where our next part of the article comes in.
Distributed and Decentralized.
Aside from having blocks chained together in a continuous linear progression, the strength of blockchain comes from distribution. To put this into clearer perspective, let’s take a look at how transactions are typically managed in banks today, in a simplified overview:
- You head to an ATM to make $100 withdrawal
- The ATM contacts the banks centralized server and database
- The ATM retrieves your records from this centralized server and database
- As money is prepared for you, the ATM makes transaction records to the centralized server and database
Notice how everything happens in just a single centralized ecosystem? Governed by a single entity, the bank? You trust the bank, to a certain extent. But do you trust human nature? What could possibly go wrong when you have a single, centralized and concentrated system?
- It becomes the best target for hackers
- The chance of internal malpractice, bank employees making unauthorized changes to your account
- 3rd parties govern what you can or cannot do, *cough…* BNM… *cough*
- Some disaster happens and wipes out the entire system, including backups
The distributed nature of Blockchain, prevents these possibilities from happening. We said that Blockchain chains each block together, acting like a ledger. But in our case, it is only a single copy of the ledger; which inadvertently allows possibility of tampering or destruction. But Blockchain doesn’t actually keep a single copy of the ledger, the ledger is distributed to everyone (the public ledger). There is no single place to store the ledger, everyone gets an identical copy. People or entities who keeps a copy of the ledger, are known as nodes. If somehow a hacker manages to tamper with one of the ledgers, he can never get it through the Blockchain network, because the rest of the nodes will always crosscheck with each other, and it would immediately know that a ledger is compromised.
Peer 2 is compromised, the Blockchain network removes the compromised node
What about transaction updates? That’s where ‘mining’ comes in. Mining is the process of adding transaction records to the public ledger of past transactions. The mining process is quite complex, but in simpler terms, a ‘miner’ from the node, will keep computational processes to complete the transaction (a block in this case). Completing the transaction also means verifying whether the hashes checks out or not. When it is completed, the new block is added into the blockchain, and this new ledger record is broadcasted to everyone else.
Who could use Blockchain?
Any industry that has transaction of some sort could benefit from Blockchain. The security benefits alone from Blockchain is a great testament at how powerful Blockchain can be, and there’s no doubt a Blockchain network can never be taken down.
The next video should give you an overview at just which industries could benefit from Blockchain.
And take a look at how education is also embracing Blockchain: Sony will use blockchain to beef up school cybersecurity
Imagine the possibilities with Blockchain. Have a question or something to say? Let us know in the comments section below and don’t forget to check out our list of IT training and certifications 🙂