There’s no point to doing DNS if it’s not global (icann supported). Fortunately, we have options.
While most other networks are partnering with a centralized corporate entity for icann compliance we don’t have to. With the polkadot community foundation (PCF) it’s possible to create an owner-less company with management appointed by governance to act as a POC for ICANN communication and integration. A single point for domain transfers (of web2 names on/off chain) and would allow us to purchase / register custom ICANN gTLDs ( .dot .ksm etc ). This would allow the on-chain system to receive incoming transfers, performing outgoing transfers, register gTLDs, and more.
You could think about like web 2.5, a bridge between the web2 and web3 worlds. The system doesn’t technically need ICANN to exist or be used, but without it, only those who operate custom resolution systems will be able to use it because ICANN does not like their authority challenged so they’ve forbidden non-icann domain support.
Over at ibp-network repositories · GitHub we have built a system to provide dns resolution, health checks in a decentralized way … A bit hacky and coded to our specific needs but it should give you the idea.
- ibp-geodns – pdns remote plugin for custon resolution – Reads status via pubsub
- ibp-geodns-monitor – Monitor setup something akin to gcp health check (ensure system is up, if not log the outage) – Writes via pubsub
- ibp-geodns-collator – Monitors pubsub and records events to display via api – Reads via pubsub
- ibp-geodns-dashboard – dashboard that connects to collator api
- ibp-geodns-agent – Self attested monitoring application which would be the equivalent of zabbix active agent – writes via pubsub (still a work in progress need to spend more time on this)
So – What do we need?
We need to make sure that the entire stack needed to launch a project on chain is decentralized and that it’s possible to use it on existing systems for backward compatibility without tinkering as well as being independently available via web3 directly. This means 1) Domain 2) SSL generation and database 3) Hosting (Apps / Filestore) 4) Communication ( Email equiv / IM equiv / Discord equiv ) 5) RPC accessibility (light clients)
Eventually the goal should be to rebuilding networking itself to use an onion style client determines route packet forwarding system with innate layered encryption.
Where is the DNS lacking? We can register non-ICANN-complaint names on various non-dot chains already and no one uses them because they’re not ICANN complaint / integrated. We need a market place for dns hosting so it’s possible to register or bring a domain on chain and then have a market place of available dns hosts to choose from that will provide the dns hosting. This is where reputation becomes key and an onchain reputations system is needed – because as a dns host you can give whatever results you want but without the dns hosts it’s not possible to have a system that is usable without a custom client. The other option is have the PCF subsidary perform all dns resolution.
Storing all these health states on chain is a bit of a mess – there are a couple other ways to do it – to filestore, keep using pubsub and only record confirmed offline states on-chain and make pubsub use signing for auth and messaging to verify authenticity, or store them all on chain and just prune it every other era or whatever so we only keep as much state as needed.
For storing the zone data that should be kept in a file store and encrypted such that it’s possible for dns hosts to decrypt, the client to encrypt & decrypt, and for no one else to be able to decrypt. Basically RBAC turning an on-chain filestore into a permissioned & encrypted S3 store.
There is security through obscurity and it should not be completely discounted – I believe most system admins would choose to NOT leak data that may help an attacker.