Pages:
Author

Topic: Design notes for sharing work between multiple independent chains - page 4. (Read 15138 times)

member
Activity: 80
Merit: 10
Wow, a lot has happened since my last post.

Thanks everyone for insightful comments.

Let me just make something clear:

From [mike]'s standpoint, there's nothing to lose in terms of block storage space if we were to follow theymos's/satoshi's idea of 0-value output transactions with some data embedded before OP_DROP/OP_CHECKSIG. These transactions are already accepted by the stock client (and if anyone argues changing this, well, I think that'd be disastrous as it'd encourage coin burning as the only other alternative). These transactions could be pruned by the clients who are not interested in them! They have 0 output + a fee, so they can be considered spent and pruned (well as long as the miner spends her reward from the fee). Only nodes interested in BitStamp/BitDNS/BitX would keep and verify these transactions. So again, there's no problem to the mainstream clients at all in terms of storage; and in bandwidth, it's pretty much identical to the [mike]'s proposed send-to-self with later release.
staff
Activity: 4270
Merit: 1209
I support freedom of choice
Quote
I don't agree with your position because governments and laws do exist regardless of what you might like, and they will happily just seize your servers or throw you in jail if a court gives them permission.
There are some situations where the server and admin are out of the country.
Also many situations where the country aren't a truly freedom places.
Laws are subject of the usual human's failure.
It's better to build a system that isn't based on human's rules, as Bitcoin is itself.
legendary
Activity: 1526
Merit: 1134
Quote
And this still leaves open the attack for flood the system with domain name registrations with no intention of buying them or using them...just to fill up space or even DDoS the network, due to the payments not being required at the time of registration.

No it doesn't. There's a separation between coins you park in order to keep the domain - if those coins are spent the domain automatically releases. Then there's the coins you pay to the miner as an incentive to take part in the system. Those you spend when the block is found.

You can't DoS the network because miners wouldn't let you double spend parked coins on multiple domains. If I say output 1 of tx ABCD is the collateral for name mike.bit then I won't be allowed to reuse it to register mike2.bit.

Quote
I think the real question is why should anyone else be able to stop me from registering a domain name or be able to take it away from me?

I don't agree with your position because governments and laws do exist regardless of what you might like, and they will happily just seize your servers or throw you in jail if a court gives them permission.

But if you aren't going to do anything illegal, the current DNS works fine. The "D" in it stands for distributed, right? The only reason WikiLeaks had to move to .ch was a DDoS that could have come from anyone. It had nothing to do with governments, who left its infrastructure alone. In fact the parts of DNS controlled by the US Government are remarkably freeform. You don't actually have to be a network to register a .net domain, or a non-profit to register a .org, or a commercial enterprise to register .com even if that's what they're technically meant for. You don't have to be a US citizen or have any US presence, unlike some country TLDs.

If there were examples of DNS actually failing to work well today, BitDNS might be a more compelling proposal.
newbie
Activity: 24
Merit: 0
Miners that receive the transaction and begin working on it create a new BitCoin address for themselves and set miner_payment_address to it. When they solve a block, it is broadcast and the name enters a pending state. It isn't available for purchase anymore but it doesn't resolve to IP addresses either. To complete the purchase the buyer sends the fee to the miners address. Once they do so, each DNS node observes that the BitCoin address in the miner_payment_address field has received 'fee' coins and start serving the name. If insufficient payment is sent within a few days the name becomes available once again. The miner loses but the buyer doesn't get anything either. The pending state ensures that people cannot watch transactions and immediately outbid somebody then try to sell the name back to them at inflated prices.

And this still leaves open the attack for flood the system with domain name registrations with no intention of buying them or using them...just to fill up space or even DDoS the network, due to the payments not being required at the time of registration.  I think I might see how the shared work can function, but it still leaves your proposal open to a very simple and easy attack unless the alternative block chain also has it's own currency and registrations come with a payment.

