I’d like to start a conversation on what sort of registration and renewal system best fits ENS. The current scheme is very similar to that used for DNS - it charges a fixed fee per year for a domain, which is sent to the ENS multisig. If you don’t renew your domain, it becomes available for registration again after a grace period.
This model has a number of advantages:
- It’s familiar and straightforward
- It ensures that if the account that controls a name is “lost”, the name eventually returns to circulation.
- Users who want to keep a name more or less indefinitely can renew for an unlimited period of time.
- It makes it expensive to squat on a large number of domains in the hopes of reselling them.
It also has several drawbacks, the most notable of which is the risk that people forget to renew their domains. We’ve built and integrated notification systems in an attempt to mitigate this, but there’s still a substantial risk that users accidentally allow names to expire, which can have dire consequences if the name is still being actively used. Being a decentralised system with no reliable contact details for users, our ability to reach out and warn people about this is limited, too.
When ENS first launched, it used a deposit model - names were auctioned off, and the winner deposited an amount of ETH that was held by a smart contract for as long as they wished to retain the name. It had its own advantages:
- Users don’t have to remember to renew their domains.
- There’s a direct incentive to release names you’re not using - so you can get your deposit back.
- You can own a name indefinitely as long as you don’t release it.
But several significant disadvantages:
- Losing the credentials for the account that controls the name means it’s now permanently unavailable.
- It’s perversely cheaper to squat on a name than to own it: squatters only have the cost of locking their ether up until they sell the name, while end-users have to consider the ether permanently gone.
- In the absence of a “land rush” for new domains, it’s not clear how to set the deposit at a useful level.
- The deposit must either be in a stable currency, in which case we add dependencies on external systems, or if it’s in ether, has to respond in some way to the changing price of ether.
I’d like to start a conversation in the ENS community about whether there are changes we could make to how names are registered and renewed that make things better for users - especially in ways that make it less likely that users will accidentally lose control of their names, as well as reducing the costs associated with maintaining a domain in this era of high gas fees.
Any proposed solution has to bear in mind a few constraints. All registrations are mediated through the .eth registrar contract, which is impractical to replace (and may soon be locked in so that it cannot be replaced). The registrar exposes an interface to “controllers” - privileged contracts that handle registrations and renewals - that allows them to register or renew a domain by specifying an expiry date for it. Until that expiry date is reached, nothing other than the owner of the name can change its ownership - including the controller smart contracts. This is a safety mechanism, but it does make it difficult to implement some possible registration strategies. For anyone interested, the code for the registrar can be found here.
Also, it’s worth bearing in mind what our goals for the overall system are. These are also open for discussion, but what we’ve historically agreed upon has been along these lines: ENS exists to provide the most useful decentralised naming service we can offer. That means that we aim to make the system as easy to use and available as possible for end users who register names with the goal of using them to name decentralised resources. Since the goals of squatters are directly opposed to this - they seek to extract rent from end-users without contributing to the system - we also aim to design the system to discourage squatting, which makes the system less liquid (eg, makes it harder to find the name you want) and less affordable for end users.