Giving a Percentage of Name Fees to Miners

Post Reply
indolering
Posts: 801
Joined: Sun Aug 18, 2013 8:26 pm
os: mac

Giving a Percentage of Name Fees to Miners

Post by indolering »

I've recently been concerned about what happens after block rewards run out. We aren't Bitcoin, so our transaction volume will never be high enough to provide a decent security margin. And even if we assume 0 additional overhead to merge-mine Namecoin, we have to defend against attacks on our own. For example, someone could threaten to DDoS any miner who processes name transactions.

The argument against giving name fees to miners is that they can then purchase domains at a discount which would eventually allow them to setup a discount registrar. I'm not really afraid of a centralized registrar offering discount domains, but miners could use the discount as a way to pump up their overall name fee volume. However, there are ways to mitigate this:

* Give a only a percentage of the name fee.
* Distribute the fee over 2 sequential blocks.
* Delay distribution until the name expires.

The first measure prevents miners from purchasing domains for free and limits the profitability of any arbitrage they can perform. This is how it would break down with 50% fee destruction and a 25% overall discount.

* $20: $10 to miner, 25% discount: $5
* $10: $5 to miner, 25% discount: $2.5
* $5: $2.5 to miner, 25% discount: $1.25
* $1: $0.5 to miner, 25% discount: $0.25

Distributing the fee across sequential blocks reduces the profitability of selling a single domain while ensuring that the average profit remains the same. The incentive for the miner to sell discount domains is limited to the amount of profit they received from the very first block, so cutting the fee they receive for that first block in half would reduce the incentive in half as well. Of course, reducing the profit from this very first block also reduces the incentive to process name transactions, so we probably want to limit the amount to 2-3 blocks.

When combined with fee destruction, spreading the fee over 2 blocks would reduce the maximum potential discount per-name from 50% to 25%. Assuming some overhead, the likely largest overall discount they could give would be 12.5%. This is how the numbers line up:

* $20: $10 to miner, 12.5% discount: $2.5
* $10: $5 to miner, 12.5% discount: $1.25
* $5: $2.5 to miner, 12.5% discount: $0.63
* $1: $0.5 to miner, 12.5% discount: $0.13

Delaying distribution of all of the funds over a long period of time would introduce too much uncertainty into the profitability of the mining operation itself. However, we could divide up the fee so that a certain percentage would show up as a bonus after a year.

When used in combination, these techniques would allow us to increase the profitability of mining Namecoin over the long term while limiting the discount miners can offer.

Update
So I was thinking about the distribution of the fee over sequential blocks and realized that miners could game the system by including only a single name transaction but still receive the spill-over from previous blocks. Instead of distributing it over the next two sequential blocks, we could base it on the number of name operations within those sequential blocks.

Update
Added discount levels for sequential distribution of fees.
DNS is much more than a key->value datastore.

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

Re: Giving a Percentage of Name Fees to Miners

Post by biolizard89 »

I generally think this is a bad idea, and that you are greatly underestimating the threat of miners offering discounted names. However, I'm busy this week, so I will have to get back to you next Sunday.
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

domob
Posts: 1129
Joined: Mon Jun 24, 2013 11:27 am
Contact:

Re: Giving a Percentage of Name Fees to Miners

Post by domob »