Quote from: [mike]
I don't actually think a BitDNS style system makes any sense. The interest seems to come primarily from wanting to prevent your name being seized by governments. If your website is illegal in a particular jurisdiction (like the USA) then there's a simple solution - use a domain name under a different countries TLD, pick a country where your operation is legal. If your operation is illegal everywhere then you have to use Tor which already provides a secure P2P DNS system, but also anonymity for both service provider and clients.

A BitDNS system only makes sense if you're very concerned about your domain name being seized, but not concerned at all about seizure of your servers, your clients identities or yourself. Maybe I missed something, but I can't think of any operations which actually operate under such a threat model.

Some of us don't believe permission from some random person or government is necessary to register a domain name, nor do we believe anyone has a right to take domain names away from us.  I've never (at least knowingly) done anything illegal with a domain name or website, and I don't intend to.  I think the real question is why should anyone else be able to stop me from registering a domain name or be able to take it away from me?  Why should anyone even be in such a position to do that, even if they never do interfere with me?  ICANN is nothing more than government waste, like the central banks.
sr. member
Activity: 294
Merit: 252
Well, recent history has shown that it's a lot easier for governments (namely the United States) to seize domain names than physical objects. There is also the worry that ICANN will give in to political pressure and play censorship whackamole at the behest of powerful governments.
legendary
Activity: 1526
Merit: 1134
Paying miners for including your NameTx can be done in a straightforward manner. Nothing fancy is required.

Introduce a couple of new fields into the NameTx message, call them:

Code:
  optional string miner_payment_address = 9;
  optional uint64 fee = 10;

When the buyer broadcasts his NameTx to claim a new name, he leaves the miner_payment_address field blank and sets the fee field to be however much he is willing to pay for inclusion into a block.

Miners that receive the transaction and begin working on it create a new BitCoin address for themselves and set miner_payment_address to it. When they solve a block, it is broadcast and the name enters a pending state. It isn't available for purchase anymore but it doesn't resolve to IP addresses either. To complete the purchase the buyer sends the fee to the miners address. Once they do so, each DNS node observes that the BitCoin address in the miner_payment_address field has received 'fee' coins and start serving the name. If insufficient payment is sent within a few days the name becomes available once again. The miner loses but the buyer doesn't get anything either. The pending state ensures that people cannot watch transactions and immediately outbid somebody then try to sell the name back to them at inflated prices.

I'm explaining this as an example of how to link chains together financially whilst keeping them separate. I don't actually think a BitDNS style system makes any sense. The interest seems to come primarily from wanting to prevent your name being seized by governments. If your website is illegal in a particular jurisdiction (like the USA) then there's a simple solution - use a domain name under a different countries TLD, pick a country where your operation is legal. If your operation is illegal everywhere then you have to use Tor which already provides a secure P2P DNS system, but also anonymity for both service provider and clients.

A BitDNS system only makes sense if you're very concerned about your domain name being seized, but not concerned at all about seizure of your servers, your clients identities or yourself. Maybe I missed something, but I can't think of any operations which actually operate under such a threat model.
newbie
Activity: 24
Merit: 0
I think you're missing an important point of Mike's: separate chains will have different difficulties.

If you set up Bittimestamp to generate a block on average once per minute, one will be generated once per minute, regardless of Bitcoin's difficulty. This is because for every hash that wins a Bitcoin block, millions are thrown away as "not sufficiently difficult". However, any one of those hashes (or many of them) are sufficiently difficult for the Bittimestamp chain, since there are potentially fewer miners computing for that chain.

So you can put BitDNS (and whatever other alternate non monetary block chains emerge) in the main Bitcoin block chain, but that forces everyone to process and store DNS data. Or you can come up with a robust and extendable way for any and all chains to be mined simultaneously.

How do the Bittimestamp miners get transaction fees for generating Bittimestamp blocks?
sr. member
Activity: 294
Merit: 252
I think you're missing an important point of Mike's: separate chains will have different difficulties.

If you set up Bittimestamp to generate a block on average once per minute, one will be generated once per minute, regardless of Bitcoin's difficulty. This is because for every hash that wins a Bitcoin block, millions are thrown away as "not sufficiently difficult". However, any one of those hashes (or many of them) are sufficiently difficult for the Bittimestamp chain, since there are potentially fewer miners computing for that chain.

