The recent Bybit hack raised discussions (in CeRes libp2p TG) around safeguarding users from compromised JS using IPFS.
Using ENS+IPFS to serve censorship-resistant and secure front end is not a new idea. The biggest blow being the removal of native IPFS support in Brave.
Hence some new crazy idea…
It is clearly hard to solve the ENS resolution + decentralised CDN usage via integration in the browser. Simply because users tends to use the same browser for all activities, and having to get a specific browser just to access dapp is cumbersome.
I can see that in my own usage of dapps. I rarely use in-wallet browser to access my dapps, and prefer to rely on browser wallet extensions.
Also, users don’t really care about security and decentralization, so getting them to install a browser extension so that the loading of their web page gets slower isn’t an easy task.
So… who cares?
Well, I would argue that wallets cares. Wallet developers and projects want their users to use secure frontend to interact with smart contracts.
Hence, my question is why isn’t ENS+IPFS integrated in popular wallet extensions?
Reader, please point out any wallet that does integrate ENS+IPFS to help retrieve dapp frontends.
A skeleton of an idea
The Status Wallet Connector development will enable leverage Status Desktop wallet’s security from your day-to-day browser.
Assuming Status Desktop running a Codex node, the browser extension could:
- Pass ENS to Status Desktop
- Status Desktop use RPC API to resolve ENS and get Codex CID
- Codex node in Status Desktop retrieve data from CID
- Status Desktop sends frontend code to browser extension who displays it in browser
I assume this is possible as this is what IPFS companion extension does. The difference is that the Codex node is not running in the extension, or standalone and accessed via extension, but embedded in Status Desktop app.
The main UX difference is that the user is a Status wallet user - they do not need to install additional software to have a more secure/decentralized/censorship-resistant experience. They just install Status Desktop and Status connector browser extension.
ENS does have strategies to embed ENS in DNS. Which could help smooth the experience:
- User goes to app website https://app.safe.global/
- Browser pulls website from web2 CDN as usual
- Resolution of the related ENS is done by extension or Status desktop (is it possible?)
- ENS used to retrieve CID, then content, etc
- Once JS content is ready, extension can pop up and offer a “verified” version of the frontend to user - or just compare what the browser downloaded from web2 cdn with what was received from codex and alert user if code differs.