Web3: The next generation of internet use

Web3 is quite an elusive term to define beyond “you know it when you see it”.

For me, it’s the glue between the web as we know it and the emerging permaweb (read as Ethereum); allowing us to use our crypto with every smart contract in existence with the click of a button.

It’s the UI you use to open a CDP with MakerDAO to create DAI, the way you login to p2p social networks like Satellite, use DeFi, and even to register your name on the internet for eternity 999 years.

And now, Web3 is coming to Web2 sites like Twitter & Facebook with a new Chromium extension called MaskBook, which offers encrypted messaging, truly private images, and even native Web3 ecommerce embeds!

With Web3, you can:

  • Login to an application without them storing (and losing) your person information
  • Send a private message on any platform that only your recipient can read
  • Send money anywhere without permission from your government and bank in seconds
  • Donate money directly to a cause without a middleman directly from your Twitter feed
  • Establish the foundation of your self-sovereign digital identity

Let’s dive in and learn about some of the cool projects building out Web3 for the rest of us to enjoy.

It starts with Wallets

Web3 starts with a wallet (I recommend the Meta Mask extension).

Web3 wallets like MetaMask hold your money – obviously – but more importantly they make Web3 available on every webpage you visit. You bring Web3 with you as you browse; it’s just a matter of each site using it, too!

When you use a Web3 native website like Zapper Fi, it can ask your wallet for permission to submit transactions to smart contracts, transfer crypto, or sign messages using your private key (more on signing below – spoiler alert, it’s cool).

Because you are in complete control of your wallet & transactions, these site’s can’t do anything without your express permission. In fact, Web3 sites are analogous to speed dial for smart contracts: they offer easy buttons or forms that let you interface with the blockchain on your own.

When you visit websites that don’t support Web3 like Twitter, nothing happens – unless you add your own Web3 functionality to them…

Introducing Maskbook!

Web3 on Twitter with MaskBook

What if you could tweet something that only your followers could read.

Imagine sending a “private” DM to your partner that Twitter itself couldn’t decipher (or leak).

What if you could contribute to a GitCoin fund straight from your Twitter feed.

Imagine purchasing an NFT directly from your DMs.

MaskBook is a very interesting piece of tech that injects Web3 into websites as you browse (with permission) and edits the page (DOM) to create integrated experiences in context. For example:

Through MaskBook, I create a GitCoin Web3 link and tweet it. On Web2, nobody is the wiser: it looks like a regular link

Maskbook fallback

But with MaskBook’s Web3 lens, you would see the embed come alive directly in your feed.

Maskbook progressive enhanced Gitcoin embed
Amazing!

Clicking the button opens a dialog to execute a Web3 transaction (currently using a native wallet implementation, adding Meta Mask soon).

Boom – Web3 p2p ecommerce within your Twitter feed.

Pair a decent UI & capture for shipping/download info and you could sell any product with a single link.

Here’s how it works:

Maskbook uses a loophole in Twitter’s character-limit logic: they don’t count links as characters. So, Maskbook can build a super long link with the details and extract/interpret it in the DOM as anything imaginable. 

For me, the most beautiful part of it is the progressive enhancement from the simple fallback link.

One more thing

But what if they fix the character loophole? Easy: Maskbook can encode text into images and interpret – like a QR code, but cool.

Maskbook also integrates the same features into Facebook and has no limit on how it could blend Web3 into any existing Web2 property.

What could you do with Web3 on Amazon? Reddit? Netflix?

Sign in on the dotted line

As I mentioned above, Web3 wallets aren’t just useful for operating smart contracts and transferring funds: they can be used to completely replace email/password login.

That’s right, no more passwords (at least, no more website passwords – please use a secure wallet password).

Because wallets contain your private key, the address is only usable by you! Typically, this means only allowing you to execute transactions, but recently MetaMask has added the ability to sign messages as the address as well. This is a simple operation that proves you have the private key without revealing it.

In practice, signing a message to the website allows them to confirm that you own the address and let you log into the site!