So you can put BitDNS (and whatever other alternate non monetary block chains emerge) in the main Bitcoin block chain, but that forces everyone to process and store DNS data. Or you can come up with a robust and extendable way for any and all chains to be mined simultaneously.
newbie
Activity: 24
Merit: 0
What technical issues are solved by storing DNS data in the main block chain, as opposed to an alternate yet connected block chain, as Mike has proposed?

I find the idea of one block chain per application, but connected in such a way that they can all be mined against simultaneously, much more appealing than one monolithic block chain. Similar to those that want to change Bitcoin to have constant inflation, or distribute payouts more fairly, or anything else... rather than trying to impose a change on all Bitcoin users, why not start a new chain instead?

First, not every bitcoin miner is going to be a domain name block chain miner, or timestamping miner, etc.  This means that to generate a block in that system that is also tied to a block in the bitcoin block chain could take significantly longer.  If you have 1/1000th of the bitcoin network's hashing power also working on the domain name block chain, then approximately 1 out of every 1000 blocks will generate a block for the domain name block chain.  Not a problem for bitcoin, but it is a problem for the alternative block chain.  If that ratio were to ever reverse to where bitcoin has the minority in hashing power, then bitcoin will suffer from blocks being few and far between.  I'm not sure that anyone has sufficiently solved this problem.

Another problem that comes from this asynchronous block generation rate is paying the miners fees for generating blocks in the alternative block chain.  Currently with bitcoin, when you send a transaction with a fee, you know the miner does not get the fee unless the transaction is accept, and the miner knows your transaction will not be accept without him getting the fee.  But with two block chains where blocks are generated at different rates, you don't know ahead of time who to send the fee to (say for registering a domain name)...the next person that generates a block may not be mining for the domain name block chain, so they shouldn't get the fee.  Someone might just assume pay the domain name miner afterwards, but this is not enforceable, and due to this lack of enforceability it opens up the system to spam attacks where someone sends a bunch of domain name registrations because they don't have to pay for them, yet, and can't be forced to pay for them in the future, but the miner's won't be able to know this, and have know way to know whether or not to put them into a block.  If they don't, they risk losing fees they could have gained...if they do, they risk filling up the block chain with useless data for nothing.

These issues do not exist when the currency and secondary application are both on the same block chain.  If someone has solved this asynchronous block generation rate issue, please point me to the post.  Perhaps I've overlooked it.  Otherwise, I believe the solution that is most likely to work for alternative applications of a block chain is for both the alternative application and the currency to be on the same block chain, which leads me to either using bitcoin, due to it already existing and thriving, or to compete against it.
administrator
Activity: 5222
Merit: 13032
What technical issues are solved by storing DNS data in the main block chain, as opposed to an alternate yet connected block chain, as Mike has proposed?

Incentives. If I want to make an alternative chain for timestamping documents, then no one will ever generate blocks on that chain, since there would be no profit.

If you can easily work incentives into your project, a side chain is better. Then you can do simple payment verification for your chain, too.
sr. member
Activity: 294
Merit: 252
What technical issues are solved by storing DNS data in the main block chain, as opposed to an alternate yet connected block chain, as Mike has proposed?

I find the idea of one block chain per application, but connected in such a way that they can all be mined against simultaneously, much more appealing than one monolithic block chain. Similar to those that want to change Bitcoin to have constant inflation, or distribute payouts more fairly, or anything else... rather than trying to impose a change on all Bitcoin users, why not start a new chain instead?

I now return you to your regularly scheduled argument.
newbie
Activity: 24
Merit: 0
0x6763, why are you so hostile? Your tone is not contributing to this discussion.

I apologize for the tone, and I'll try to keep it a little nicer in any further posts.

I don't find the arguments against using bitcoin for DNS to be compelling as they all seem to be personal preferences disguised as technical reasons against it.  I'm just trying to point out that all the arguments that have been made against using bitcoin for DNS are economic arguments, which means they are based on perceived gains and loses, personal preferences, etc, and are not technical in nature.


