Name Squatting once again...

phelix
Posts: 1634
Joined: Thu Aug 18, 2011 6:59 am

Re: Name Squatting once again...

Post by phelix »

Thank you very much for your suggestions. It is difficult to answer as there are so many topics at once and of a bit general nature. You might get better answers if you split things up into separate, maybe more specific posts. For now I can say it might be very difficult to properly implement some of these.
nx.bit - some namecoin stats
nf.bit - shortcut to this forum

biolizard89
Posts: 2001
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Name Squatting once again...

Post by biolizard89 »

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.
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

knightArmor
Posts: 7
Joined: Mon Sep 01, 2014 2:48 pm

Re: Name Squatting once again...

Post by knightArmor »

Hi there, My reply to Biolizards reply


Biolizard: 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.



Biolizard: 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.



Biolizard: 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.

ARMOR Feedback: Well lets say that a majority holder has a high investment in the coin and in this case namecoin then they will be wise not to harm the value of that investment. It is similar to the principal of proof of stake where one tries to take full control.Maybe limit the number of votes per wallet, per ip or something in that line. Limits can always be placed on anything.


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.



Biolizard: 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.

ARMOR Feedback: In the case of governments and corps trying to censor any registered name can work to the benefit of the name holder who can auction the name for a very high price tag or just keep it and use it usefully. If they want it then they must pay the high price for it. This discourages them from abusing the namecoin ecosystem.

knightArmor wrote:
4. Name registration and renewal fees need to be determined by the market and cannot be set by any group of individuals.



Biolizard: Agree in principle. The details are tricky to work out.

ARMOR Feedback: Tricky to work out but, a message to all namecoin devs: pull out your bag of tricks and lets change things..

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.



Biolizard: Proof of stake has its own problems which are not really solved yet.

ARMOR Feedback: Yeah but less resource intensive than mining. We got two Chinese miners holding bulk of the mining power of bitcoin: bad bad bad. POS is being much talked about.

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.



Biolizard: 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?

ARMOR Feedback: After considerable thought on your reply I have to believe that it would be better for each miner to be able to see what each miner is charging to register the name, as this is going to foster healthy competition between them. Healthy competition will bring about a healthy network.

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.



Biolizard: What prevents a miner from registering lots of names for free?

ARMOR Feedback: A miner must not just be able to go on a registration spree. That is why I said that the prospective name must be pre broadcast to get competing registrars into registering the name, and create a competitive environment. I have seen that any system that has a competitive environment always wins out in the end. A miner must not be allowed to do that.

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.



Biolizard: 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.

ARMOR Feedback : COOL

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.



Biolizard: 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).

ARMOR Feedback: Lets bring out our bag of dev tricks. Blockchains are still evolving.

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.



Biolizard: 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).

ARMOR Feedback : Lets be positive, I am sure we will find a solution

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.



Biolizard: Atomic name trading should do what you want here, no?

ARMOR Feedback: Correct, we just need to fund the development further.

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.



Biolizard: 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.

ARMOR Feedback: We need to place a control within the client for very large holders. Remember too much power corrupts. We need it distributed. This will discourage the power hungry

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.



Biolizard: I do not understand what you expect to accomplish with an encrypted email address.

ARMOR Feedback: As with bitmessage, it was created to prevent evesdropping

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.



Biolizard: 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".

ARMOR Feedback: I understand. The namecoin client must have options within it to either sell, auction, deregister or give the domain away.

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.



Biolizard: 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.

ARMOR Feedback : Thank you. All my thought that went into these various development issues we have with namecoin was done with a great amount of respect for all those that have contributed to the rise of namecoin. From the very Satoshi to the Devs, exchanges, miners, marketers, buyers of namecoin and many more. The issues I mentioned here and the possible solutions I proposed have been done with great care not to be greedy, biased, selfish, manipulating and so on. It’s all about growing this ecosystem.

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.



Biolizard: 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.

ARMOR Feedback : Glad you agree. I am currently funding other projects and namecoin is very soon on my radar to be funded, so that we can see it take off.

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.



Biolizard: Consider that those corrupt entities also have a lot of money. Usually much more than the freedom fighters whom those corrupt entities oppress.

ARMOR Feedback: Yes, they have, but lets develop namecoin further and ensure that they don’t take advantage of namecoin.

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.



