What are light clients and why do they matter?
As many know, when I setup Skyinclude channel, it was meant to be a tool for me to push myself to learn - and share the journey as I learned.
Two years in, and I am still learning!
Background Story of How I Learned The Importance of Light Clients
Today we are talking about light clients in a blockchain, more specifically for Handshake, and opening websites. This came up when comparing Handshake to ethereum based naming solutions such as Decentraweb (we did a HNS vs Decentraweb video here and many in the community are coming up and correcting me on the video to highlight a KEY advantage of Handshake.
Built FIRST around light clients.
So I had to privately ask Matt Zipkin,
Matt Zipkin’s talk at Namescon Austin in Sept 2022
The clip I pulled is from minute 20 of his amazing talk - but I want to make a dedicated video to highlight the importance of a light client in Handshake and why the ethereum based domain naming systems cannot do it.
But I want to HIGHLIGHT today - specifically the light client (which is at the 20 minute mark in his talk above). And use this video and this page to send to people who are comparing HNS to Ethereum based or any other naming protocol out there - as this seems pretty special to Handshake.
So What is a Light Client?
Please refer to Matt’s talk in the video, but I will write it up in my “non technical” terms here:
Before you learn about light client, understand if you are not using a light client, you are going to use a full node.
Full node = downloading the full blockchain on your “server / laptop / hard drive / phone”. This is where you download all the “blocks” in the “chain” of the specific block-chain you are going to “use” to look up TX (transactions).
So a light client, doesn’t need to download a “full node” (every piece of data in the blockchain) to your local device. Its job is to download JUST WHAT you need (in Handshake’s case - headers and a few bits) to VERIFY it is what it says it is on the blockchain.
So what is the ONE job of Handshake’s blockchain? TLDs (top level domains), right! To store all TLDs registered on the HNS chain, and to let users verifying what NS (name server) and IP address that TLD is pointing to.
The handshake blockchain is clean and simple, and focused on one thing (not like Ethereum that is a super computer for the world’s computer transactions - which is massive). So the full node isn’t even that big - but that light client is so small that it can:
Run on a Raspberry Pi ZERO
Key Point: Light Clients are Trustless + Lightweight
And the idea here is - you DO NOT need
1) a full node on you device (Handshake blockchain is now growing in size I believe about 15 gigabytes)
2) a centralized party that “Verifies” what is true by having the full node on their server and you are checking against that.
You have the power of a full node, but on a light client that only takes what you need.
Why Doesn’t Ethereum Have a Light Client?
In Matt’s talk, he says Ethereum doesn’t have a light client. I’d love to be corrected here, but he says there is a possibility if changes were made (sorry I’m not technical enough to get into this), but basically
You trust INFURA
Which has an API connection to Ethereum blockchain
Because Metamask on your chrome browser doesn’t download the entire Ethereum blockchain (full node) on your laptop compute or mobile phone. It would be SOO MASSIVE
Researching a bit, found this Crypto APIs article with the highlight:
Basically - NO ONE wants to , or can - store a full node of Ethereum - and then starts to use these centralized API services
That can CENSOR, or be ASKED by organizations to CENSOR.
Point - APIs are Companies Storing Blockchain Data = Centralization
So what is the point of all of this?
It means - Ethereum blockchain is AMAZING - and great - and is the world’s leading super computer of so many transactions.
BUT - you need to really run your own full node to trust it. Otherwise, you’re using Metamask, and then the default RPC API that is Infura - to be able to censor your transactions, or be asked by others to censor you.
It is about SCALING Decentralization - Handshake, Bitcoin, NameCoin - Use Light Clients
Bitcoin whitepaper also talks about the importance of light clients. And he knew as the blockchain grew, it would be more and more data to store for a full node.
Why isn’t this treated as a big deal in Ethereum? does make one wonder….
I spoke to Matt Zipkin while writing this article and he added this insight on the reasons why Ethereum doesn’t use light clients
Update: Saw this tweet
MAtt Zipkin Getting the Light CLient Working on an Old Phone!
Point: You don’t need “Infura API” to validate HNS blockchain records as it has a light client - and you can access data on Handshake with something as basic as this phone.