And I should qualify this:
Quote from: 0x6763
To reduce costs in fees, the people designing the system could provide a more cost effective system by limiting the amount of data put into the transactions/block chain to a minimum that merely references where to find the data in some other system (which is exactly how I would do DNS).
with: "if I were to choose bitcoin for DNS over the option of creating a competing currency."
sr. member
Activity: 294
Merit: 252
0x6763, why are you so hostile? Your tone is not contributing to this discussion.
newbie
Activity: 24
Merit: 0
Quote from: [mike]
If you are already happy with the existing domain name system (or whatever), you don't care about those transactions. You aren't planning on taking part in that system so those domain names will never "come around" to you. You also don't care if somebody else owns any particular name. It's additional expense that gains you nothing.

Gains you nothing...oh, except for maybe a more robust and secure network and a more valuable and more widely used currency.  What each person loses and gains is for each individual person to decide for themselves and only themselves.  Again, please don't state your assumptions of what other people gain or lose as though it's some provable objective fact.

Quote from: [mike]
I think you're overfocussing on the DNS case. There are several possible use cases for alternative chains. Nobody will care about all of them. Some of them may involve significant amounts of data, far beyond a DNS system.

And the miners can and most likely will charge the fees that gets them the most profit for those types of transactions, causing the number of them to be lower than if they were free.  To reduce costs in fees, the people designing the system could provide a more cost effective system by limiting the amount of data put into the transactions/block chain to a minimum that merely references where to find the data in some other system (which is exactly how I would do DNS).  The incentives to prevent it from blowing up out of control already exist (except for perhaps the lack of flexibility for setting fees in the bitcoin client and mining software).

Quote from: [mike]
The technical reason is that trying to combine every possible proof of work based quorum into a single chain does not scale.

Scaling is generally an economic issue, not a technical one.  With enough resources you can scale anything up in an incredibly inefficient way if you wanted to (just look at most governments).  The nice thing about bitcoin is that the miners can charge transaction fees, reducing the externalization of costs to others from people putting non-bitcoin related data into the block chain, because the fees will make it cost prohibitive to just throw whatever or however much data they want into the block chain.  The miners could pick and choose which types of transactions they will put into a block according to their own economic goals, and the people making the transactions will pick and choose what transactions they will make and pay fees for based on their own economic goals.  The network will adjust and scale according to the values of its users.

Quote from: [mike]
This is not a matter of personal preference, it's about solid engineering.

All engineering is intended to meet some arbitrary subjective goal, to provide some subjective value to one or more people.  From what you have stated thus far, it seems that among your goals (preferences, values, or whatever you wish to call them) you want the bitcoin block chain to hold only data related to bitcoins, and nothing else, with the exception of making some changes to include some non-bitcoin related data in coinbase transactions.  You've chosen an arbitrary trade-off to meet your goals...some people like it, and some people don't.  Others are willing to make the arbitrary exception of just simplifying things to the point that you can include data in a transaction that references something in some other datastore.  And others are willing to go as far as putting a lot of data into the block chain (entire DNS records and other data).  Every single one of these is completely arbitrary, and the network can technically handle every single one.

