Learning Solidity / Blockchain Part 1 -- What is a blockchain?

So… what is a blockchain?

To your mom it might sound a bit like a scam. Something along the lines of pyramid schemes, and MLM’s but I am afraid its much worse.

Blockchains are:

→ a distributed database (think computers talking from all over the world)

→ that is chronological (there is order of events that happen)

→ and immutable (can never be changed)

→ and transparent (anyone can access anything)

so why would someone want to use this thingy??

Well it’s probably because they want to have something with really good security, transparency, traceability, and decentralization…

What does it look like? Look below

This is what a blockchain could look like...
This is what a blockchain could look like...

So what the hell is this decentralization thing all about then?

Essentially we have these distributed databases all around the world that must come to consensus on the state of that database. Imagine that there is a shared digital grocery list that people all around the world want to keep updated.

But aren’t these people strangers??? Why would they want to keep that grocery list updated?

Well, that’s true. They ARE strangers. But that is also OK! We can setup certain incentives/rewards that make it better for strangers to want to do the right thing and keep the list updated instead.

So what we have is a peer to peer network of computers that all work to keep a digital grocery list updated without having to worry about whether or not the list has been tampered with or not…

So decentralization EMERGES when we have the above in place:

  • a distributed database

  • a form of distributed consensus

  • financial incentives that keep the database updated

  • a way to connect with others

Ok, that’s cool and all. But WHY would we want to be decentralized?

Well, let me list out the reasons why having decentralization is a good idea.

  1. Fault tolerance (No single point of failure if something goes wrong)

  2. Attack resistance (If one computer goes down, the rest are still safe and can keep going)

  3. Collusion resistance (its very hard for bad actors to come together and collude)

  4. Works in a Trustless Environment (you don’t need to trust peers)

Some more reasons why decentralization is good (put different ways):

  1. It reduces the # of people or things that you need to trust

    1. email is a decentralized protocol at its most fundamental level.

  2. Are more adaptable, resilient, and live longer

    1. languages are decentralized.

  3. Tend towards antifragility (basically means that the network comes back stronger whenever it gets attacked)

    1. federal system of gov.t is a anti-fragile org whereby individual states can observe and learn from each others mistakes.

  4. Enables censorship resistance

  5. Enables permission-lessness

  6. Reduces platform risk

  7. More egalitarian (lots of equality??)

    1. equality of opportunity, not of outcome.

  8. More agile

  9. More democratic and inclusive

  10. More scalable

  11. Reduce liability

  12. Puts trust in systems, incentives, and math. Not people.

So depending on the context & the definition that I just gave, YES, decentralization is good.

But let me address some more nuance to this topic…

Blockchains are decentralized & centralized at the same time.

WHAT!?!? Why the fuck would it be both? How is that even possible…

Well, blockchains are:

  1. Politically decentralized (anyone can use it)

  2. Architecturally decentralized (no 1 point of failure)

  3. Logically CENTRALIZED (the database needs all computers in the network to agree upon 1 single state -- it behaves like a single computer)

So yes, its both decentralized & centralized.