Closed alexvandesande closed 2 years ago
Targeting a growth rate seems like it could work okay. I'd be interested to hear Vlad's perspective.
The issue you point out with deregistration rates could be avoided by simply ensuring that the incremental decrease in cost by deregistering an extra domain is never enough to pay for the rent of that domain.
For an independent business not active in Ethereum who registered their name "for the future" at 0.1Eth they would need to proactively check the appropriate contract at least annually and top up, assuming the quantity of names grow. Communication will be an issue, though third parties could take that burden.
Will there be, in the perhaps Swarm enabled future, a standard way to record the identity of an address, so that a resolved wallet also had an email and phone number (if they wanted).
We could use rate of growth rate (acceleration) as a metric to dynamically adjust the fee, seeking a 0 rate of growth rate.
If the acceleration for some time period is positive, the fee can be increased. If the acceleration for some time period is negative, the fee can be decreased. If the acceleration for some time period is 0, then the fee can remain stable.
This eliminates arbitrariness of dictating what the growth rate (eg 25%) should be and instead defers it to seeking a stable growth rate, whatever that rate might be.
@RexShinka that is already possible, there's a talk of a resolver that adds any random string of text, like phone or address
@djrtwo Using a second order seems like a super interesting solution. I really like trying to achieve a stable rate of growth year over year and not any particular rate of growth. It's nice because it can really be used to normalize adoption, increasing the fee dynamically when a surge of new users appear and decreasing it later. That feels like something that could even be more useful in some sort of bidding fee, increasing the price of starting a new auction if suddenly the whole world wants in.
I recommend a much longer grace period for the beginning of the smart contracting age. Many of us are involved in a dozen different things, and the tools for managing even my modest 100 domain portfolio are just not there yet to make things seamless. I like the idea of rent if it supports development, but not at all if it gets burned. A lot of things have to be in place for the ENS to really pick up the pace of use. It will happen, but we are in 1981 in terms of the internet. Maybe there's a video game crash coming soon and stalling development. We don't know.
I certainly respect the altruistic nature (currently) of the ENS developers, and my portfolio consists of no trademarked names, and no real names except of friends I'm holding on to until they figure things out. I have names I plan to use in projects, and names I plan to lease subdomains to anyone publicly for transactional related domains, like "canceled.eth" or "rentalagreement.eth"
I think there shouldn't be any way to lose your name, rather setting a resolver (or not setting one) for the root and any subdomains should incur a rental cost. I do in fact plan to profit from leasing out the transactional names, and I have a business in the works now for people to make use of them with modular contracts. Would it be fair for me to just sit on these domains and make a bunch of money because I was first? Maybe, but I support investment in the network, and such taxation doesn't bother me. DASH coin is thriving with forced reinvestment for example.
Perhaps domains which have resolvers set and/or a minimum number of Tx per year (I suggest 1 at first) should be exempt from rent. I do think it's ridiculous that someone bought up a bunch of given names and surnames hoping to corner the market. Fair play if they are going to create some sort of name leasing platform, but boo if they are just squatting. If they are squatting, I'd like to see a gentle push towards doing something with those names, but nobody should be losing names after a year. I'm sure some people will forget about their names for some years as well. They shouldn't be punished for supporting the system.
I am intrigued by the idea of this EIP, and I no doubt will be arguing with friends about the strategy being good or bad, but it's going to take sleeping on. I urge no rash actions that result in loss of property. I personally used my last $800 to register tactically the domains I did. I truly believe in it, and was willing to risk everything I had in order to have a future. I'm not a hoarder, I've been around crypto since 2012, and I always was turned off by the fringe libertarian anti-government aspect. I love the idea of development. Perhaps I spent tens of millions in coins I could have hoarded and been wealthy now, but I really feel it is nothing compared to what my participation in crypto will add in development. I don't think I should feel stress or pressure too soon for taking a risk with the ENS, and other people like me should have more ways to be safeguarded in their registrations, rather than ways they can be taken away.
@woodydeck I'm curious, what is the use case for one project to need 100 domains? Traditionally, one would buy many domains for a project to effectively self-squat them all so other squaters and attackers couldn't pick them up. I'm curious if, hypothetically, the squatter/attacker issue were resolved would you still feel the need to have 100 domains for a project?
You bring up perhaps the best argument against all of the rental and losing domains talk.
One project alone can use 20-30 domain names. ENS is not like DNS. Names are not just URLs, but bank account numbers, and contract locations. Smart contracts are very vulnerable, and it is difficult to write anything future proofed currently since so many things are in flux and being discussed. It's much better to reference an ENS name in a contract than to hardcode a single address. You can update the resolver of a domain, but not a contract. There are numerous issues with Solidity interpretation, and tons of non-obvious call stack vulnerabilities a n00b like myself can make on top of that.
I personally write long winded, inefficient, and ugly code. If I make a contract with a bunch of functions interacting with each other, I'm bound to do something terrible. To protect against this, and to make it much easier for people at my level to read what is going on, I think it is best to segment and silo operations in different contracts for each function call. That's why I registered inane names like: installmentcontract.eth, deductible.eth, refunded.eth, returnaddress.eth, tokenreceipt.eth, paymentconfirmation.eth. These are all fairly terrible and general longtail TLDs when it comes to the DNS, but they are not only possible to be used on one service, they can be used with hundreds of services and unique contracts. (e.g. woodydecklicenseplate3405BHDVIN43490583i492017.insurancepremium.eth)
So yes, I have a few stinkers I will probably relinquish out of convenience, but I plan in the next five years to use all of the domains I registered. I plan to lease some subdomains. I also don't think domains are particularly rare now. I think the core team for the ENS vastly overestimate the worth of less than seven letter domains as well. Longtails are fine with ethereum. It's about precision most of the time, not branding. There are most certainly amazing domains left in the pool, but I doubt I will even attempt to bid on any of them once opened. I have everything I need now.
Perhaps domains which have resolvers set and/or a minimum number of Tx per year (I suggest 1 at first) should be exempt from rent.
The problem with this is that it means rent is trivially evaded; all anyone needs to do is send one dummy transaction a year to avoid paying it.
One project alone can use 20-30 domain names. ENS is not like DNS. Names are not just URLs, but bank account numbers, and contract locations.
Can you elaborate on this Why would you need 20 or 30 2LDs for a single project? If you want to name many entities, why not name them as a.mydomain.eth
, b.mydomain.eth
, and so forth?
Can you elaborate on this Why would you need 20 or 30 2LDs for a single project? If you want to name many entities, why not name them as a.mydomain.eth, b.mydomain.eth, and so forth?
This is certainly a valid way of doing things, but for transparency I feel it will be more accepted for people not to write their own contracts for the majority of basic operations. Many people are capable of understanding code, but few are capable of writing something efficient and secure. They will rely on daisy chaining battle tested functions that other people implicitly will trust more than some skript kid like myself throwing something together. The contracts can get really complex fast, and people need to trust each step of them. Sure, they could copy and paste their own fork, but I think it is better if people recognize the contract so things don't degenerate into maliciously obfuscated URLs like you see now with TLDs.
It's a bit tangential to this discussion, but one of the biggest problems now in development is rushing new features instead of solidifying core ones. If you look at the mess CSS and JS playing nice in every browser creates, you understand that everyone has their different ideas for implementation of various properties, and it is a nightmare to debug. I'm sure there will be a 'Chromium' bank of contracts that everyone relies on, and this requires ENS names.
The problem with this is that it means rent is trivially evaded; all anyone needs to do is send one dummy transaction a year to avoid paying it.
One is not so trivial imo, especially when a few hoarders have thousands of low value domains that are only valuable as a monopoly. It is an expense they won't like. I'm for gentle, including flat fees that accrue, but that don't trigger taking away a domain for a long time (5-10 years). You can increase the Tx number as well if the strategy works.
With DNS, most reasonable .com names now are hoarded. The market adapted and .io and .us have become quite popular. People have finally adapted to the fact not every domain is .com in the US. This was less of a problem for people used to .co.uk and .ie confusion, but in the US people just didn't get things not .com existed for a long time. The same will happen with .eth. There can be an infinite number of suffixes if things get saturated and annoying.
Edit: Checking for transactions is probably the best way to make sure a domain isn't actively being used for operations in a contract.
Additionally, I think the main problem is not speculators hoarding, but people squatting on trademarked domains. Perhaps having a flat rental fee is a good way to legally protect trademark holders, but the reasons for this are a long complicated legal discussion.
@woodydeck we are in alignment on not wanting names to be lost due to accidents or forgetful owners, and we could increase the grace period for 1.5 or 2 years, but I would argue anything more than that.
Notice that the grace period is not when you need to login and pay the domain again, but for how long a domain can be held while the owner hasn't paid. In this proposal, you could probably deposit enough ether for the domain to pay for it's own for years to come and that wouldn't require any more effort from you. Only after the ether has been spent over the years–which depending on the amount of ether and the price, could be decades!–then the owner gets a grace period when the name goes underwater.
I would not support any measure in which some names were exempt.
First because it can't be done: transactions aren't a good measure, as on chain transactions go to addresses, not names, which are not necessarily related: if an exchange points multiple names they own to the same very popular address, there's no real way to know which - if any - of the names are being used.
Second because any measure you pick will be then used to fake and avoid paying it. If your suggestion is that it might not be worth it because doing so would be costly, then it's an argument for just creating some cost.
Third because we don't know how names can be used in the future. Some names might be used to host a app or a library and then "use" would be measured in visitors, active users or dependencies. There's no way to measure those, in fact some privacy oriented apps might be built so that it's impossible to do so!
The best way to measure how useful a name is, is to measure how much its own owner values it. The best way to measure value is by setting a price. There will be a griefing rent price to encourage them to sell it, as well as locked ether to encourage them to release it.
The best way to measure how useful a name is, is to measure how much its own owner values it. The best way to measure value is by setting a price. There will be a griefing rent price to encourage them to sell it, as well as locked ether to encourage them to release it.
I think this is analysis is too philosophical/ideological, and not pragmatic enough. Oldschool Bitcoiners would argue for absolute inalienable property rights, and current investors will argue for fees to help fund something. Your solution is in the middle, and in my experience, optimal strategy is rarely a compromise of conflicting views.
What is the bad that comes from people hoarding names? What is the value created by discouraging it? I think these are the questions that can be answered without inserting too much bias.
Second because any measure you pick will be then used to fake and avoid paying it. If your suggestion is that it might not be worth it because doing so would be costly, then it's an argument for just creating some cost.
I completely agree with creating cost, but am just wary of punitive methodologies. After a few days of thinking, my solution is to delay the implementation until the "bad" of hoarding occurs. Could be two years, could be 20. If there is an experiment, I like the gentlest of all measures. There's nothing worse for property values than a state or county running into a shortfall and bumping up property tax assessments unexpectedly.
I would hope more people will voice their opinion over something so important to the vitality of Ethereum itself. I'll leave it to them now.
What is the bad that comes from people hoarding names?
Those names aren't available to people wanting to use them. The namespace becomes cluttered with derelict names. Names that are 'lost' remain unavailable to anyone. Squatters impose a deadweight loss on legitimate participants by increasing their cost of registration.
What is the value created by discouraging it?
A higher density of useful names in the namespace. More services have intuitive and easy-to-remember names.
After a few days of thinking, my solution is to delay the implementation until the "bad" of hoarding occurs.
How do you measure this?
I am a bit perplexed as to why the only measure for owning an ENS name is the willingness to pay X amount for a name and afterwards pay a percentage of X over time based on some formula in order to rent it.
Is this system we are attempting to concoct, really better ultimately than the centralized systems we find fault with?
Why not make the cost of squatting as abhorrent for those that squat on names of supposed high value?
Consideration must be given to the impact these changes might have to those that least can afford the associated costs that might come about with these changes.
Using a metric that is based on the average price of all names is in my opinion not conducive to fairness.
There needs to be a simple percentage rent based on the actual amount of X that ENS name registrants should have to pay in rent.
"adjust initial deed deposit to median domain price": This feature inherently favors those that are willing to purchase high value domains but want cheap rent based on using the minimum bid values of those that bought at the low end. It also punishes those that bought at the low end unfairly.
Why not make the cost of squatting as abhorrent for those that squat on names of supposed high value?
How do you determine who is squatting, and thus should be penalised, though?
You can't assume that someone who paid a lot for a domain is squatting on it; making rent proportional to amount paid only penalises people who own names that were popular at the time the auction happened, even if that popularity is entirely due to their own efforts (for example, MEW, if they'd won myetherwallet.eth).
Well, with popularity of names comes higher cost. Those that bid those astronomical amounts should have no problem renting based on an the commensurate percentages. We should not penalize those that paid minimum bids and/or low bids and make them pay more on a percentage basis, just so others that could afford those astronomical bids feel less pain.
Well, with popularity of names comes higher cost.
Why, though? What purpose does charging more rent serve, here?
Suppose Alice forms a new organisation, and it becomes wildly popular. She even trademarks her organisation's name. ENS launches, and she puts down a lot of money to make sure that squatters don't get her name. Now she's faced with a large yearly bill to keep the name.
Meanwhile, Bob does the same - but he forms his organisation after ENS launches. He picks up the name for the minimum bid, and pays practically nothing to keep it on an ongoing basis.
Why is Bob so much better off than Alice?
After a few days of thinking, my solution is to delay the implementation until the "bad" of hoarding occurs.
How do you measure this?
You need to define goals, a mission statement of what a healthy community looks like. Our founders here in Yankeedoodleland thought they were being clear in making the framework of the country, but it ends in constant fighting to this day, and when caselaw is made by the SCOTUS, it's a random 5-4 decision. If you listen to well formed arguments from opposite sides, it's hard to have an opinion on who is right. I'm fairly politically biased, but my bias exists mostly for simplicity of living everyday life.
To better prevent future misunderstandings, you could make a list, and answer the questions of these possibilities. You've been pretty good about this in the documentation, by hinting at future EIPs like this one, but it's still ambiguous. I think both the how and the why should be defined. Imagine if we had detailed records of the constitutional discussions in the 1700s. We'd have had three civil wars by now, but at least there'd be a clear moral high ground. :-)
I don't see anything bad happening yet. I see potential annoying things happening, but there are a lot of annoying things I deal with in life that are perfectly fair. You seemed surprised at my strategy of modular contracting with multiple deeds. I might be a bad actor and detrimental to the community unintentionally. Who knows? I haven't done anything negatively affecting anyone else yet though. Other people are trying to corner the names as a monopoly, my opinion is that it sucks, but maybe I feel that way just because I'm jealous and didn't do the same thing myself. The people doing this could benefit me personally in the end with their way of doing business. I try to keep an open mind.
Why is Bob so much better off than Alice?
Agree with your logic firstly, but the counterargument though is that life isn't fair, and timing matters a lot. The majority of people active in crypto are quite well off just because of timing, nothing special they did in particular. Just having this conversation over the internet is absurdly ridiculous luck. We were born in this solar system, as humans, at just the right time in development to even discuss such ideas. I'm not ashamed of the luck I've been granted, just as I'm not embarrassed by any misfortune I've had.
Okay... but none of that really explains how you think you would measure when something has become "bad".
We know from prior experience with other naming systems that name squatting will happen, and we know that without some form of renewal system or rent, names will get lost and become permanently unusable. We know of mechanisms that can alleviate them. Why not start with something we know works, and tweak it over time as we learn more?
Agree with your logic firstly, but the counterargument though is that life isn't fair, and timing matters a lot.
"Life isn't fair" is a very poor argument for designing an unfair system.
"Why is Bob so much better off than Alice?" simple because bob locked in his bid for ENS domain at a lower cost. Alice being first at the table and getting the very popular name should understand that there are benefits and drawbacks for bidding such a high value....
The rent should be set and automatically adjusted, ultimately, by some factor inside the ENS system itself. So, all we need is to agree on some percentage Y for the rent. If X is the amount of ether a domain was registered for, then rent will be Y percent of X, this so there is no unfair advantage given to those with high value names, as well as no unfair advantage imposed for those with low value names.
Y should not be based on some unfair average formula as might be proposed.
So, how do we agree on the percentage Y? That would seem to be the unknown.
First, we should defer rental payments until acceptance applications for ENS increase. At this point, apart from the obvious simplification of your address, there is not a strong incentive for either an individual or a small business to have an Ethereum name. It is not used as a cornerstone in any of the up-and-coming identity application (uPort, Civic, Oracleize?). I can't point to any financial applications which would drive a small business to nail down an address. Naming smart contracts is quite useful (SellMyPrism.eth is definitely clearer than the alternatives). So until we have a clear story on why the masses should get an ENS name, I think we should defer charging rent. (P.S. please tell me there is a killer application that I missed)
Second, I believe I am reading that the market (with all its flaws) must fix injustices such as MyEtherWallet.eth. Bring on DomainSale! For a lot of the names, the squatters will sit on their investment until the market and the demand are clear. All in all, they have invested in the names and I think this is fair.
Finally, I believe the fee automatically adjusted for a target parameter is the best suggestion (Target: (total registrations last year) / (total names registered))
Finally, the resolver with the random string is a featurethat will be introduced, yes, but does not exist yet. I would be very keen on its implementation. I hope to do a website which will allow businesses and individuals to buy an Ethereum name for fiat (where I do the auction for them). Allowing them to connect their address to an e-mail would be of benefit.
"Why is Bob so much better off than Alice?" simple because bob locked in his bid for ENS domain at a lower cost. Alice being first at the table and getting the very popular name should understand that there are benefits and drawbacks for bidding such a high value....
Sorry, I don't follow. Take the concrete example of MEW; suppose they had gotten myetherwallet.eth. To do so, they would have had to outbid the squatters for it, and would now be stuck paying a much higher rent under your scheme than if they had started up after ENS launched. What purpose is served by making them pay higher rent because their name became popular before ENS launched?
So, all we need is to agree on some percentage Y for the rent. If X is the amount of ether a domain was registered for, then rent will be Y percent of X, this so there is no unfair advantage given to those with high value names, as well as no unfair advantage imposed for those with low value names.
But why a percentage? What purpose is served by making the rent for a name proportional to the cost of acquiring it?
First, we should defer rental payments until acceptance applications for ENS increase. At this point, apart from the obvious simplification of your address, there is not a strong incentive for either an individual or a small business to have an Ethereum name. It is not used as a cornerstone in any of the up-and-coming identity application (uPort, Civic, Oracleize?). I can't point to any financial applications which would drive a small business to nail down an address. Naming smart contracts is quite useful (SellMyPrism.eth is definitely clearer than the alternatives). So until we have a clear story on why the masses should get an ENS name, I think we should defer charging rent. (P.S. please tell me there is a killer application that I missed)
Not having to enter addresses alone seems like a pretty killer application to me. Aside from that, Aragon are building on top of company.eth, and others have similar plans.
Second, I believe I am reading that the market (with all its flaws) must fix injustices such as MyEtherWallet.eth. Bring on DomainSale! For a lot of the names, the squatters will sit on their investment until the market and the demand are clear. All in all, they have invested in the names and I think this is fair.
My point here is that it shouldn't exacerbate such injustices, which charging proportional rent would do, unless there's a more important value being served by doing so.
Finally, the resolver with the random string is a featurethat will be introduced, yes, but does not exist yet.
I'm not sure what you're referring to here - can you elaborate?
I am not against having some sort of percentage of the value, but I don't think it should carry a lot of weight because a LOT of things that are almost random can influence the price:
So I don't think that small random events like these should define rent forever of a name. I also don't think that the rent should follow some other measure of that particular name's market value, otherwise someone can be punished for creating a valuable brand name for themselves.
So we could create a system that initial name would be factored in temporarily, taken into some average that would decrease over time, but it's an added complexity that I don't see the benefit of.
With the current proposal, initial lock in becomes incentive for releasing the name early, and rent fees are the same for all, depending on some external parameter (at the moment my favorite would be to target constant growth). Seems good enough for me
A Vickrey auction only takes 2 transactions to create a high value, I've seen bids were there were a lot of tiny bids and very few random high bids.
There's a reason for the frequencies in my opinion. Many people with lots of Ether are not willing to sell anything, but want a return on their capital. Investing in the ENS names acts as a "Certificate of Deposit" of sorts to park their money. Yes, the .5% rake for failing to win an auction is brutal if we are talking about large sums, but missing out on appreciation is an even greater risk in the minds of most. The rest are humble small timers hedging there medium portfolios with what they believe in, but maybe don't have strong convictions for the success of the ENS, just an inkling it might be huge.
I think you will see less outrageously expensive ENS properties in the future as viable companies to invest in become common. This is also the reason behind the ICO craze. People believe in crypto and want to put their wealth to work, but there are few enterprises actually profiting in crypto now relative to the outstanding float.
Some legitimate Ethereum business names went for a very high value and are owed by their trademark owners so a high tax would not add anything of value to the system
Since the core team is public, you are subject to lawsuits from unhappy trademark holders. It's going to be a delicate walk to the success of the third web. I don't think scammers should ever be rewarded. That's why I'm participating exclusively in Ethereum, and not Classic. I value the ideology to take positive action against bad actors when possible. I agree with your position completely here.
I've been thinking...Why not make domains over a certain number of letters permanent without fees, and keep premium domains active? You could also offer instant registration to longtail domains for a one time fee benefiting maintenance costs of the ENS. There is a good reason I found for this when hashing out one idea.
My Idea:
I want to to distribute original art that permanently is stamped with an ENS domain that brings up a swarm page documenting what it is, who made it, and facilitates trading of it through the page.
Two points why permanent domains are needed:
1)
Say I own woodydeckartist.eth for example. I want to keep that domain for information about me for as long as there is interest in what I did, and supporters want to serve my swarm files. (I assume there will be permanent storage service for a fee in the future.) Nobody else should ever be associated with this domain. My finely built reputation of selling gaudy schlock to old people on QVC should never be subject to the whims of future ENS maintainers who allow my name to be reassigned.
2)
Now with the works I create during my lifetime, I want to profit from them, and I want my children to profit from them when I die, and so on. How I do this is a bit complicated, but in line with current California law, which states that the sale of an original work of art for a living artist must result in the payment of a 5% royalty to the creator for the sale, I will generate a contract that forces anyone who transfers ownership of the original artwork to do so on the blockchain, and exclusively through my contract.
Since I am a living artist, hopefully for the foreseeable future, I will continue to create various works. It would be unwise, and quickly hit the gas limit if I managed all my sales, resales, and ownership changes with one contract. I need to modularize it. I also have to be wary of contract breaking updates to ethereum in the near future. I may need to fork contracts and update them so both the owners of my work and I am protect. This situation is exactly why the ENS was created, so the network can scale and evolve. If you take away permanence, you may end up with a situation where contracts intended for the long term break without the parties being aware that it broke, especially if you are inheriting things other contracts also on the ENS.
I would want every original artwork to have its own contract that I will put on a subdomain of woodydeckartist.eth. (e.g. trumpsrelectioncelebration2020.woodydeckartist.eth -- The title of the artwork as the subdomain.). Each original work or print will be traded in real life on its very own contract because they are just fancy real life tokens. The artwork would be impossible to sell without doing it on the blockchain, much like an ENS domain.
If I just used contract addresses that were hashes, again, I couldn't fork them and improve my process. I'd be stuck in 2018 proceses. The ENS solves this issues, but the ENS shouldn't introduce its own complications to all of the other problems this will face. The ENS is free to fork and evolve itself, upping the permanent registration price to be in line with demand, but grandfathering those who registered before, honoring its contract.
I'm not sure what the optimal length of instant registrations should start at, but my example is 15 characters, so that seems pretty fair for something permanent. If it gets clogged, increasing the length seems reasonable. There aren't many popular DNS domains that are 15 or more characters.
Finally, I think by vote the ENS should be able to permanently assign domains to those who apply by democratic vote, and a decision should be irrevocable. This would be rare, but seems needed. Let's say the United States of America wants to use ustreasury.eth exclusively to collect taxes. It would be horrible for the integrity of ethereum to have that domain lost in the future to an incompetent American government cubicle drone. War might result in the US losing its ability to collect taxes.
The US government also shouldn't have to risk one democratic body voting for it, and then as soon as it elects a president people in the world don't like, that same body changes its mind and allows the primary tax collection mechanism of the US Government to be hijacked by a group of geeky thugs posing as altruistic world saviors.
By that same line of thought, the US Government shouldn't be able to bully another country by hijacking this same process, say if Vanuatu acquires ICBMs and starts threatening Mauritania because it has a religion that calls for death to all antipodes (bastards).
Working in a blockchain business who lost our ENS bid to an entity collecting names I want to stress the fact that ENS as of right now is broken. It's not OK to have individuals "investing" in vast amount of names just to sit on it while those name could be used out there and drive adoption.
There has been no activity on this issue for two months. It will be closed in a week if no further activity occurs. If you would like to move this EIP forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.
This issue was closed due to inactivity. If you are still pursuing it, feel free to reopen it and respond to any feedback or request a review in a comment.
Preamble
Goal
This is the third (and for now, last) on a series of improvement proposals on ENS that I'd like to see a public discussion.
Owning a name means you are holding a piece of a limited resource of unknown future value over an indeterminate amount of time. The goal of having some sort of recurring fee for continuous ownership is:
More importantly, the goal is not a rent seeking behavior for a the profit of any specific group.
Why not a fixed amount?
"Just charge $5 dollars per year. That seems good enough." - is the usually the first instinct from someone used to the traditional domain business. This isn't appropriate here, first because of the lack of a stable currency native to the system, but most importantly because any arbitrary value will be picked based on some local mindset that can limit what a name is used for. An arbitrary amount can be at the same time too cheap for some people to encourage squatting in some countries, while being overly expensive to be afforded in other places.
The rent should be set and automatically adjusted, ultimately, by some factor inside the ENS system itself.
Initial concepts: adjust initial deed deposit to median domain price
One of the initial proposed ideas was to adjust the bid deposit up or down according to the average going price of a domain. So if the average ether price of a new domain doubled from one year to the next, the owner would be required to also double their deposit. If the price of the average domain halved, the owner would be able to retrieve from their deposit an amount lesser than half (to encourage releasing). This would force domain owners to continuously reassess their domains and to make sure that domain reselling was only profitable for those able to outperform the average of the market, or, by definition, half the market.
This technique has some issues, the bigger being the fact that there is not any way to measure the average/median value of all domains, without forcing all sales to go through an "official" secondary market contract. The price of new domains was an expected proxy, but since most new domains go undisputed for minimum price, that measure is also not very useful, and could be distorted by creating dummy disputes.
Fee automatically adjusted for a target parameter
The proposal would be based on Vlad Zamfir's suggestion of making a flat fee for all domains, which would be automatically adjusted up or down based on some internal target that would in turn be adjusted by humans.
Target: (total deregistrations last year) / (total registrations last year)
Vlad's initial suggestion would be to target a number of deregistrations as a percentage of registrations per year. If we assume that a certain amount of those will be regretted later, then a percentage of "refunds" would seem like a good policy. The issue is that the relative amount of deregistrations can be manipulated by buyers by registering extra dummy domains they have no intention of keeping. The profitability of that method can be calculated by registers: the cost of buying an extra dummy name (D) for a year for each actual name (N) you want is given by N*R + D*R. If increasing D can decrease the rent (R) then it's easy to calculate where the sweet spot is and then to coordinate with other name registrars to work together towards that goal.
Target: (total registrations last year) / (total names registered)
A logical conclusion would be to subtract deregistrations from the registrations total, meaning that registering something to deregister next year would not affect the calculation. This would mean that in practice the target would be the amount of registrations, either in absolute terms or, more logically, in relative terms of amounts of names registered.
If .eth was an actual TLD, then at 180k names registered it would sit just underneath .kiwi: what should be a healthy growth rate? At a target of 25% new names per year, it would take 3-4 years to register twice the amount, and 7-8 years to reach a million names. A more modest target of 10% per year would take 7-8 years to double but might be more desirable.
Target: (current rate of growth) / (average rate of growth last year)
update: adding this suggestion from @djrtwo: Setting any target rate of growth can be arbitrary and prone to a lot of human politics (should we increase the target? Should we not?). An alternative would be to instead target a second order: the rate of change of the rate of growth. So upon launch, the rate of growth, set by
(total registrations last year) / (total names registered)
would be hard coded, and rent would be adjusted according to how much that growth was keeping constant. If growth speed is increasing, the rent goes up, if growth is decelerating, the rent tends to 0. The average percentage growth is recalculated at a moving average, so that after a year or so of higher or lower rate of growth, that becomes the new normal.Implementation
1) Every two week period, add all registrations and subtract all releases. 2) At the end of each period, if the resulting F is larger than a target percent of the total amount of names (suggested: 0.862% biweekly, which amounts to 25% yearly) then slightly increase the rent fee, in proportion to how much it overshoot the target 3) If F is smaller than the target, slightly decrease the fee
This means that if ENS names are registered at a rate of less than 25% per year, then the fee would tend to 0 over time.
Over the last 24 hours, about 200 names were finalized (and twice as many bids were placed), which if extrapolated over a 2 week period would be at about twice that target. Interestingly enough, the amount of names registered per week remained a constant for 2 weeks after the soft launch ended, which might indicate it's a better metric to use than ether locked or deregistrations.
Where does the rent goes?
Not necessarily a rent needs to go anywhere. A rent could be calculated live and be set as simply the amount of money that remains locked forever in a deed. If the "rent owed" is superior to the amount held in a deed, then it is tagged as insolvent, which start a grace period of one year and if no more is deposited during that time, the name is release and the deed is self destructed (which is technically the only "true" to actually remove ether from the system). Another option would be to allow periodic transactions that would move the fee to a pool which would be used to incentivize other behaviors, like the "revealing" pools or other to pay bots that do menial and scheduled tasks like cleaning up old bids, recalculating rent fees at every period turn, making sure that open bids are finalized or that insolvent names are discovered, etc.
Possible issues
Conclusion
Some sort of utility rent is desirable, specially one that doesn't benefit any particular entity, but is just a deterrent on holding and not doing anything with names. Taxing amount of growth of name ownership year over year is a good way to prevent excessive gold rush and rationalizing usage of the resource, while keeping it very cheap if it growth is under-target.