Satellite offers a great example of this process:

  1. Register your username & address (on-chain)
  2. Sign a message proving you own the address
  3. Tada, logged in!

Satellite also forces you to sign all of your content and stashes it all in torrents over IPFS, which is an interesting concept that we’ll visit another time.

Register your name for 999 years

Enter ENS. 

ENS is quickly becoming the preferred naming tool for Ethereum (and otherwise). Compared to its counterparts Unstoppable Domains and Handshake, ENS’s focus on address resolution instead of IPFS or root certificates has really given it a mass-adoption head start. 

But ENS is so much more than address resolution (and email); I peg it for the foundation of digital identity as we know it.

Check this out (and forgive me for skipping its IPFS and DNS functionality):

First, ENS is a shortcut.

When I need to use my ETH address, I can type in jameswmontgomery.eth instead of the whole gambit. Any of the growing number of web applications that support it can simply translate that into my actual ETH address (or BTC and other chains as well).

This feature is what most people use ENS for right now.

Second, ENS allows for custom key value text pairs.

Beyond adding all my coin addresses, I can add my website url, my twitter handle, or even an entire pgp public key – any key/value pair I can think up, linked forever to an account I alone control.

With ENS, I can connect all the pieces of my public identity into one place on the blockchain. Imagine not filling out the social links section of a profile (or any piece of a profile) ever again.

On top of that, I can give someone my ENS name and they’ll be able to lookup all my public profiles in one shot. A modern business card.

Now that I have my info added to my ENS name, let’s use it to “login”.

Then, I can “login” to applications.

Using just my ENS domain, I can pre-load any website with all my public profile info. Any transactions would be Web3 protected by my actual wallet (or signed by my key), but the publicly readable content could easily be pulled into an application.

Take a look at Zapper Fi again; you can plug in jameswmontgomery.eth and watch/review my transactions (or anybody at all) without logging in at all. This is just a taste of Web3 applications to come: simply inputting an ENS name to start using the public portion of the application, while gating real transactions with the wallet.

DeFi, NFTs, social networks, and anything on the blockchain are as easily accessible as plugging in your digital name.

It’s a healthy reminder to maintain compartmentalized pseudo-anonymity as well.

Lastly, I connect with my network.

What is identity if not in relation to other people?

Since my address might touch others, I can construct a contact list of other ENS names & profiles that I have known – whether through web applications, ETH transactions, or even Web2 applications like Twitter.

I could delegate my credit to a friend or even “stake” the information of my friends’ ENS profile as correct.

Consider how you could tie yourself publicly to other ENS names, contracts, and addresses – or inversely how you could publicly dissociate/discredit others as well.


So, ENS ties together a username that: 

  1. Easily resolves to any crypto address
  2. Preloads public data about you into any web app
  3. Allows only you to “sign in” or execute transactions
  4. Can touch every other ETH contract & contact

And you can rent it for 999 years on-chain for $5k – or, you could just grab 1 year for $5 like a normal person (or control a free subdomain, hmu). 

ENS connects the dots for an even smoother Web3 experience and I can’t wait to see how we use it for digital identity in the future. 

Web3 is dope

These are just a couple of cool projects I’m keeping my eye on. 

Web3 is constantly being built up and, in my opinion, is one of the biggest web development opportunities of the next 10 years.

So start getting used to using your wallet (and try not to get wrecked by gas fees)!

What cool Web3 projects are you into?

Handshake and Namebase: DNS meets Blockchain

I hate ICANN.

Though I agree that it’s a necessary evil, I can’t wait to be rid of centralized, backroom-dealing monopolies on the literal backbone of the internet.

I’ve written about all that before.

But today, I’d like to talk about another player in the space: Handshake.

What is Handshake (HNS)?

Much like ENS, Handshake is a decentralized ledger focused on providing an immutable record for domain names on the internet. HNS is the cryptocurrency of this network.

What this means is that anyone can register and manage TLDs (think .com or .org) instead of a single private company owning them all and leasing them to the rest of us.