I also think this is a bad idea. Name fees should be destroyed and not given to miners. Besides the negatives of giving them discounts, miners are already those network participants that actually earn some reward for their services. Merge mining is not really that hard to do (once you've set it up), so I don't think they need even more than the block reward as incentives. On the other hand, everyone else (e. g., full nodes) get nothing for their service. By destroying the name fee, we have at least the minimal effect of increasing the worth of all coins in existence in relation.

(But I realise this is a weak argument - the better one is simply because giving fees to miners leads to new attack vectors by which miners may be able to game the system.)
BTC: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS
Use your Namecoin identity as OpenID: https://nameid.org/

indolering
Posts: 801
Joined: Sun Aug 18, 2013 8:26 pm
os: mac

Re: Giving a Percentage of Name Fees to Miners

Post by indolering »

domob wrote:I also think this is a bad idea. Name fees should be destroyed and not given to miners. Besides the negatives of giving them discounts, miners are already those network participants that actually earn some reward for their services. Merge mining is not really that hard to do (once you've set it up), so I don't think they need even more than the block reward as incentives. On the other hand, everyone else (e. g., full nodes) get nothing for their service. By destroying the name fee, we have at least the minimal effect of increasing the worth of all coins in existence in relation.
I'm not saying we shouldn't destroy some of the name fee, but that we need to divert as much as possible to miners if we want to defend our security margin. You claim that it's easy to merge-mine Namecoin, but we have a serious problem with miner participation as-is. How do you plan on getting more miners mining Namecoin?
domob wrote: (But I realise this is a weak argument - the better one is simply because giving fees to miners leads to new attack vectors by which miners may be able to game the system.)
I didn't say it's not a tricky problem, but there are lots of hard problems we need to solve in order for Namecoin to be successful.
DNS is much more than a key->value datastore.

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

Re: Giving a Percentage of Name Fees to Miners

Post by biolizard89 »

indolering wrote:
domob wrote:I also think this is a bad idea. Name fees should be destroyed and not given to miners. Besides the negatives of giving them discounts, miners are already those network participants that actually earn some reward for their services. Merge mining is not really that hard to do (once you've set it up), so I don't think they need even more than the block reward as incentives. On the other hand, everyone else (e. g., full nodes) get nothing for their service. By destroying the name fee, we have at least the minimal effect of increasing the worth of all coins in existence in relation.
I'm not saying we shouldn't destroy some of the name fee, but that we need to divert as much as possible to miners if we want to defend our security margin. You claim that it's easy to merge-mine Namecoin, but we have a serious problem with miner participation as-is. How do you plan on getting more miners mining Namecoin?
Giving *any* fraction of the name fee to miners immediately creates an incentive to sell discounted names, which is unacceptable. Someone on IRC (I don't remember who, sorry!) suggested giving the name fees to miners circa 2 years after the names expire. This would return those coins to circulation and make the economy less deflationary.

Unless indolering is recommending jacking up name fees by many orders of magnitude, I highly doubt that it would be significant compared to the block subsidy.

Experiment someone could try if they want hard data: run a SQL query with libcoin to figure out how many name_firstupdate transactions we're averaging per block. Even if we raised the name fee to 1 NMC and gave 100% to miners, I highly doubt that we're getting 25 name_firstupdate transactions per block right now. But I haven't looked, and I could be wrong. Checking this would probably only take a few minutes, for someone who already has libcoin.
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

indolering
Posts: 801
Joined: Sun Aug 18, 2013 8:26 pm
os: mac

Re: Giving a Percentage of Name Fees to Miners

Post by indolering »

Giving *any* fraction of the name fee to miners immediately creates an incentive to sell discounted names, which is unacceptable.
As I said above, I don't think *any* incentive is unacceptable, it's only unacceptable if they can turn that discount into a profit and significantly decrease the revenue of other miners. Even the threat of disrupting such arrangements would seriously deter investment in the infrastructure required to implement and profit from such a scheme.

Speaking with Biolizard on IRC, he made a distinction between giving name_new/name_firstupdate and name_update fees to miners. I don't want to misquote him, but as long as we (eventually) increase renewal fees to match the price of a new domain the overall effect is similar. I think some issues remain, but I'll wait to comment until he has had a chance to respond.
Someone on IRC (I don't remember who, sorry!) suggested giving the name fees to miners circa 2 years after the names expire. This would return those coins to circulation and make the economy less deflationary.
But it wouldn't significantly increase the incentive for miners to mine Namecoin. Being delayed for two years means that those funds could not cover the cost of whatever additional complexity Namecoin mining adds to their operations. Whether that's simply a few more hours for a given engineer over the course of a month or the cost of a DDoS attack. It's not that I totally disagree with the idea ... I guess it just doesn't address that particular issue I'm worried about.
DNS is much more than a key->value datastore.

Post Reply