The fundamental building blocks of web3

This is the second in a series of threads of "The Product thinkers guide to Web3". Please leave me feedback @viksit on Twitter!

1/ In this thread, we'll build upon WHY web3 matters with the HOW -- what are its building blocks and what is a framework to think about them from a product builder's perspective? 🧡

2/ First, if you haven't read my earlier thread on why blockchains are important for anyone thinking about building web products -- check it out to set context!

3/ The internet's organic evolution from an academic communications platform has led it to never natively supporting the capabilities needed for the web apps of today.

4/ For instance, logging into websites, proving ownership of digital assets like videos or images, or even paying a friend for dinner via your phone.

5/ These problems have been repeatedly solved by companies that build web applications, giving them immense power -- and smaller players must now play by their rules or face the risk of being banned from their platforms.

6/ This has stifled a lot of the innovation that the original vision of a decentralized internet imagined.

7/ Web3 creates native building blocks to manage identity, asset ownership and payment that are not controlled by any one corporation or entity, and weaves them into the fabric of the internet itself.

8/ Doing so enables us to port our identities, assets and payments across platforms, and frees us from operating within the walled gardens of large tech companies, which often have misaligned incentives from their customers.

9/ This can enable the creation of new business models that don't rely on big-tech, and result in an explosion of startups -- something that we're seeing already!

With that, let's get into the details of how web3 actually makes this happen.

10/ (Note that much has been written about how blockchains work from a technical perspective, and is beyond the scope of this thread. Instead, we'll focus on its product elements.)

11/ A blockchain is an auditable, immutable, and decentralized ledger of transactions between multiple entities (eg, people). Each entity has a wallet associated with it, which can hold tokens (eg, bitcoin), and each wallet has a unique identifier β€” its address.

12/ A wallet address can be thought of as a username. In fact, it can also be linked to a human readable username in the same way we link domain names to IP addresses β€” forming the basis of a decentralized identity system.

13/ Wallets can store not just regular fungible tokens like Bitcoin or Ethereum, but also non fungible ones (NFTs). An NFT can be thought of as a proof of ownership certificate of an asset (say, a video file that is permanently stored on your Dropbox).

14/ By owning this NFT in your wallet, you become the legitimate owner of that particular video file, and anyone can verify this ownership via the blockchain β€” forming the basis of a decentralized asset ownership system.

15/ Tokens like @ethereum or NFTs like @cryptopunks are stored and transferred between wallets through transactions. Each transaction has a variable cost (known as the gas price) associated with it depending on how busy the blockchain is at the moment.

16/ For instance, I could pay a friend for (an expensive) dinner by simply transferring 0.025 ETH from my wallet to theirs. This forms the basis of a decentralized payments system.

17/ But the blockchain has another critical piece of functionality -- it allows code, known as a "smart contract", to run every time a "block" of transactions are written to the ledger. This allows us to write code to solve all kinds of real world problems.

18/ For instance, how could I buy an NFT painting of an artist I want to support, but make sure that both sides are protected from fraud?

The traditional way to solve this problem is to introduce a third party (an escrow) which both parties can trust.

19/ They both send their assets to the escrow, which after the right verification process, releases the respective assets. The blockchain however allows us to replace this trusted third party with an escrow smart contract that has the same functionality.

20/ The buyer and seller both agree upon a price (say 1 ETH), and send their assets (the 1 ETH and NFT painting respectively) to the smart contract's wallet. Once both assets are received, the contract then transfers the NFT to the buyer, and the funds to the seller.

21/ In the event that these conditions are not met, the transaction just reverts back to status quo.

22/ Since this code deployed on the blockchain and is open, anyone can independently audit this code and verify that it does what it is expected to do; or find and publish bugs to make sure that subsequent versions of this code can be fixed.

23/ Smart contracts can thus open up more sophisticated use cases beyond just identity, asset ownership or payments, and allow for things we are just beginning to imagine -- for instance, earning royalties on secondary sales of digital goods.

24/ To recap, a few fundamental product building blocks of web3 today can be thought of as,

  • a decentralized identity system
  • a decentralized asset ownership (and storage) system
  • a decentralized payments system
  • a decentralized computing engine to run code.

25/ In upcoming threads, we'll cover a few different ways in which web3 can impact various industries like finance, corporate governance, collaboration, art auctions and galleries, publishing, the creator economy, advertising, activism, and gaming.