As of today (Feb 14, 2020), Handshake has opened bidding on the first round of TLDs, excluding the top 100k domains and existing TLDs to avoid conflicts.

What is Namebase?

Namebase (a private company) is a product through which regular people can register and manage TLDs on Handshake (a public blockchain).

On Namebase, you can buy/sell/use the HNS coin, which is necessary to register TLDs like .poop or .coin.

User-friendly products like Namebase are critical tools for enabling easy management and transacting for regular users – though, you could alternatively use the Handshake CLI or other products as well.

How can we use Handshake TLDs?

Well, you can’t.

Yet.

In order for Handshake TLDs to work, we all need to agree that we’ll use them.

Unless we all want to use them, browsers like Chrome, Firefox, and Brave won’t feel the need to add support for Handshake. And though there are ways to use it without browser support, the whole thing won’t really work out until they do.

And Handshake is up against the establishment, big time. ICANN will fight tooth and nail to retain power over controlling TLDs. Verisign wants to retain control over reselling .com etc. Companies like GoDaddy, Namecheap, and even Google Domains will need to consider switching business models and tech stacks.

It’s a whole thing.

But that doesn’t mean it wouldn’t be worth it! There’s a long road ahead in terms of viability here and I would love to see the vision come to life.

How can we buy Handshake TLDs?

Well, you can’t outright buy them yet.

Just today, Namebase officially launched their very first auction.

The auction consists of an array of TLDs available for bidding, but doesn’t list them all. For the first year, Namebase will be releasing new batches of TLDs for auction every week to ensure that all the TLDs don’t get snatched up by early investors.

Each auction will close after a week and the new owner takes control. Other bids will all be returned to sender, so not a lot of risk in putting your money in (more or less).

Read more about how it all works.

Outstanding Questions

How will Handshake work with existing ENS?

I’m already a fan of ENS. Many thousands of domains have already been registered with ENS and they, too, plan to roll out additional TLDs.

Will Handshake fare well on it’s own Proof-of-Work blockchain?

Instead of building on top of interoperable Ethereum, Handshake is built on its own blockchain. With the fluidity of miners choosing the most profitable networks, PoW blockchains that can’t maintain high hashrate are prone to 51% attacks (not good for DNS…).

Will Brave adopt Handshake?

The only clue to Handshake being included with Brave (the browser with the best odds of giving Handshake its moment) is a single tweet. Browser adoption is key and without it – especially if Brave openly denies – Handshake could be DOA.


I will most likely be throwing my hat in the ring for an experiment with Handshake. Worst case scenario I lose some money on a worthless TLD. Best case, I run the entire internet from my basement.

What do you think?

How Blockchain could replace GTIN, UPC, and Barcodes

Whenever you checkout at a grocery store, your cashier will scan the barcodes of your items and their prices are automatically added to the total.

The tech is rather simple. Each barcode scanned is equivalent to some unique sequence of numbers that exists as the ID of the product.

That ID (aka UPC or Universal Product Code) is used to lookup the product’s name, price, weight, and other data from the store’s local database.

Additionally, that UPC exists in the global scope as well. For example, a specific banana has the same UPC in every store across the world.

But, how can the stores know they’re not going to choose a UPC that’s already in use by apples?

How can interoperability exist between brands?

What about other products like books or shirts?

Enter, Global Trade Identification Number (GTIN).

UPC was the original, but it’s successor GTIN covers a lot more.

The GTIN standard has incorporated the International Standard Book Number (ISBN), International Standard Serial Number (ISSN), International Standard Music Number (ISMN), International Article Number (which includes the European Article Number and Japanese Article Number) and some Universal Product Codes (UPCs), into a universal number space.

Wikipedia

In order to ensure that there are no collisions, individual brands register for a Company Prefix that they can use to denominate all products under.

Specifically, GTIN is managed by a centralized company called GS1 that approves and manages the entire GTIN database.

Blockchain was made for this

So, GTIN is a numeral based standard that requires a central trust to regulate that users don’t interfere with each other’s namespace.

