Ethereum “Dagger” proof-of-work function is flawed
bitslog.wordpress.com
bitslog.wordpress.com
Even if you end up with a scheme that can only run efficiently on a general purpose computer, it will probably be through making the computation utilise all the features of the computer. Which means that the computer won't be very good at doing anything else while it is mining. End result: people will have to dedicate machines to mining.
What end benefit does this give to the users or to the currency? People either spend money on dedicated computers or dedicated ASIC miners.
(I guess, at least if/when the currency crashes and burns, those machines could then be reused for other things... but it's still 'wasted' on the owner, who wouldn't have otherwise bought the computer)
For sure. Each time someone figures out something that can not be done on current ASICs/GPUs, a bunch of smart people throw themselves at figuring out a way to modify the GPUs/ASICs in order to enable it. It is an arms race scenario, where these inefficiencies for 'hardware' are just temporarily.
Well, yes and no. Litecoin was invented in 2011 and still no one has successfully built ASICs for LTC mining.
Reminds me of http://www.distributed.net/ - it's like their distributed computing but with a currency as a side effect!
Once a currency switches to ASIC the mining power becomes a more centralized.
It lowers the risk of investing in mining gear since it is more likely to be able to be repurposed should one chose to abandon mining. Lowering the risk of entry encourages entry.
Unfortunately the economics of ASIC manufacture is such that the entire world economy appears to be unable to support more than a small handful of top-tier chip fabrication facilities.
Having said that, currently it's unknown if an "ASIC-hard" PoW algorithm is possible, or more concretely, how much we can narrow the gap between dedicated ASICs and off-the-shelf, or at least semi-custom, hardware.
Most cryptocurrencies have an adaptive difficulty, where the amount of hash power required to mine a block is proportional to the average total power of the network in the recent past. So if Bob controls x units of hash power, the rest of the network controls N, and each block pays an expected reward R, then Bob's expected return per block is:
f(x) = R x / (N + x)
Of course, if Bob is small enough, f(x) is approximately equal to R x / N when x ~ 0. That is, small miners see expected returns proportional to their computational power [1], but miners large enough to represent a significant fraction of the network see nonlinear diminishing returns, at least until they get big enough to do a 51% attack and simply take over the whole network.I guess your idea is to make each individual miner's curve exhibit diminishing returns on a smaller scale than "a significant fraction of the network." The problem with trying to do this on the scale of a single miner is that the network has no way of "knowing" the identity of a miner. So if a single selfish miner named Sibyl with 1000 machines gets penalized by your system relative to 1000 independent miners with equally powerful machines, she can just have her machines pretend to be 1000 independent miners and get out of the "diminishing returns" region and back in the "linear" region near zero. There's no way the network can "know" that Sibyl's thousand accounts should be grouped together when it figures out what her diminishing returns should be [2]. Under the existing whole-network-power based diminishing returns system, Sibyl can't convince the network to increase her marginal return per unit computational power by pretending to be a thousand people.
[1] Assuming R and N remain constant, and when returns are measured in the currency being mined.
[2] Of course you could have a centralized entity approving accounts which has some way to audit Sibyl's 1000 machines and make sure they in fact represent 1000 different real people and broadcast a digitally signed statement that it's okay to give those 1000 machines the favorable diminishing returns for individual miners which is automatically checked by all honest nodes, but a system with such centralization is more like Paypal than Bitcoin.
Outside of 3D video games, the bulk power of most computers is already idle pretty much the entire time they are turned on.
http://www.reddit.com/r/ethereum/comments/1vh94e/dagger_upda...
They seem to be moving away from Dagger:
"We will switch our PoW from Dagger to a hybrid PoW/PoS system to be developed via a bountied competition conducted by our university partners and open to the general community for participation." https://bitcointalk.org/index.php?topic=428589.0;all
Whether this instills confidence that they are agile and not ideologues or shows inexperience is your call.
Note to readers: the exact wrong time to use an appeal to authority is this, the moment after your authority been disproven by facts.
Hashing as they are doing it requires several factors: what you need to compute is not handed out by a central authority, it is hard to compute, and is easily provable once computed.
folding@home and others do not usually fit 1 and 3. However, there have been some attempts, see Curecoin and Primecoin to a lesser extent.
I think the perspective just needs to change. Maybe a little handheld "protein receptor match" kit that you plug your numbers into, and it will "make" your particle to try to match in a small lab kit that is portable.
There needs to be a quick way to verify a correct solution.
There needs to be a way to pre-estimate the difficulty of the problem.
There should be a way to adjust said difficulty.
Ideally, there shouldn't be a time/memory tradeoff.
There have been a couple of attempts. GridCoin comes to mind. It works like a regular coin but you get a huge speedup in mining from Boinc credits. Probably easy to abuse and depends on a centralized server though so I'm not sure it could actually work.
so calling dagger flawed for being parallelizable is.. well, ridiculous.