The problem is not a technical one, but an economical one.  Storing large amounts of data in the block chain is likely not very economical, but the amount stored would be prevented from growing beyond a certain point due to transaction fees.  Creating an alternative block chain and making exceptions to allow a reference to this alternate chain in a coinbase transaction is certainly less burdensome on the bitcoin network, but I'm not confident that anyone's fully solved all the issues of miner incentive and asynchronous difficulty between the two chains.  Unless those issues are definitely solved, an alternative chain sharing work with bitcoin is likely to suffer and not have a chance of having widespread use.  I personally think that allowing people to put arbitrary references to outside data in bitcoin transactions makes the most sense technically (it's simple) and can be well accommodated by the bitcoin network economically (the market rate chosen by miners and those sending special transactions will regulate how much of this data goes into the block chain).


Quote from: [mike]
If the names are free then somebody will just do a dictionary attack on the network and claim all useful names.

Yes, that's another reason (in addition to the one where I said the miners need an incentive to even bother creating the blocks), for there to be a fee.

Quote from: [mike]
But regardless, if for your 0x6763 chain you don't want to charge any coins you don't have to.

It seems you misunderstood what I was saying.  I was not saying that I want to create a system where the domain names would be free, because I am already well aware that won't work.

Quote from: [mike]
Miners don't need much incentive to work on alternative chains as long as the CPU cost of receiving and verifying your transactions isn't too high. They just connect your software to BitCoin and their mining hardware works on both simultaneously. Beyond an hour or twos setup time nothing more is required.
...
Believing in "the cause" is probably enough.

That's awfully short-sighted of you.  For bootstrapping, sure, 'believing in "the cause"' may be enough just like it was for bitcoin.  But "this doesn't scale" to wide use of the system.  The vast increase in bitcoin difficulty is due to the fact that the price of bitcoins increased, resulting in more opportunity to make a profit from mining, leading to more people investing in mining.  In the future, I doubt most people are going to be investing in multi-million dollar data centers for bitcoin mining just because they 'believe in "the cause"', and I believe the same will be true for a decentralized DNS.  What significant reason does any other miner have to spend even just a couple hours to get setup for working on the alternative block chain if they don't already 'believe in "the cause"' and don't earn extra money from it?
administrator
Activity: 5222
Merit: 13032
It is pretty obvious that allowing domain name registration info in the block chain does not scale.

I guess you should sell your BTC, then, because arbitrary transactions are allowed right now, and they are very likely to always be allowed. If using Bitcoin's chain for DNS is the best way to do DNS (which I'm not totally convinced about), that's how it will be done. There's no way to stop people from sending information via Bitcoin.

Look who came up with that OP_CHECKSIG trick for inserting arbitrary data:
Timestamp hashes are still already possible:

txin: 0.01
txout: 0.00  OP_CHECKSIG
fee: 0.01

If there's an actual application like BitDNS getting ready to actually start inserting hashes, we can always add a specific transaction template for timestamps.

I like Hal Finney's idea for user-friendly timestamping.  Convert the hash of a file to a bitcoin address and send 0.01 to it:
sr. member
Activity: 294
Merit: 252
Also agree with Mike. Anyone who hasn't gotten this point yet, keep in mind that you can look for a solution for any and all block chains (set up as Mike specified) with one round of hashing. If this becomes popular, all miners could be computing for all parallel block chains simultaneously.
legendary
Activity: 1304
Merit: 1015
The technical reason is that trying to combine every possible proof of work based quorum into a single chain does not scale. This is not a matter of personal preference, it's about solid engineering.


Agree with [mike].  It is pretty obvious that allowing domain name registration info in the block chain does not scale.  If you open the doorway to domains, other potential applications using P2P could also do the same causing the chain to bloat.  It truly is about solid engineering.


If the names are free then somebody will just do a dictionary attack on the network and claim all useful names.


This is pretty obvious.  Registering a domain must cost something so all the names will not be taken.  One cannot just get it for 'free'.
legendary
Activity: 1526
Merit: 1134
So merchants will be ok with supporting bitcoin transactions for drugs, porn, alpaca socks, and their competitors, but not for domain names?  What's the difference?

When you track the transaction history, you aren't doing it pointlessly. You need to know the history of all coins so when one of those coins comes to you as payment, you can verify it's legitimate and not an attempted double spend. This is fundamental to BitCoin and accepted by everyone who runs a node. The only way to prove the absence of transactions is to be aware of all transactions.

If you are already happy with the existing domain name system (or whatever), you don't care about those transactions. You aren't planning on taking part in that system so those domain names will never "come around" to you. You also don't care if somebody else owns any particular name. It's additional expense that gains you nothing.

I think you're overfocussing on the DNS case. There are several possible use cases for alternative chains. Nobody will care about all of them. Some of them may involve significant amounts of data, far beyond a DNS system.

Quote from: [mike]
I care about his technical opinions, but I don't recall him presenting any technical reasons for not putting non-bitcoin related data into the main chain.

