web3 does a lot more than you've been told
Tags: blockchain, web3, systems, security
Published: 2021-12-31 18:43:56

Look, I get it.

The past few years have been full of cryptocurrency scams, thinly veiled Ponzi schemes, widespread art fraud for NFTs, and all the other stuff that didn't make the news. Blockchains have been the underlying tech powering all of that, so you have no reason to be be lending any of your trust to them.

Yes, blockchains are overhyped, and yet they do a lot of good work that you haven't heard of. Just because there are people being stabbed with knives doesn't mean someone somewhere isn't doing a [masterful job cutting onions!](https://www.youtube.com/watch?v=dCGS067s0zo) (weird analogy but bear with me for a moment)

#### So where are all the onion masters?

All right, lets assume blockchains actually do some good stuff. Then why haven't I heard about them? Where is that big app that will make me believe in blockchains?

Unfortunately, the answer is not very simple.

No one is going to use something just because its built on blockchains. It has to be good enough to be the best option to choose at the time, never mind what tech is used to build it. Let me explain a bit why a blockchain could be needed.

I'll raise you a scenario -- You're happily (or begrudgingly) working along on that task that you need to finish by tonight. Maybe it is so boring and soul-crushing that you're starting to contemplate leaving your job. But that doesn't matter right now,  you're already 2 weeks late and you've run out of excuses. So your only option is to grind through, pull up some NPM packages and finally finish that damn thing.

But wait here's the fun part, **NPM is down**

