Sounds pretty much like the GNU Name System. With what they call a hyper hyper local root, you as a client define your own TLDs in addition to the root your system has configured (the system is intended to replace the existing ICANN root in a backwards-compatible manner).
Delegation happens via public key and records are resolved through a DHT. The idea is you could add your friend/org's key to your root, and from there you could resolve recursively using your friend/org's zone.
IMO, GNS would benefit from a blockchain to store the root zone. Currently, It is managed by a non-profit. You can add your own TLD but good luck enabling everyone to resolve it without GNUnet e.V's say-so.
The problem is making a blockchain that's private enough.
I would say GNS proposes an interesting tradeoff, at least one that's not been attempted/proposed by other projects. They intend their root zone to be transferred to ICANN for ownership and for the protocol to be backwards-compatible with DNS, so that moving to GNS wouldn't require major updates from all providers/vendors (unlike IPv6).
Also, the hyper hyper local root and public-key delegation balance the powers of the centralized root. Hypothetically, adding a new "TLD" (for your client) would be very easy so we would probably see more old-style "indexes" sharing zones you could subscribe to, also in a peer-to-peer manner so that if i add my friend anita's zone to my root, i could then recursively resolve through her published index (in her zone), like blog.anita or barbara.anita (a hypothetical friend of anita's).
It's also worth mentioning that this would significantly change the Certificate Authority problem by having a secure network to distribute the keys via DANE entries. It would still be a problem though that anita could suddenly point barbara in her zone to her own machine and serve her own content/certificate. But i guess that's what Web of Trust (or rather Fog of Trust with zero-knowledge proofs) is for? :)
Delegation happens via public key and records are resolved through a DHT. The idea is you could add your friend/org's key to your root, and from there you could resolve recursively using your friend/org's zone.
Pretty neat stuff, at least on paper.