Then you need to re-read his posts. The technical reason is that trying to combine every possible proof of work based quorum into a single chain does not scale. This is not a matter of personal preference, it's about solid engineering.

Quote from: [mike]
It's not because people want to pay for domain names (I think most people, including myself, would much rather get them for free than pay for them).  It's because there needs to be an incentive for people to work on the block chain.

If the names are free then somebody will just do a dictionary attack on the network and claim all useful names.

But regardless, if for your 0x6763 chain you don't want to charge any coins you don't have to. Miners don't need much incentive to work on alternative chains as long as the CPU cost of receiving and verifying your transactions isn't too high. They just connect your software to BitCoin and their mining hardware works on both simultaneously. Beyond an hour or twos setup time nothing more is required.

Quote from: [mike]
So you leave out the one that actually gives people incentive to work on the DNS block chain...  Obviously you're under no obligation to provide such a solution to us, but it's the most important part!  You went through all of this trouble making this post, but left out the most important piece.

I left it out because the post was already too long and the overhead of joining a second chain once you do mining on the first is so trivial. Believing in "the cause" is probably enough. It got BitCoin bootstrapped quite fine after all, BTC was not always worth $3.

Regardless, if you believe your idea is so uncompelling nobody will join you unless they get paid, there are designs possible which allow for it. I'm about to head out for the night. I'm sure somebody can propose one here.
newbie
Activity: 24
Merit: 0
Sorry [mike], it's time to rip your post apart:

Quote from: [mike]
It makes nobody happy.

The only people I've seen unhappy about doing domain name registration or other things with bitcoin are those that seem to have some sort of purist mentality in regards to which arbitrary uses of bitcoin are acceptable (according to their own subjective preferences, of course).  Regardless, please don't make assumptions about how random people you don't know will feel if someone does X or Y, and then use your assumption as an argument against some use of bitcoin.

Quote from: [mike]
it's unfair to externalize the costs of unrelated schemes onto people who are interested only in payments

So merchants will be ok with supporting bitcoin transactions for drugs, porn, alpaca socks, and their competitors, but not for domain names?  What's the difference?  If a domain name transaction can be done using practically the same amount of space and computational power as a normal transaction for any other good, then why does it matter?  If the merchant is ok with processing bitcoin transactions that go to their competitors (and the blocks holding those transactions), then why would they care about processing transactions with a few bytes of extra data for domain name registrations?  Either way from their perspective it's just bandwidth, processing power, and storage being used up for things that do not pertain to their business...  Why would they single out domain name transactions as being unacceptable, but tolerate all the other millions of bitcoin transactions that provide no income to them but cost them resources?

Quote from: [mike]
Increasing the cost of accepting BitCoins for goods and services hurts everyone who uses the system by reducing the number of merchants or increasing their costs.

How can you decide who it does and does not hurt or if it will increase or reduce the number of merchants?  Like I said, they're willing to tolerate transactions and blocks containing transactions to their competitors or businesses/people that aren't directly competing, so why would they single out domain name transactions?  Perhaps registering domain names through bitcoin increases the security (more miners due to higher fees for domain name transactions) and value (by adding decentralized domain name registration as another use) of bitcoin...is it impossible, or even unlikely that some merchants won't find that increased value more than enough to offset the increase in transactions of similar size to any other transaction?

Quote from: [mike]
Verifying its integrity requires many slow (and thus expensive) operations like ECDSA verifications and disk seeks.

And this will have to be done for every bitcoin transaction that's buying a domain, whether or not the actual domain information is in the transaction or not. 10000 bitcoin transactions buying domains from some centralized domain name registrar, or 10000 bitcoin transactions containing perhaps a couple more opcodes and a 32-byte hash referencing the domain name the registering has no practical difference in computational cost (and I think some have presented ways to do it without increasing the size at all).

Quote from: [mike]
One final reason is that Satoshi was opposed to putting non-BitCoin related data into the main chain. As creator of the system, his opinion should carry a lot of weight with anyone serious about extending it.