Biolizard: Paying a fee dependent on the sale price would be potentially a privacy leak.

ARMOR Feedback: I know that this is so but here I am currently looking into the solution of a coin mixing script.

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.



Biolizard: I agree with your main points. I have minor quibbles with some details, but I think we're mostly on the same side here.

ARMOR Feedback: COOL to have your feedback.

haiqu
Posts: 23
Joined: Thu Jan 21, 2016 8:04 am
os: windows

Re: Name Squatting once again...

Post by haiqu »

There's a simple fix, although I don't know if it's practical. Simply make the domain available again if it doesn't resolve to an actual website within, say, 3 months.

And single empty placeholder pages don't count.

biolizard89
Posts: 2001
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Name Squatting once again...

Post by biolizard89 »

knightArmor wrote:Hi there, My reply to Biolizards reply


Biolizard: 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.



Biolizard: 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.



Biolizard: 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.

ARMOR Feedback: Well lets say that a majority holder has a high investment in the coin and in this case namecoin then they will be wise not to harm the value of that investment. It is similar to the principal of proof of stake where one tries to take full control.Maybe limit the number of votes per wallet, per ip or something in that line. Limits can always be placed on anything.
It's not clear to me how a decentralized consensus system would be able to meaningfully consider things like wallet count or IP addresses. I suspect this is inherently impossible, but then again Greg Maxwell proved 10 years before Bitcoin came out that Bitcoin was impossible, so let's just say that if someone finds a way, I'll happily evaluate it. Weighting by currency held is feasible, but given that BTC-e has about a third of all NMC mined, it's not clear to me whether this is a good idea.
knightArmor wrote: 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.



Biolizard: 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.

ARMOR Feedback: In the case of governments and corps trying to censor any registered name can work to the benefit of the name holder who can auction the name for a very high price tag or just keep it and use it usefully. If they want it then they must pay the high price for it. This discourages them from abusing the namecoin ecosystem.
I certainly see nothing wrong with a name owner auctioning it off. It's their name, they can sell it as they wish.
knightArmor wrote: knightArmor wrote:
4. Name registration and renewal fees need to be determined by the market and cannot be set by any group of individuals.



Biolizard: Agree in principle. The details are tricky to work out.

ARMOR Feedback: Tricky to work out but, a message to all namecoin devs: pull out your bag of tricks and lets change things..
It would be great to have a more organized list of the various proposals that have been made, and to get more peer review of them. The more eyes on the proposals, the better chance we'll find one that we are confident is safe and effective.
knightArmor wrote: 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.



Biolizard: Proof of stake has its own problems which are not really solved yet.

ARMOR Feedback: Yeah but less resource intensive than mining. We got two Chinese miners holding bulk of the mining power of bitcoin: bad bad bad. POS is being much talked about.
Two other suggestions to decentralize mining are PoW algorithms like Cuckoo Cycle (which are inherently resistant to ASICs since they're basically equivalent to ASIC algos where the ASIC devices are DRAM chips), and zk-SNARK PoW (which is inherently resistant to pooled mining). The drawbacks are that Cuckoo Cycle doesn't have a formal security reduction, and zk-SNARKs rely on a number of new security assumptions. Also zk-SNARK mining would probably require variable-difficulty PoW, which is its own research area. The good news is that there's a lot of active research in these areas, since this is of interest to the cryptocurrency community generally. It is my hope that we will be able to adopt advances which improve mining decentralization.
knightArmor wrote: 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.



Biolizard: 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?

ARMOR Feedback: After considerable thought on your reply I have to believe that it would be better for each miner to be able to see what each miner is charging to register the name, as this is going to foster healthy competition between them. Healthy competition will bring about a healthy network.

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.



Biolizard: What prevents a miner from registering lots of names for free?

ARMOR Feedback: A miner must not just be able to go on a registration spree. That is why I said that the prospective name must be pre broadcast to get competing registrars into registering the name, and create a competitive environment. I have seen that any system that has a competitive environment always wins out in the end. A miner must not be allowed to do that.

That would be awesome -- the question is how it would work. :)
knightArmor wrote: 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.



Biolizard: 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.

ARMOR Feedback : COOL

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.



Biolizard: 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).

ARMOR Feedback: Lets bring out our bag of dev tricks. Blockchains are still evolving.