![NPM is down](https://pbs.twimg.com/media/FGwZTczXwA4djk5?format=jpg&name=large)

But that wont stop you today! You know that package's Github repo. So you go there, download and store it in your `node_modules`. You hack along undeterred, convinced that you're going to finish it by tonight. Finally its done, reviewed and merged into the dev branch. But wait! Why's it not showing up on the site? The deploy seems to be failing. You google around, ask your team members who are going through their own personal hell, and then finally in your late night, coffee fueled frenzy open up twitter to check what the heck's going on.

{% twitter 1471148104057458691 %}

Great. AWS is down again. So you just sit there like...

![I'm so done](https://media.giphy.com/media/tJDAeuB5NMtNUx1Swx/giphy.gif)

If you look deeper than the surface level, these are problems that arise due to single points of failure. Its these problems that a decentralised network aims to fix. What's "decentralised"? well, it just means that no single entity is in control of the whole thing. If one node goes down, there's lots of other ones to keep it afloat. When you have your app hosted on a fairly large decentralised network (like ethereum), you essentially have a failsafe for the moment of a node failure. For when one node goes down, the app will just be moved to another node. 

Now you certainly don't need a blockchain for everything, especially if you have control of all the hardware on the network. But in blockchains when anyone can join the network from anywhere in the world, how do you know which node is a bad actor and which isn't. To put it differently, **who do you trust?**

![Mr. Robot GIF](https://media.giphy.com/media/xT8qBnutCq8NxHOn5K/giphy.gif)

Well, you cant trust anyone over the internet. So you simply take trust out of the equation, that's why you'll often hear the word "trustless" in the context of blockchains. What enables these trustless networks are "consensus algorithms". Simply put, they make sure all the nodes are doing what they're supposed to. They reward the nodes that do good and in a way punish those who don't.

### Now on to the onion masters.
Hopefully my rambling has made at least some sense to you and you see value in the existence of the blockchain. Now lets introduce you to some of the big (and small) names taking the industry forward:

![Ethereum homepage](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b5ibxpdcf9b0jnk73n3s.png)

#### Ethereum [(Website link)](https://ethereum.org)
Unlike Bitcoin, which was made to be a currency, Ethereum lets you write something called "Smart Contracts" which basically enable you to run your app on the blockchain. This way your app is up 24/7 and you wont have to deal with **us-east-1** going down yet again. Although, the main Ethereum network has become quite slow and has a very high transaction fees, there are Level 2 chains that are built on top of Ethereum and are faster and cheaper (but that's a topic for another day).


![Filecoin website](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4tke9m0uera0tans2gdl.png)
 

#### Filecoin [(Website link)](https://filecoin.io)
What if you have a lot of important files stored on Dropbox and it goes down just as you want to access one of them? Yes, we're back to that idea of the centralised service that can fail anytime. Filecoin is another blockchain that stores files on a decentralised network. Anyone who stores the files reliably on the network, is paid "Filecoin" (its the name of the organisation AND the cryptocurrency) and whenever someone wants to retrieve those files, they need to pay Filecoin. Think Dropbox, but where all the servers that store data are owned by unrelated individuals around the world who're paid to reliably store data. There's a very good introduction about Filecoin over at their website, I highly encourage you to check it out.
 
#### Fleek [(Website link)](https://fleek.co)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5il0tuzwl2eoivlqd5dp.png)

Remember how I told you your app can go offline anytime the centralised cloud you're hosting it on experiences an outage? Here's the alternative. Fleek is a "cloud provider" that lets you host apps on Ethereum and files on Filecoin to get rid of the single point of failure problem. It's as easy to use as any cloud provider [(probably easier)](https://www.reddit.com/r/aws/comments/h09wl5/dear_aws_stop_ruining_the_freaking_console_ui_rant/). This whole goes back to the concept of being the best tool to use irrespective of the underlying tech.

#### ThirdWeb [(Website link)](https://thirdweb.com)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wj5kbn61qy6tanw8ob0f.png)

Like any new technology, building for blockchains is initially hard and cumbersome. It's not as bad as writing machine code by hand, but its certainly not as easy as scaffolding an app with Ruby on Rails (if you know you know). You need to write smart contracts in another language called Solidity, or in the case of [Solana](https://solana.com/), you need to write it in Rust. And deploying your app to the chain is certainly not as easy as a `git push`ing your Node.js app. But all is not lost, ThirdWeb has recently come up with SDKs in languages like Javascript, Python and Go which makes astonishingly easy to write and deploy "web3" code.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o1vx1tp8lre21gcegl9m.png)
 
 
### Take back control
If you've made it this far into the post you probably see a pattern in all these services. These systems are set up in a way that takes power away from a centralised entity and distributes it to the individual nodes. Ideally these individual nodes are run by one person or a small group of people (which is where a potential problem lies).

### It's not all sunshine and rainbows
If everything goes well, blockchain tech will take away or at least reduce the power held by big tech companies (Meta, Amazon, Apple, Google, Microsoft, etc.). What's bad about them having all this power? Well, if they one day decide to be more greedy, there won't be a viable option elsewhere and people will just have to follow suit regardless. Sure, legal courts can intervene. But that process starts when the damage has already been done, and to be fair legal proceedings can take a fairly long time.

But there's a loophole in blockchains too. It's fine if each person runs one node, then the system is truly decentralised and each person gets their own say. But nothing's stopping you from pooling resources with people and start a crypto mining farm that out competes most single person nodes, and essentially centralises power again (we're already seeing this happen extensively). And remember big tech and its _prophecised_ demise? Well, nothing's stopping them to start their own mining farm and earn through that.

The mere existence of blockchain does not guarantee a better future for tech. It has to be actively worked on by enthusiastic developers in every corner to make it work. Or else, it will be just another piece of tech that gets dominated by soulless large corporations whose only aim is to make profits. Which is why you will see supporters of blockchain or "web3" hype it up so much. It is to get more individuals get involved and have a majority stake in it, so that when the big corporations want to have a piece of it, they can only be a minority.

So will you help bring power back to the individual or will you let big tech have it all? Will you take the blue pill or the red pill?

_You take the blue pill, the story ends. You wake up in your bed and believe whatever you want to believe. You take the red pill, you stay in Wonderland, and I show you how deep the rabbit hole goes_

{% youtube zE7PKRjrid4 %}


NOTE: I am in no way affiliated to or supported by any of the above services. I don't even hold any Ethereum (!)