>> (p.1)
    Author Topic: Oblivious merged mining, or getting miners to work for free  (Read 2472 times)
    hashcoin (OP)
    Full Member
    ***
    Offline Offline

    Activity: 372
    Merit: 114


    View Profile
    July 23, 2011, 05:27:34 AM
     #1

    Upon reading about merged mining, I was surprised to see it basically assumed that miners and verifiers were one and the same.  That need not be the case, and actually distinguishing the two can lead to interesting designs that avoid the need for miners to update software, or even know anything at all about what they're mining.

    The goal is to somehow do merged mining completely obliviously to the miners.  Note this could potentially mean we need not even pay them for "mining" our alternative currencies (I am interested in this purely from a technical standpoint; the question of if this is ethical is totally orthogonal and so not in scope of this topic), which would be amazing if feasible from a technical standpoint.  Curiously though, I can't see a way to get away with being so cheap: this post will describe a basic idea, the problems, and how payment gives a solution.

    The obvious strategy is to include the merkleroot as data in a normal transaction, rather than the coinbase, along with some tag saying "i'm really a merkleroot for a namecoin header".

    The problem, of course, is what happens when two such transactions appear in a block?

    One solution is just take the first in order of appearance arbitrarily.

    Another better one is an auction: the tx with largest fee "wins" and is the valid namecoin header.  Now consensus in the alternative chain could be achieved by passing around a giant bitcoin transaction with NO outputs, paying everything as a TX fee.  

    Alas, there is a more fundamental problem.  Suppose there are 2 "im a namecoin header" txs in a single block.  Suppose further the "winning" transaction is one that noone has any info about: the person who made it chose to keep the block to himself, not giving the data to anyone.  So all we have is a merkleroot and no idea what it points to.  Maybe the person who made it got disconnected or his computer crashed.

    "OK, fine, we'll just use the other one if we don't have the data for the first one then!"  We do that, and next block, curiously enough, the same thing happens, we see a mystery merkleroot and have no idea what's inside.

    The point is at some point, the person reveals all those historic blocks, and had work done for all of them, so now they instantly become "correct".

    The fundamental problem is that a single bitcoin block must only provide proof-of-work for a single namecoin block (this is obvious when namecoin root is in coinbase, but not obvious if its elsewhere).  Further, if multiple namecoin roots are provided, it must be clear how to pick a winner, and people must not deviate from that even if the data for the winner is unavailable.

    One solution to this problem, in the auction scheme, is if the data is unavailable, then the "honest" network agrees to raise the TX fee they pay for their fake TX, and hopefully outbid whoever is holding block data.  So now instead of needing 50% of hashing power, the honest network needs to be able to collectively outbid those colluding/holding blocks for the "highest TX fee namecoin merkleroot".

    The question
    Is there some way to do this without even paying the miners?  Or perhaps less expensively, paying them less?
Page 1
Viewing Page: 1