Blockchains: Disrupting the conventional web

Back in my school days I was intrigued by HTML. How cool it was! It was as if the whole web was composed of html and nothing else, well, that was my assumption back then. The things that kept me puzzled were how could a simple HTML page be so intelligent that it could know what it should be, based on the navigation/user. I couldn't research much on it, perhaps due to the lack of internet I had, or the missing element of excitement that never let me explore the other side of the amazing architecture that basically controlled the whole web.
It was until college that I realized the power of dynamic pages. I became familiar to them in the second year of my engineering and man! that was huge! I was surprised at the way websites were actually functioning in my day to day life and every time I visited one, I'd become curious of the technical implementation behind it. One could say that I was totally mesmerized by the web architecture. The way a simple server could serve my requests, and the manner in which a single resource was used to serve the needs of a million people. I was all for centralized architecture in short.

That was until now. Now that I'm more concerned about user privacy than ever, I'm becoming less and less inclined towards a centralized architecture. That doesn't mean that I don't support the development of centralized applications. I do, rather I am a centralized developer myself and who knows, I may continue to be one for the years to come, but it's not something that's stopping me from openly supporting decentralized architecture. Some of you may know of it, some of you may not. I didn't know about it a year ago, I didn't know it was possible, but it is, and it's amazing!

The way a centralized application used to work was simple. You make a request to a server and it would respond back with a response. It may be one of the millions of server responsible for serving your request, but that architecture was distributed, yet centralized. I won't go deep into the technical details of the fact, but in a nutshell, it means that there was someone in charge of the server and that someone had the access to do whatever he/she wants to do with those servers. That doesn't mean that someone is playing with your data. No they aren't! I do have faith in most of the good players out there, but there exists a central point of loophole that someone might exploit. That's not good both for the users and the company. Of course there are highly effective shields and firewalls to protect all that, but we've seen breaches, nobody can deny that. Also, what makes you believe that a central authority in charge of the servers is always right? Why should a central authority be judging whether my actions are right or wrong (transactions for example) when there is a whole community that can determine the same. After all, democracy is something that can revolutionize technology as well.

That's the basic gist behind blockchain and the decentralized applications that are developed on its principles. Let's say you're making a transaction, for that to be valid, your bank or some authority has to determine if that is a valid transaction or not. Now what a decentralized application does is ask the millions of participants(miners) of the blockchain if the transaction was valid. If they prove that it was, you're good to go. As a result, your transaction gets verified and becomes a part of the blockchain. Woohoo! To fool the system, a miner will have to cheat more than half of the miners, in other words, he'd need to be better than 51% of the miners, which is highly impossible. That was a layman's overview of the working of blockchain of course. The technical details are deep, yet interesting. I'll cover them in some other post hopefully. Why would some miner be interested in validation of someone else's transaction you'd ask? Well, he/she gets paid/rewarded for the same, period. Now I've read somewhere that to be able to manipulate the blockchain, a miner will have to have the computing power equivalent to 500 of the top supercomputers that exist today. That's huge! That's so huge!

One may treat blockchain as a data structure. No doubt there have been multiple implementations based on the blockchain. Bitcoin is one, ethereum is another. Most of them that you've heard are probably some form of currency system, bitcoin for example. My personal favorite at the moment is ethereum. You don't need to create your blockchain to build your decentralized application. Ethereum provides it's own blockchain for developers to build their apps on. To add more to that they have their own execution environments, virtual machine, and programming language. There are well known applications that have been built on the Ethereum Blockchain. I'd love to try my hands on that.

I'm not a well versed decentralized application developer yet. I might have missed out on a lot of key aspects of the blockchains, that's for sure. I might even have been wrong somewhere or the other in the above text, but that's just a rough understanding that I have, I'm always open to being corrected and learning as I proceed. This is another phase where an implementation has captured my attention to a great extent. Who knows, a new era of web's knocking! ;)
Feel free to mention corrections/comments as you feel like.

Cheers!

Comments

Popular Posts