I care about his technical opinions, but I don't recall him presenting any technical reasons for not putting non-bitcoin related data into the main chain.  I think it's purely an economic issue (one I believe most people will view as a net gain), not a technical one.  This means it is merely a matter of personal preference.  Just because Satoshi's preference was to keep non-bitcoin related data out of the block chain does not mean that putting that data in there is not a good idea...it just means he doesn't want it in there.  It's no different than you wanting or not wanting pineapple on your pizza.

Quote from: [mike]
A commonly cited reason for putting DNS related data into BitCoin is the desire to pay for names with BitCoins.

It's not because people want to pay for domain names (I think most people, including myself, would much rather get them for free than pay for them).  It's because there needs to be an incentive for people to work on the block chain.

Quote from: [mike]
Other schemes are possible, like pay to miner

So you leave out the one that actually gives people incentive to work on the DNS block chain...  Obviously you're under no obligation to provide such a solution to us, but it's the most important part!  You went through all of this trouble making this post, but left out the most important piece.  Without it, a decentralized domain name registration project will not become widely used.

If two different block chains were to be used while sharing work and providing an incentive for the miner to support the secondary block chain, the domain name block generated has to be synchronized with the bitcoin block that holds the transaction paying the miner.  If they are not synchronized, the miner is not necessarily guaranteed to be paid for registering the domain name (requiring that registration to be considered invalid, and wasting work on the miner's part for including it, not to mention the block chain being wide open to spam due to not needing to pay to get transactions put into it).  The person buying the domain name can't pay before the block is mined, because they don't know who will mine the block until after it happens.  The simplest way to solve this is for the domain name registrations and fees paid to the miners be in the same transactions on the same block chain.  This means either doing it in the bitcoin block chain, or creating a (probably more valuable) competitor to bitcoin that will provide a greater incentive for miners to stop mining bitcoin and start mining in the new system...not good for bitcoin.


I have to question whether or not you really understand the issue with domain name registrations and bitcoin.  You're using personal preferences as reasons to not do domain name registration in bitcoin, while providing unnecessary technical alternatives (that do not provide the necessary incentives for it to work) just to meet your personal preferences.  For you to even think that people "want to pay for domain names" and then going through the trouble of providing a technical way to do this proves your lack of understanding on this matter.  You're willing to make modifications to bitcoin to accommodate alternative block chains, but are not willing to allow a few extra bytes in a fraction of the transactions, requiring no change to bitcoin and likely providing an economic benefit for most/all people using bitcoin through more mining incentive, thereby increasing network security, and also through more demand for bitcoins due to it's use for domain name registration.

The issue of using the bitcoin block chain for domain name registration is not technical.  It's purely an economic matter, meaning it's entirely subject to personal preferences.  Please don't hide behind Satoshi's opinions or use unnecessary (and unsatisfactory) technical alternatives as a way to suggest to us that your anti-DNS-in-bitcoin post is anything more than an expression of your personal preference.  Also, please don't state your assumptions as to how it would affect others economically or emotionally as though it's some sort of provable fact.
legendary
Activity: 1526
Merit: 1134
Miners hash the BitCoin block header. Miner workers like UfaSoft/poclbm wouldn't need to change at all. That header has a merkle root which is dependent on the contents of every transaction in the current block.

Imagine the BitCoin network is quiet and nothing is happening. Miners hash over a block header that changes only by the "nonce" field each time. Every so often the nonce field overflows and the "extraNonce" part of the coinbase scriptSig is incremented. Because this changes the contents of a transaction, it also changes the merkle root in the header (essentially randomizing it).

Now if a new alternative chain block comes in, your node tells BitCoin "update the extra hash", which is sitting next to the extraNonce. That also triggers re-calculation of the merkle root in the current BitCoin block. If a moment later you find a nonce that makes the current BitCoin block header fit the difficulty of the alternative chain, you have all the data you need to prove on the alternate chain that you did the proof of work.

So to answer your question the value they're hashing that represents both BitCoin and DNS is the current bitcoin block header - same as today.
Pages:
Jump to: