Blockchain in Five Minutes

Application Security | Test Automation
Search for a command to run...

Application Security | Test Automation
No comments yet. Be the first to comment.
I recently participated in a virtual Live Hacking event organized by bugbountyhunter.com. This was my first ever Hackevent and I learned a lot of new things and made a bunch of new friends. I thought I'd share some of my findings and learnings from t...
While testing for bugs on a Vulnerability Disclosure Program, I recently came across a subdomain of the program having an application running on Spring Boot. The application had exposed Spring Boot Actuator endpoints in production, which could lead t...

I had to cancel my Diwali vacation plan for some reason. Now, I had 10 days off work not knowing what to do. So, I decided to jump on Hackerone and practice some hacking to make good use of this time. Luckily, I managed to find six bugs in the first ...

Password Reset is one of the most common features in web applications. Every website that requires you to make an account also implements a way to reset your password. And while it is one of the most commonly implemented functions, it is also one of ...

Yesterday, I came across an interesting tweet from Simone(@evilsocket on Twitter). In the tweet, he put a link to goᴏgle.com which on clicking, redirects to his Twitter account. Try it, click on the link in this tweet and see where you land up at....

Hello World!
I’m sure you’ve stumbled upon this word called ‘Blockchain’ in the last few years. Today, if you use the words “Blockchain based” as a prefix to whatever you’re selling, you’re guaranteed to make 2x sales. The hype is real.
Anyway, we’re running out of time, I’ve only got five minutes to explain this. So let's start.
A Blockchain is a continuously growing list of records called blocks, which are linked and secured using cryptography. Sounds too Wikipedia-ish, I know. Let’s break it down.
First, let’s understand what a block is.

Block is the fundamental unit or the smallest indivisible part of a Blockchain. The image above shows what a block looks like. A block has many fields, but for the purpose of this post, we will consider only its three main fields viz. Data, Previous Hash and Hash.
The Data field of the block contains the information you want to store in your blockchain. Could be a vote in a blockchain based voting application, or a birth certificate in a blockchain based certificate registration application. In case of Bitcoin, the block stores Bitcoin transactions in its data field.
We’ll come back to the Previous Hash field later.
Next, we have the Hash field. The hash field contains the hash of the block.
A hash is a unique fingerprint of a piece of information. Hashes look different depending on the hashing algorithm, but usually, it is an alphanumeric string that looks like this: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

You give the hashing algorithm some input, and get the hash(fingerprint) in return as output. The goal is to find to a unique signature of all the information input to the algorithm. You can find a hash of a string, a pdf file or even an entire Operating System! Play around with this site to understand how different hashes are generated for different inputs.
In our case, we give the hashing algorithm the data field and the previous hash field as input, and get the (current block’s) hash as output. Check the image below for reference. This hash value of a block is very important. Because in future, if someone tries to change even one bit of information in any of the past blocks, the entire hash computed for those blocks changes.

The hash of a block serves two purposes. One, it is the signature or fingerprint of that block. Second, it serves as the previous hash field in the next block. The previous hash field that is used to produce the hash of the current block comes from the previous block. (I know it sounds confusing at first, but read it a couple more times with the above picture in mind and you'll get it)
If some hacker tries to change or modify the information in the data field of a block, it changes the hash of that block completely. And consequently, it changes the previous hash field of the next block and so on. The blockchain realizes something is wrong as all the hashes are computing to be different. This raises an alarm and the network reverts back to its original unmodified state, making the blockchain an immutable ledger.
This ‘unhackable’, or as I like to call it, ‘difficult to hack’ nature of blockchain will be much easier to understand when we discover the Distributed Peer-To-Peer network of blockchains. But that’s a topic for another day.
In conclusion, a Blockchain is just a growing list of records called blocks, that are chained or linked to each other using cryptographic hashes.
That is it for my five minute explanation of Blockchain. Hope you found it helpful!
Feel free to reach out on Twitter(@ar6aaz) or Instagram(@theblockchainblog)
Until next time.