I agree with RHorning on the 3 main problems:
3. Allow BitDNS miners to be rewarded in bitcoins or any non-voluntary reward system
...
3. The upkeep of the BitDNS network should be paid for either by every domain name owner paying a sort of rent to miners that produce BitDNS blocks, or through DNS transaction fees. Whenever a BitDNS transaction occurs, the recipient will be required to supply a Bitcoin address. Each miner on the BitDNS network will set a block solving fee they feel comfortable with. When a miner works on solving a BitDNS block, he will check the main bitcoin network to verify that domain owners have paid sufficient rent or transaction fees to miners of previous blocks. Any domains that have not paid, the miner will be entitled to make themselves owners of it.
With all of these questions answered, now we can start on the execution and write the code.
(all that about a generalized merkel tree is fascinating and makes me think that I need to read up more on that, I think its compatible with what I am proposing below)
Excellent, I look forward to seeing the code
Though, this last exercise in figuring out payment or "rent" makes me think, maybe there is a bit more to flesh out at the base of the ideas. It seems to me that it would make more sense to associate a name with an "account" than with "a coin". I will try to explain what I mean in terms of bitcoin, since its what we all seem to know
What if we, starting with bitcoin, change the name to dnscoin, or something equally witty, add a couple of transaction types and change a few definitions. What if you were to say, that the value of every account, decreases by 1 unit every block. Then add a new transaction type that allows an account to assign a mapping to any, currently unused name.... 1 per account. The name becomes "unassigned" when the most recent account to map falls to a value of 0.
Obviously, we need to tweak the mining operations to provide more coins per block, or even build in an inflation to account for expanding need for names... but it easily makes "DNS Coins" something that one can trade for bitcoins. Perhaps allow an account to be "unmapped" and not subject to the implicit fee.
That seems easier to me than trying to coordinate bitcoin payments and having miners set fees etc. Just let them mine a the valuable resource, and sell it as they see fit.
So if each block generated 52,000 "dnscoins" then that would be enough to create 2 domains for 6 months a piece, or fund 1 for a year.... or 52,000 for 10 minutes... or however we want to make the numbers work out.
Interestingly, this would also make helping a friend very easy. If I see that your domain is about to run out of bitdns, I just take the address and send it some coin.... then settle up with you later in some other manner, or tell you to have a merry christmass. Hell, maybe I run a service that watches your domains and keeps them topped up from my reserve of dnscoin.
As the account owner, you can still kill the domain by unassigning it.