Agreed. I've spent a lot of time thinking about this problem, mainly because it seems that for Bitcoin this is a lot easier than for us. (Bitcoin has a lot of fungibility tricks, like ECDH addresses, confidential values, CoinJoin, and Zerocash, but these all assume that the recipient of the transaction knows some secret, which doesn't really work for Namecoin unless the name identifier itself is the secret, in which case the miners can just maintain a list of names they want to check for.) It seems plausible that some interesting combination of zk-SNARKs and salted hashes might be able to perform reasonably well here, but it may depend heavily on the threat model. More research here would be awesome.
knightArmor wrote: 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.



Biolizard: 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).

ARMOR Feedback : Lets be positive, I am sure we will find a solution
I'd love to see a solution to this. I don't know if it's possible, but I certainly hope it is. There are a lot of very smart people out there, hopefully one of them will either prove it possible or prove it impossible.
knightArmor wrote: 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.



Biolizard: Atomic name trading should do what you want here, no?

ARMOR Feedback: Correct, we just need to fund the development further.

I'd love to see further development of this. Once we get the Namecoin-Qt GUI fully ported (Brand0 is working on this), I would certainly like to see a name trading GUI built into Namecoin-Qt. I'd also love to work with marketplace developers in this area. OpenBazaar looked like a good option initially, but due to recent changes in their project, I no longer consider them as a good fit. If a decentralized anonymous marketplace comes along, it would be great to integrate with it. A centralized web-based marketplace that uses atomic trades would also be an improvement over the status quo. I'm not sure what the business model of such a web-based marketplace would be, but then again I'm not a business major, so maybe someone will innovate here.
knightArmor wrote: 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.



Biolizard: 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.

ARMOR Feedback: We need to place a control within the client for very large holders. Remember too much power corrupts. We need it distributed. This will discourage the power hungry

It's not clear to me exactly how this would be done, but having a decentralized exchange would be a nice step in this direction. I believe there is active work being done on this (e.g. atomic cross-chain trades).
knightArmor wrote: 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.



Biolizard: I do not understand what you expect to accomplish with an encrypted email address.

ARMOR Feedback: As with bitmessage, it was created to prevent evesdropping
All Bitmessage addresses are public. That's how you find the public key associated with an address. The privacy of Bitmessage comes from nonlinkability between addresses, encryption of messages, and nonlinkability of messages with addresses, not by hiding the addresses themselves.
knightArmor wrote: 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.



Biolizard: 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".

ARMOR Feedback: I understand. The namecoin client must have options within it to either sell, auction, deregister or give the domain away.

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.



Biolizard: 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.

ARMOR Feedback : Thank you. All my thought that went into these various development issues we have with namecoin was done with a great amount of respect for all those that have contributed to the rise of namecoin. From the very Satoshi to the Devs, exchanges, miners, marketers, buyers of namecoin and many more. The issues I mentioned here and the possible solutions I proposed have been done with great care not to be greedy, biased, selfish, manipulating and so on. It’s all about growing this ecosystem.

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.



Biolizard: 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.

ARMOR Feedback : Glad you agree. I am currently funding other projects and namecoin is very soon on my radar to be funded, so that we can see it take off.

Thank you for your support. :) I hope you understand that more than one time someone has announced intentions to fund us and then not followed through, so I hope you don't take any offense when I say "That's awesome -- I hope it happens."
knightArmor wrote: 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.



Biolizard: Consider that those corrupt entities also have a lot of money. Usually much more than the freedom fighters whom those corrupt entities oppress.

ARMOR Feedback: Yes, they have, but lets develop namecoin further and ensure that they don’t take advantage of namecoin.

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.



Biolizard: Paying a fee dependent on the sale price would be potentially a privacy leak.

ARMOR Feedback: I know that this is so but here I am currently looking into the solution of a coin mixing script.

Well, this is less of a problem if names themselves are hidden from miners, since knowing that a name sold today for $5000 is a lot less revealing than knowing that d/wikileaks sold today for $5000. Which would be great if it's possible.
knightArmor wrote: 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.



Biolizard: I agree with your main points. I have minor quibbles with some details, but I think we're mostly on the same side here.

ARMOR Feedback: COOL to have your feedback.
Great to have your feedback as well. :)
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

Post Reply