Blockchain Byte - Week 8 : Web 3.0

Blockchain Byte - Week 8 : Web 3.0
Photo by Shubham's Web3 / Unsplash

Table of Contents

  1. Recap
  2. Web 3.0
  3. What is Decentralized?
  4. Why Decentralize?

Recap

To recap, last week we defined decentralization where

Decentralization means there is no central point of control.

Instead, decisions are made over a distributed network of computers (via consensus). Decentralization removes responsibility and capability from a central location and devolves it across a network of connected computers.

We briefly touched upon Web 2.0 and the interaction of the user with any application through the front end with support of back end logic & database.

To quote Vitalik & at the cost of repeating myself

Blockchains are

  1. politically decentralized (no one controls them) and
  2. architecturally decentralized (no infrastructural central point of failure)
  3. but they are logically centralized (there is one commonly agreed state and the system behaves like a single computer)

We introduced Web 3.0 which is decentralized infrastructure.

Web 3.0

Below is a very high level view of a Web 3.0 application

Web 3.0.jpg

We can see that there is no centralized back end for defining business logic or centralized database to store data and information. The computers forming part of the blockchain are all connected in a peer-to-peer fashion. Web 3.0 IT stack focuses on peer-to-peer technology. What is peer-to-peer technology?

Peer-to-peer means computers are connected to each other and they can share data, files or anything that is part of the connected network. In a blockchain, all peers can communicate with each other and send & receive messages. Blockchain is not the first application to use decentralization. A popular application called BitTorrent uses peer-to-peer file sharing technology. As per wikipedia:

BitTorrent is a communication protocol for peer-to-peer file sharing(P2P), which enables users to to distribute data & electronic files over the internet in a decentralized manner

Let us see at a very high level how Bitcoin Blockchain is structured.

  1. Bitcoin is a cryptocurrency which is operated on a blockchain (a peer-to-peer network)
  2. There is no centralized trusted authority like Central Bank monitoring the issuance and usage of Bitcoin. Issuance is done & monitored through an algorithm.
  3. Bitcoin sits on a distributed ledger that stores all the transactions in the network
  4. The ledger is replicated across all the computers which are connected as part of the Bitcoin network

When we say Blockchain is decentralized, what exactly is decentralized here?

What is Decentralized?

Decentralized Storage

Sharing a decentralized ledger which means data needs to be stored in a decentralized manner. Thus storage of data needs to be decentralized. But blockchain by design cannot store large amounts of data. It can store simple transactions and we will leave it at that for now.

Decentralized Communication

The communication infrastructure between the computers is decentralized in a peer-to-peer network.

Decentralized Back End Logic

In Web 2.0, we spoke about back end computation logic of a web application (e.g., through Python or Java code). What is the analogous to this back end code in a web 3.0 application? It is called a "smart contract".

What is a smart contract? Is it a contract which is smart?? Neither. Read on......

First Generation Blockchain

Bitcoin blockchain is the first generation of blockchain systems where financial transactions are recorded publicly with cryptographic signatures. There are no computations or applications over and above this.

Next Generation Blockchain

The second generation of blockchain systems provides a base to deploy & execute programs on the blockchain itself over & above the base layer where transactions are recorded. Ethereum Blockchain is one such example.

Ethereum is software running on a network of computers that ensures that data and small computer programs called smart contracts are replicated and processed on all the computers on the network without a central coordinator.

The blog from where this definition was taken is a good introduction to Ethereum for those interested.

Ethereum is the largest decentralized software platform which means we can create applications on it. So how can we program the logic into these applications? For e.g., if we want the software to do something at a particular point in time, how is that done? It is done through Smart Contracts.

Smart contracts are pieces of code that allow the Ethereum blockchain to move data or value. Smart contracts are instructions of when & how data or value should move.

We will leave it at that for now to focus only on Decentralization

Why Decentralize?

Why Decentralize and not use centralized database?

Vitalik's blog has the answer to that. As per Vitalik, the three main reasons for decentralization are:

  1. Fault Tolerance - Decentralized systems are less likely to fail accidentally because they rely on many separate components that are not likely to fail together
  2. Attack Resistance - Decentralized systems are more expensive to attack & destroy or manipulate because they lack sensitive control points that can be attacked at much lower cost than the economic size of the surrounding system.
  3. Collusion Resistance - It is much harder for participants in decentralized systems to collude to act in ways that benefit them at the expense of other participants, whereas the leaderships of corporations and governments collude in ways that benefit themselves but harm less well-coordinated citizens, customers, employees and the general public all the time.

Does decentralized databases fully resolve the issues surrounding centralized databases? No. Read the full blog to get a holistic view on decentralization which is beyond the scope of our discussion.

If everything is decentralized, how will the computers which are part of the network agree on a specific action? This is managed through consensus. An offshoot of decentralization is decentralized consensus.

Wait!! In the Web 3.0 diagram, I referred to something called "wallet" through which the user interacts with the blockchain similar to connecting to the internet using a web browser. Let us dive into it next week.

man diving in water
Photo by Roberto Nickson / Unsplash