Allocating globally unique names while providing a seamless user experience is an epic challenge. People hate it when the name they want has been taken by someone who isn’t using it. They equally hate it when someone buys thousands of names cheaply and then attempts to sell them at a premium price. What is even worse is when someone takes the name you have been using for decades, a name you made valuable, and then tries to sell it to you at a premium price.
There are two primary ways to ration names: economically or politically. When you ration names economically the complaint is all the “good” names are taken and are extremely expensive. When you ration names politically you need a consensus process which becomes a potential point of community conflict. Navigating a political process is not cheap nor easy.
How do we get our names anyway? You either declare to the world what you want to be called or the world chooses what to call you. This creates a point of conflict when two people both want to be called the same thing. There is also a conflict when “everyone knows” the proper name but proving what “everyone knows” in an objective manner is challenging.
Early on in any business you have to keep your ideas for names a “secret” until you have secured your domain names and social media handles. If anyone gets wind of names you are merely considering then they might claim that name before you on as many platforms as possible and then extort you to use it. The only defense is to preemptively register any name you think you might use before you share your thoughts with anyone. This only compounds the problem of good names being “taken” but unused and unavailable.
A name allocation system should aim to make the maximum number of names available as possible while mitigating the risk that someone will engage in squatting or front running.
All names start out in the “public commons” and name-squatting is an example of the tragedy of the commons. Short names are scarce real estate because there are far fewer quality short names than there are people and businesses that would like to use them. When someone claims a name they are simultaneously denying it to everyone else. Ideally, everyone who loses the opportunity to use the name should be compensated by the person who gets to claim the name. Name-squatting is effectively theft from the public commons because the squatter buys the name cheap and then attempts to resell the name at fair market prices.
The solution to name-squatting is to allocate all names at a price as close to fair market value as possible. This removes the profit margin of the squatter and ensures that everyone has an equal opportunity to claim a name by reimbursing the broader community. Unfortunately, this is not popular among people who want names to be allocated on a first-come, first-serve basis for a cheap price.
In theory, using an auction to discover the price of a name works; however, this assumes that all future potential buyers are aware of the auction and ready to participate. If you attempted to auction every possible name at the same time, then the vast majority would sell for a fraction of a cent to a name squatter. This is because the future real user for the name is not in the market at the time of the auction.
In order to prevent name squatting, the rate at which names are allocated needs to match as closely as possible the “natural” rate of claiming names for legitimate (non-squatting) purposes. Allocating names faster than real demand will suppress the price and create opportunities for squatters. Allocating names slower than real demand will push prices higher than necessary and hinder growth.
Unfortunately, no one knows what the “natural” rate of name allocation is and it is something that is not constant. You can have a surge of new users one week, then nothing for a month. Static rate-limiting of name allocation can frustrate adoption during the surge and still enable squatting opportunities during slow periods.
EOS Premium Name Algorithm
The EOS network attempted to prevent name squatting by auctioning preimum names. The shorter the name, the rarer it is. Short names can be used to create namespaces, like “.com” and businesses can buy a short name in order to allocate all names with the same ending. This allows the Anchor wallet to sell premium “.gm” names without users having to go through the auction process.
The way the algorithm works is that at most one premium name can be sold per day and it must be the most expensive of all premium names currently pending and it must have maintained the top spot for 24 hours. In the event of a bidding war, the rate of premium name allocation might slow down and take a week or more.
Many people don’t like this algorithm because it takes an unpredictable amount of time and is very expensive. In theory, it could take just 24 hours to get the name you want… if you are willing to pay much more than everyone else in order to jump to the front of the queue.
One benefit of this approach is that if someone attempts to front-run you then you have 24 hours to place a higher bid and secure your name.
Dynamic Pricing Algorithm
Another approach is to mimic the Bitcoin proof of work algorithm. Bitcoin aims to have one block produced every 10 minutes on average. Sometimes there may be 30 blocks in an hour and other times there may be none. If blocks are coming too frequently then Bitcoin increases the difficulty. If they are not coming fast enough then Bitcoin lowers the difficulty. The difficulty is simply the price to claim the right to produce the next block.
This same algorithm can be used to rate-limit the allocation of names without having an auction. Instead the price of names can be adjusted for every N names or every H hours. If the rate is above target then the price can increase. If the rate is below target then it can decrease.
The benefit of this algorithm is that if you want a name, you know the current price and you can grab it without delay! Furthermore, all available names are for sale at the same price at any given moment in time. Unfortunately, you can still be front-run. This approach gracefully handles short-term surges while preventing monopolization by squatters.
You can use the dynamic pricing algorithm to establish the starting bid in an auction that ends exactly 24 hours later. You can get any name you like within 24 hours and no one can front-run anyone else.
A Political Approach
Under a political approach, you must first identify what “body of people” have the authority to grant private use of a name from the public namespace. The Eden on EOS community could be “granted” the power to arbitrate name allocation disputes. Once you have identified the community, now you must identify a process. This process could look something like:Anyone can request any name and propose a price to pay the communityVotes are collected and if there are more “approve” than “reject” then the name is granted.
This process takes time, just like an auction. It can easily devolve into political parties where you must bribe the mob to get their vote. It can also easily succumb to voter apathy because most people just don’t care to pay attention. In order to be fair and sustainable, you would have to compensate everyone involved in reviewing and approving name allocations. This time and labor-intensive process could easily make names far more expensive than a pure market process.
Maybe Squatters Are not so Bad
Perhaps a community can benefit from squatters buying names so long as they keep the unused name on the market. The squatter keeps the name available and takes the risk that no buyer will ever come along. The community may not get the maximum possible price for an individual name, but it does get to sell more names at a lower price which could maximize community revenue.
Proposal for EOS Names & Symbols
A name or symbol can be “reserved” but not “consumed”. In other words, I can reserve the right to create the account “dantheman” without actually creating the account. Creating the account is expensive and once created cannot be deleated. Furthermore, transferring the account after creating it can be tricky. Token Symbol names face a similar challenge in that there are properties, such as precision, which are immutable once a symbol is fully claimed.
Transferring a “right to create” can be as simple as transferring an NFT. The fact that a “reserved” account or symbol name is more valuable than a “consumed” account or symbol name presents an interesting opportunity.
I propose we use the Hybrid Approach to reserve names; however, once a name is reserved the owner may choose to list it on the market or to convert it to an account. If they list it on the market then anyone can “buy it now” and the “squatter” keeps the profit.
With this approach you would still want to “rate-limit” name allocation, but you can error on the side of over-supplying the market and empowering name squatters to more easily make up the difference.
Many people will still complain that this process makes names or symbols too expensive for “poor” projects. Fortunately, there are many ways to petition the community for funds to cover the cost of buying the names and symbols you desire. By using market forces to establish value, the political process has a better understanding of the opportunity cost of giving a “poor” project a scarce name. There is no need to build a dedicated political process for allocating names if the political process can allocate the funds to buy the names.