Idea for Better Fee Structure (Please Comment)
Posted: Tue Oct 08, 2013 3:21 am
Hey everyone,
So there was a brief discussion in the IRC last night about fixing the fee structure. I came up with a brainstorm and asked people to try to pick at it. Since no one was able to find issues with it, I'm posting it here (in much more coherent form, since I've had a day or so to think about it) in the hopes that someone will find ways to (1) build on it, (2) confirm its awesomeness, or (3) confirm its epic failness.
Point 1: Miners will embed a data structure in each block, stating the miner's desired fee policy. The fees are grouped by (1) whether the fee is locked in the name or goes to the miner (both fees are possible), (2) the namespace of the name, and (3) the length of the name in bytes. Locked fees are returned when the name expires; miner-awarded fees are charged any time the name is registered or renewed.
Example: As a miner, I might say that d/ names of 4 bytes or less (in other words a 1 or 2 character 2nd-level domain) are subject to a 100 NMC locked fee and a 50 NMC fee which goes to the miner, and all other names would be subject to a 1 NMC locked fee and an 0.04 NMC fee which goes to the miner. (The policy could be of any reasonable length; 1 case + a default case is just my example.)
Point 2: The enforced fees for names in a block are defined to be the median of fees specified by the miner policies in the 144 previous blocks. This prevents a miner from lowering the price for himself. (The 144 is a random number pulled out of my ass, the exact number is open to discussion.)
Point 3: Miner fees for name transactions in Block N are awarded to the miner of Block N+12. This prevents a miner from giving fees to himself. (The 12 is also a random number pulled out of my ass, and is also open to discussion.)
The above brainstorm allows the network miners to influence the fee structure as well as customize fees for different namespaces and name lengths. This prevents (for example) squatting all the short domains, while allowing people to register file hashes or experiment with other low-value namespaces without getting charged exhorbitant fees. It prevents fee-based censorship (the only censorship which could occur is at the namespace level, and even this would require a 51% attack to bring the median to an unacceptable price. If a 51% attack occurs, all bets are off anyway.) And if the Namecoin price booms or crashes, the miners just have to change their fee policy and the fees will return to a reasonable amount in USD, without any kind of blockchain fork risk. Miners are incentivised to collectively converge on a median price which encourages real-world network use (and therefore maximize their fee revenue in NMC while not killing the NMC/BTC exchange rate), while no single miner has the ability to break the system.
Does this concept sound interesting? Is there something I haven't thought of, which could either improve the system or make the entire thing unworkable?
So there was a brief discussion in the IRC last night about fixing the fee structure. I came up with a brainstorm and asked people to try to pick at it. Since no one was able to find issues with it, I'm posting it here (in much more coherent form, since I've had a day or so to think about it) in the hopes that someone will find ways to (1) build on it, (2) confirm its awesomeness, or (3) confirm its epic failness.
Point 1: Miners will embed a data structure in each block, stating the miner's desired fee policy. The fees are grouped by (1) whether the fee is locked in the name or goes to the miner (both fees are possible), (2) the namespace of the name, and (3) the length of the name in bytes. Locked fees are returned when the name expires; miner-awarded fees are charged any time the name is registered or renewed.
Example: As a miner, I might say that d/ names of 4 bytes or less (in other words a 1 or 2 character 2nd-level domain) are subject to a 100 NMC locked fee and a 50 NMC fee which goes to the miner, and all other names would be subject to a 1 NMC locked fee and an 0.04 NMC fee which goes to the miner. (The policy could be of any reasonable length; 1 case + a default case is just my example.)
Point 2: The enforced fees for names in a block are defined to be the median of fees specified by the miner policies in the 144 previous blocks. This prevents a miner from lowering the price for himself. (The 144 is a random number pulled out of my ass, the exact number is open to discussion.)
Point 3: Miner fees for name transactions in Block N are awarded to the miner of Block N+12. This prevents a miner from giving fees to himself. (The 12 is also a random number pulled out of my ass, and is also open to discussion.)
The above brainstorm allows the network miners to influence the fee structure as well as customize fees for different namespaces and name lengths. This prevents (for example) squatting all the short domains, while allowing people to register file hashes or experiment with other low-value namespaces without getting charged exhorbitant fees. It prevents fee-based censorship (the only censorship which could occur is at the namespace level, and even this would require a 51% attack to bring the median to an unacceptable price. If a 51% attack occurs, all bets are off anyway.) And if the Namecoin price booms or crashes, the miners just have to change their fee policy and the fees will return to a reasonable amount in USD, without any kind of blockchain fork risk. Miners are incentivised to collectively converge on a median price which encourages real-world network use (and therefore maximize their fee revenue in NMC while not killing the NMC/BTC exchange rate), while no single miner has the ability to break the system.
Does this concept sound interesting? Is there something I haven't thought of, which could either improve the system or make the entire thing unworkable?