In the same way that ENS allows for a trustless registrar for domain names, a blockchain solution for allowing companies to register and manage the product information within their portfolio while simultaneously preventing conflicting usage and unsanctioned modifications.

For example: if I wanted to register my product with a GTIN, I need to pay GS1 every year for the Company Prefix so I could create GTIN’s within its scope.

Instead, using blockchain, I could use my wallet to transact directly with a smart contract to create a new product GTIN as a 100% unique UUID and manage the metadata associated with it directly.

I would be able to create a product GTIN for the cost of a transaction fee, add pricing data, name, and even logistics data to the public blockchain without ever paying a middle man.

Then, I would print my products with a QR code of its blockchain address.

Graciously, I’m assuming for international tech support for QR code product scanners that interact with the blockchain, but hey we’ve switched before and we can do it again. Progress isn’t painless.

Thoughts?

Why ENS will be superior to DNS in every way

Anyone who knows me well enough knows that I have a tendancy to buy domains names without second though (shout out to gotballs.org…).

So naturally, I have a few issues with the domain name registrar industry as a whole:

  1. Premium Domains are an absolute scam. Registrars can choose to markup domain names for profit as they see fit even though they don’t own the domain.
  2. ICANN is essentially shaking down users for profit and owns a monopoly on the creation of new TLDs
  3. Domain ownership requires private information to be provided during registration and you would then need to pay for WhoisGuard on top of that to prevent spammers from retrieving it.

Now, the current industry exists as a natural byproduct of the technology that existed at the time it was required. A central trusted authority was needed to maintain a ledger of who owned what domain and which server had its data. A necessary evil, per se.

Blockchain did not exist to serve as a trustless middleman to coordinate this information.

But now it does.

What is ENS?

So ENS – Ethereum Name Service – is a smart contract built on the Ethereum network that acts as a trustless, decentralized mechanism for registering and managing domain names.

For example, through ENS I have registered jameswmontgomery.eth by sending an arbitrary amount of ether to the smart contract. It then marks my address down as the owner for X number of years and will expire unless I reregister.

Most notably, the ether I sent does not go to some corporation – it literally gets burned.

The first thing you’ll notice, though, is that you cannot simply visit jameswmontgomery.eth as you would jameswmontgomery.com – at least not on major browsers (yet). We’ll revisit this in a bit.

Primarily – at this point – ENS’s main value is acting as a shortcut for Ethereum addresses (and other cryptocurrencies).

Specifically, instead of sending ether to my address 0xcDbB43A1BacB5Fe29ff895C7f79dC9dD0d536F71, you would send it to jameswmontgomery.eth from a supported wallet like Meta Mask or MyEtherWallet.

The ENS smart contract would then automatically route the payment to the correct address; it’s even smart enough to route payments to the different token addresses automatically like Ethereum, Bitcoin, BCash, Ripple, and others.

It doesn’t sound like DNS though.

Payment routing is just the beginning.

They’re also rolling out support for registering existing TLDs like .com and have already established a proof-of-concept with the .xyz TLD.

This allows existing TLD registrants (you can’t just buy google.com, sorry) to claim their domains on the ENS network and enable three key features:

  1. Accept payments from any crypto wallets directly to jameswmontgomery.com without an intermediary like PayPal.
  2. Join Web 3.0 by serving site content through Swarm and IPFS.
  3. Store meta data like email, Twitter username, and others as structured data for easy reference on apps.

It can’t be far from thought for the architects to want to support core DNS features like A Records, CNAME, etc as well, but these features are currently not supported.

TL;DR

When ENS does support these key DNS features, it will ultimately be the superior choice for the future of the internet because:

  1. It does not rely on a central authority to maintain a ledger of ownership
  2. It does not arbitrarily establish “premium” domain names and jack up prices (though, it does have simple character count scaled price to ward off domain piracy).
  3. It is an open source protocol that can ultimately be governed by a DAO instead of a corporation.
  4. It is inherently censorship resistant and governments cannot shut down ENS addresses.
  5. DNS’s core function as a distributed ledger with TTL is handled by default on Ethereum.

Thoughts?