Post
Topic
Board Pools (Altcoins)
Re: yPool.net XPM Pooled CPU Mining!!!
by
Kyune
on 19/07/2013, 22:59:11 UTC
The miner for ypool can never match the efficiency of a solo miner, and it certainly can't compete with mikaelh's most recent builds.  This is because in pooled mining (at least ypool's implementation of it) the miners are paid to produce blocks of a lower-than-network difficulty, as in  Bitcoin.  This is not a problem in Bitcoin since you can't look for low difficulty shares without looking for high difficulty shares at the same time.

However, in Primecoin it is very possible to tune ones search for shorter chains.  For example if, after the sieve, you find a collection of 7 numbers that are in the form of a chain (e.g. H-1, 2H-1, 4H-1, 8H-1...) but the number on either side of the chain was proven to be composite then you should not waste time with an expensive primality test on any of the numbers--it will never be a valid share when the network difficulty is 8 or higher.  However, if miners are paid to produce shares of difficulty 7 then they should check this chain.

There are a few resolutions to this dilemma.  One possibility is that everyone checks all chains that aren't long enough to be network shares but could still be pool shares.  This is fair for everyone--nobody has an advantage over anyone else--but it means that fewer blocks are generated overall (everyone is wasting time that doesn't benefit the network).  Another possibility is that some people ignore the shorter chains, while others check all chains.  This gives an unfair advantage to the people checking the shorter chains--they will produce fewer valid blocks for the pool this way while producing more shares and taking a larger cut of the profits.  The final option is if everyone only checks the longer chains while ignoring the shorter ones.  This is the solution that gives the highest average payout and is the one that ypool is trying for, but it has the problem that if anyone wants to increase their payout they just have to change a couple lines of code and suddenly they can start taking a higher payout.  This is a classic case of the Tragedy of the Commons.

I have explained this attack in detail to (who I think were) the operators of ypool and they have continued to operate.  The only case where mining with them is a wise decision is if you are so averse to variance that you are willing to take an enormous cut to your profits (e.g. 50% or more) in exchange for a more regular payout.
Fascinating.  So do you think primecoin is going to end up fundamentally incompatible with pooled mining simply because of the nature of the computational work being done for the coin, or are the problems that you have outlined likely only specific to ypool's implementation and solvable by a different and creative approach to parceling out work to pool participants?

If primecoin ultimately became a coin that was considered optimal to GPU mine, but significantly suboptimal to pool mine, that would make it quite the unusual coin, and would leave small miners with no escape from high variance.