Hi knightArmor,
Wow, that was a long post. Huge thanks for taking the time to type that, and apologies for my lateness in replying. I'll try to respond to your main points.
knightArmor wrote:1. Namecoin has been developed to be decentralized. Lets try 100% to keep it that way. It will prevent any corruption that can occur when individuals or entities control a large part of the network. Mining power must be always decentralized and distributed at all times.
Agreed. I do not want a situation where single entities can be subjected to a government order (or any other order) that might harm Namecoin. Right now the situation with F2Pool holding a majority of hashrate is the most well-publicized example (OneName likes to point to this), but the problem extends to Bitcoin as well (since a majority of Bitcoin hashrate is under Chinese jurisdiction).
knightArmor wrote:2. Namecoins governing principles must be built into the client itself and not governed by any individual or entity. This can be done with a built in voting system in the client.
Ever heard the phrase "Democracy is 5 wolves and a sheep voting on dinner."? Voting is acceptable under some circumstances, but not in cases where a majority is violating the rights of a minority.
knightArmor wrote:3. Squatting must be left to market forces to determine the outcome of who will end up with the disputed name. This can be done with a name auction system built into the client.
An auction system could become a method of censorship. The entities with the most
money (governments and large corporations) are the very people whose oppressive acts Namecoin is trying to counter.
knightArmor wrote:4. Name registration and renewal fees need to be determined by the market and cannot be set by any group of individuals.
Agree in principle. The details are tricky to work out.
knightArmor wrote:Now lets consider each matter. If we were to allow mining power to move into the hands of a few, we all know the problems that come with it. Maybe moving to proof of stake might not be a bad idea.
Proof of stake has its own problems which are not really solved yet.
knightArmor wrote:The cost of registering a new name should be set at an amount that varies according to what it costs the network of miners to bring that name into blockchain. In order to achieve this, let us give an example. Assuming an individual or entity wants to register a name and that name is broadcast. It should first be made aware to the miners that someone wants to register a name and each miner should relay within the client to that person how much they will charge to process that name. A registration cost can be reached by looking at what price each miner is asking. Each miner must not be able to see what the other will charge.
Let's say I'm a miner. What prevents me from taking the role of the person registering a name, to determine what my competitors will charge? Also what prevents me from looking through recent blocks to see what my competitors have charged in the past?
knightArmor wrote:In this way the person can take the offer or reject which ones he does not want but at the same time the miners can cover cost plus profit, because they need to survive in order for the network to survive. This will motivate more miners to the network and prevent some monkey registering a whole bang lot of names at a monkey low fee that is static.
What prevents a miner from registering lots of names for
free?
knightArmor wrote:At the same time the person or entity registering the name, must not be revealed to the network as this will definitely result in, bribery, corruption, fraud, extortion, collusion, exclusion etc etc etc etc… and the list goes on.
Anonymity in blockchains is tricky and is an area of active research. The two top contenders are probably Monero and Zerocash. Monero has a poor anonymity set, and Zerocash has trusted setup and some exotic crypto assumptions. But I agree in principle that anonymity is a desirable feature.
knightArmor wrote:If at a later stage if one wants to buy or sell a specific name then they can do so within the client and must pay for it within the client using only the networks currency which is namecoins. Name renewal fees must work the same way, whereby the fees cater for miners cost plus profit. Miners must be able to indicate to the individual wanting to renew a name, how much they will charge. However miners must not be able to tell which name the person wants to renew, as this will result in unrealistic demands by miners.
How do you propose allowing the blockchain validation rules to prevent name collisions if the name isn't revealed? You could choose to only reveal a hash of the name, but this would stay static over time and a miner could recognize well-known hashes (this would still be an improvement though). A salted hash would hide the true hash of the name, but I can't think of any way to prevent salted hashes that have the same true hash, and this would also make lookups more tricky (you could possibly do lookups if you used some external storage system like a DHT to look up the salts).
knightArmor wrote:Now on the matter of transaction processing fees for similar services such as transfer of coins or names could be done in a similar way as this again gives more miners a reason to participate, and profit. We need more miners to keep the network healthy and to this this we need to give the miners profitable reasons to participate. Here again the name of the entity or person and the name being transferred must not be revealed to avoid all of the above mentioned negatives – bribery etc etc. What is important here is that transactions must be kept private/anonymous for both sides – miners and network users. No network will ever function smooth, corrupt free and bribe free if any individual has knowledge of the opposite transacting party and it’s transaction worth. There will always be attempts to influence the outcome if this is the case. It is crucial that all is done anonymously within the client for all parties. Implement it this way and you will watch namecoin grow.
Agree in principle. As I stated above, achieving these objectives is tricky, and in the case of hiding name hashes, maybe impossible (at least, I can't think of a way to do it).
knightArmor wrote:Remember that transfer of names from one party to another must have a built in release that results in both buyer and seller getting what they want. For example the name can be released into a time limited window which goes back to the owner if the buyer does not release payment into the same time limted window within the client. It must be an automatic escrow built within the client for the two parties involved. No! No! external parties or payment must be involved. Then only we will see a very efficient and vibrant ecosystem.
Atomic name trading should do what you want here, no?
knightArmor wrote:Now on the matter of how the projects of namecoin, take shape and direction. As we see that bitcoin is going through this wrestling match phase and we all know how messy it is. In the end some will feel like they been taken to the undertakers. To avoid the undertakers the best way forward is to have a built in voting system that gives all namecoin holders a chance to choose the outcome of any decision. Here again everything must be kept anonymous. Bribery corruption extortion etc gets eliminated.
The btc-e exchange holds something like 1/3 of all NMC that were ever mined. This is slightly better than F2Pool's 60% of mining hashrate, but still not a good thing to place significant rule-making control in.
knightArmor wrote:Now on the matter of name squatting. Name squatting here again must also be left to market forces of supply and demand. If one entity holds a name and the other entity wants it then there must be a built in communication system in the client whereby the prospective buyer can contact the seller. Here again the different entities names must not be revealed. To let the prospective buyer contact the prospective seller, there must be a one click button whereby the buyer can send a message to the possible seller. The seller must ensure when the name is registered or renewed also provide a contact email address that must be stored in his wallet/client. It must not be possible for the buyer or seller to see each others email, just a contact button. The email address and message must always be encrypted.
I do not understand what you expect to accomplish with an encrypted email address.
knightArmor wrote:Another very very important factor is that the message that must be allowed to be sent to any party, must only come from a drop down box of messages. For example one message could read like this: “Hi I am interested in buying x name from you.” In this way spam can be eliminated and it will keep the network free of junk. The drop down box of sentences will also eliminate bribery,corruption, extortion etc etc etc….This way the transaction outcome will not be influenced unduly. However email addresses must never be revealed at all cost if not then all communication must only take place within the client. There must also be a transaction fee for sending the emails or messages within the client, and this will reduce spam.
If I'm selling a name that I own to someone else, I will probably ask what they plan to do with it. For example, if I own a name that is associated with a well-known entity that I like, I will probably give it away for
free to that entity, but I will probably not want to sell it at any price to someone else. That seems to not work very well with your "drop-down box of messages".
knightArmor wrote:As for the matter of who is the rightfull owner of any domain name, we need to look at it as a matter of who bought/registered the name first is entitled to ownership and if he/she has to transfer it to another person or entity then he or she must be entitled to compensation. And if he/she wants to sell then he/she must not be forced into the transaction and must not be punished for not selling. If any of the namecoin miners, network operators, buyers, sellers, etc etc do have an influence on the sale, of the domain name, then they could also land in hot water with law by influencing the outcome, so its best for transactions to take place in client, anonymous and decentralized. We ask, Should any individual third party, be allowed to practically hand over any .bit domain to whom he sees as the owner he wants it to be, when at the very start of namecoin it was the original buyers of those domain names, that gave namecoin support? Namecoin was supported by those very same buyers and not by all those companies and institutions who did not want to participate in the purchase of those domains, pay the fee, support the miners, create huge network activity. Now that namecoin seems to have a future then those buyers must just handover those domain names to others without compensation? So it seems that these companies/entites were just waiting for everyone else to do all the work and then lay claim to names when it has value.
Agree that first-come-first-serve is the only acceptable rule for determining who owns a name. I do think that the economic incentives should disincentivise a single entity from owning vast numbers of names that they don't intend to use. Taking away names from people is not an acceptable method of producing such incentives.
knightArmor wrote:All those companies that want the names they want, then the best is to have a decentralized anonymous auction system in the client. Otherwise namecoin is going to become a very huge battlefield with each individual/ entity taking each other on in court and guess what? Yes!!! Namecoin, its miners etc etc in the middle!! A very very important matter is that domain name owners identities must never be revealed in any way within the namecoin client, because some domain owners might be using domains to rise up against abusive,dangerous,oppressive and unfair people,entities,governments and regimes. Do you want .bit domain name holders to be tracked down and hunted by all these groups, for standing up to them for what is right, non abusive, fair, safe and non oppressive.
Agree mostly. I think a decentralized name auction system might be best implemented as an external tool rather than part of the Namecoin client. Bitmarkets might be a good contender. I used to like OpenBazaar but their privacy policies have gone down the shitter as of late, probably because of demands from their funders.
knightArmor wrote:Another important factor to consider is this. If all the names are eventually handed over easily without an auction system to those entites that own the .com versions then let us consider this: Will it mean that we have a decentralized new world order? No!! NO!!! No!!!. Simply put, the current world order has too many corrupt entities and that very same corrupt world order will come to live in namecoin!!. Whoever wants whatever domain name, then they must pay for it. Let a decentralized anonymous in client name auction decide that. We should let the decentralized free market nature of namecoin decide.
Consider that those corrupt entities also have a lot of
money. Usually much more than the freedom fighters whom those corrupt entities oppress.
knightArmor wrote:For miners etc etc to take decisions on who gets google.bit or facebook.bit is only going to lead to a minefield of legal implications and this will only result in namecoin becoming more of a focus for government regulators and kill the whole decentralized nature of the coin. Think of all the bribery, corruption, extortion that will take place if any entity can influence the outcome. Names should just be traded decentrally and anonymous within the namecoin client using an auction system whereby the seller puts his name up for sale at his own price and let the market forces determine the outcome. The seller should be allowed to set a reserve price if the bids are not at prices what he/she wants. The auction should have a time limit, thereafter he can reauction if need be. Here again both buyer and seller must commit name and namecoins before it is released to any of them. If one has not commited then he cannot take transfer of the opposite parties asset. The auction must also result in the winning bidder paying a percentage fee of the winning bid price to the network operators. This is very important here again to motivate network operators/miners to participate.
Paying a fee dependent on the sale price would be potentially a privacy leak.
knightArmor wrote:Now with all points mentioned here, we want to sum it up all in few words. Everything will work out well if built on the foundations of both buyer and seller transacting in a decentralized, anonymous, in client, encrypted namecoin network. Remember, free markets work best. Well if namecoin developers don’t consider these points mentioned above then we have on the horizon, developers who are going to fork namecoin, when they see the legal mess that the current namecoin, its miners/developers etc etc can end up with.
I agree with your main points. I have minor quibbles with some details, but I think we're mostly on the same side here.