Blockchain Byte - Week 7 : Decentralization & Web 3.0

Blockchain Byte - Week 7 :  Decentralization & Web 3.0

Table of Contents

  1. Recap
  2. Decentralization
  3. Web 2.0
  4. Web 3.0
  5. Parting Questions

Recap

To recap, last week we described in simple terms the working of blockchain using the analogy of shared ledger accessible by all parties and all transactions visible to everyone. This is possible through decentralization which is one of the pillars of Blockchain technology.

Decentralization

Decentralization means there is no central point of control. Instead, decisions are made over a distributed network of computers (through consensus mechanisms which we will discuss later!). Decentralization removes responsibility and capability from a central location and devolves it across a network of connected computers.

The two main differences between centralized & decentralized systems are on

  1. Trust
  2. Point of Failure

Trust

We discussed in week 4 on Trust function carried out by a centralized authority. In a decentralized setup, there is no need for a centralized party to carry out that trust function. Also, the parties need not trust one another. For e.g., a stock exchange with several non related parties (banks, depository, traders, brokers, clearing house, customers etc) who do not trust each other is a good use case for blockchain. The Australian Stock Exchange has introduced DLT as a Service.

Point of Failure

In a centralized network, all systems & database are centralized in one location or under one authority. All users rely on this central authority to maintain and record transactions. For example, in a bank, customers rely on the bank's systems to correctly adjust their balances when a transfer occurs.

The central authority fully controls the whole system, including updating back end databases or by upgrading software that implements the system.

It can be seen that a central authority is a single point of failure which means in case this authority gets compromised, all the data and software under this authority's control gets compromised too.

In a decentralized system, even if some computers malfunction, the system can carry on with the rest of the working computers. There is no single point of failure in a decentralized system. To compromise a decentralized system, majority of computers forming part of the network need to be compromised which takes more effort & is more costly.

However, there are questions on Blockchain decentralization such as :

  1. What about the underlying software or protocol governing the Blockchain?
  2. What about the team which manages this protocol?
  3. What about the users or maintainers of the system?

We will tackle these as we go forward.

Let us now get into Web 2.0.

Web 2.0

This is the architecture of any web 2.0 application where data is centrally stored and managed on the servers of "trusted" institutions.

Decentralize.jpg

For a high level summary of how a typical web 2.0 application works, let us take an example of a social media website or app. A web application typically has three parts :

  1. The Front End - defines the user interface or typically what the user sees or interacts when he / she accesses the website or app. E.g., the login page.
    For those interested in how websites are made - websites are structured using HTML (Hypertext Markup Language), stylized using CSS (Cascading Style Sheet) and user interactions are defined through JavaScript
  2. The Back End - defines the logic of the website. E.g., user registration, signing up, login, querying data etc. The back end logic is usually defined using python or Java etc.
  3. The Database - where data is stored like user logins, passwords along with any other relevant information like posts, comments, likes etc.

The below diagram makes it more clear

Web 2.0.jpg

So, the user interacts with the front end --> which in turn communicates with the back end --> which in turn communicates with the database.

Depending on the user interaction, the back end queries the database and gives back the result to the front end which the user sees and responds accordingly. For example, when a user logs in to a website,

  1. the user enters the user name and password on the login page (Front end)
  2. The back end queries the database for the username and the password (the actual password is normally not stored in the database but an encrypted version of it through a process called hashing).
  3. If the username exists and the password hash matches in the database, then the back end accepts the user login and the same is shown as successful to the user through the front end by successfully allowing the user to login.
person using both laptop and smartphone
Photo by Austin Distel / Unsplash

The rise of Web 2.0 was largely driven by

a. Mobile internet access - which dramatically broadened the usage of the Web when we moved from dial up access for a few hours from a desktop to an "always connected" state in everyone's pocket.

b. Social Media - All the likes, dislikes, comments, photo sharing, video sharing, content etc. Need I say more?

c. Cloud - Companies shifted from buying & maintaining their own expensive and dedicated hardware upfront to renting storage, compute power & IT tools. This resulted in companies benefiting from low-cost resources that scaled as their businesses grew.

Web 3.0

Blockchain is leading what we are seeing as the next paradigm shift in internet applications which is called Web 3.0.

a computer with a keyboard
Photo by Bastian Riccardi / Unsplash

Unlike Web 2.0 applications, for Web 3.0 applications, there are neither centralized web servers where the back end resides nor centralized databases that stores data or information. Instead the blockchain infrastructure is used to build apps on decentralized machines that are connected to each other through the internet.

In a blockchain, we deal with peer-to-peer network where each computer is linked to one another. An elaborate blog on decentralization by Vitalik Buterin (The founder of Ethereum) is worth a read for those interested in diving further.

As per his blog, the concept of decentralization is not only on the number of computers & their inter-connections. It is more in terms of

  1. How many computers is the system made up of & how many can the system tolerate them breaking down? - Architectural decentralization
  2. How many individuals or organizations control the computers comprising the system? - Political decentralization
  3. Does the interface & data structures function as one unit or can they be cut into pieces & they still function independently? - Logical decentralization

Blockchains are

  1. politically decentralized (no one controls them) and
  2. architecturally decentralized (no infrastructural central point of failure) but
  3. they are logically centralized (there is one commonly agreed state and the system behaves like a single computer)
a black and white photo of cubes on a black background
Photo by Shubham Dhage / Unsplash

Parting Questions

  1. How are these computers in a blockchain connected to each other?
  2. How do they maintain the same balances & show the same transactions in each of their systems or in other words, how do they maintain the same agreed "state"?
  3. How does the interaction between user and the application happen in a web 3.0 environment?