>> (p.1)
    Author Topic: Optimal pool abuse strategy. Proofs and countermeasures  (Read 30546 times)
    Raulo (OP)
    Full Member
    ***
    Offline Offline

    Activity: 238
    Merit: 100


    View Profile
    February 04, 2011, 01:49:09 PM
    Last edit: May 27, 2011, 02:46:31 PM by Raulo
     #1

    I have written a description of the optimal pool abuse strategy (for a single pool) with proofs and calculations. Available here:
    http://bitcoin.atspace.com/poolcheating.pdf

    If the link does work, use a mirror: http://mining.bitcoin.cz/media/download/poolcheating.pdf

    I have started this work some time ago and it is not finished (I wanted to derive the optimal strategy for multiple pools but it's not ready yet) but with jgarzik's announcement of a new pool code, there is a chance we have multiple pools very soon and with multiple pools, pool abuse gets more profitable, and because I realized there is a perfect countermeasure, I decided to publish it now .

    For those who don't want to bother reading it, the optimal strategy is to join the pool at the start of a new round and stop pooled mining after 43.5% fraction of the current difficulty of shares was contributed and start mining solo. This strategy will bring 28% of extra income compared to only pooled or only individual mining.

    In this thread, the author finds no evidence of massive use of this strategy
    http://bt.irlbtc.com/view/2941.0
    (I didn't read the paper since I find it strange to ask for a payment for something that may or may not contain anything interesting; and I didn't find any hard numbers in the discussion)
    However, I was testing it in mid January with 3-4% of the pool hashrate. It is indeed very hard (at this level it is quite well buried in the noise) in the global hashspeed, but it is possible to detect by the pool operator by checking the payout. An abuser, will have significantly larger payouts in the short rounds than in longer ones.

    Concerning the countermeasures. Apart of administrative ones (i.e. banning) which will be difficult if one starts to be more clever: randomly changing switching threshold, contributing all the time with a fraction of ones hashspeed, etc, there is of course a connected method which is will be very hard in slush's implementation. It is also possible to calculate the payout based only on the very recent shares but it only reduces the cheating payout, not eliminate it. However, after reading the recent jgarzik's pool discussion
    http://bt.irlbtc.com/view/3078.0
    and his "bug", where he only counted shares contributed to the latest block, I realized that such counting is a perfect countermeasure. Since finding a block ensures that everybody else who worked on solving this block wasted its effort, there is no incentive to switching from the pool. If one switches from the pool and finds a block, the pool resets its counter and all the cheater's "unearned" shares will be lost. Of on the other hand, one switches from the pool and the pool find the block, it guarantees there is no individual income after the switching. I'd advice slush and other pool operators to implement this counting. It slightly increases the variance of ones income but it's fair, it's simple and eliminates cheating which with multiple pools can become widespread.

    Edit; It won't work, see the further discussion.  

    1HAoJag4C3XtAmQJAhE9FTAAJWFcrvpdLM
Page 1
Viewing Page: 1