What is dagger algo plz?
Dagger is a "memory-hard to compute, memory-easy to verify" Scrypt alternative algorithm. "memory hardness" is a property of PoW functions that assumes that valid proof of work should require not only a large number of computations, but also a large amount of memory. he reson WHY memory hardness is important is to make the PoW function "resistant" to specialized hardware, what is considered ASIC-resistant. That doesnt mean its ASIC-"PROOF" just that it makes setting up a mining rig against the network is much less cost-effective.
With the advent of ASIC mining rigs, which are designed for the sole purpose of computing the billions of SHA256 hashes required to mine a block of Bitcoin, with greater efficiency and less KW/H, it has become nearly impossible for ordinary users with normal GPU and CPU hardware to compete for mining block rewards. The presence of ASICs has removed the "democratic distribution" of mining, meaning there is a further cetralization of mining power in the hands of fewer and fewer individuals.
This can lead to the "51% attack" where one cabal which has control of the simple majority of the hashing percentage devoted to the verification of a blockchain can essentially hijack the blockchain. This means that a pool of miners with ASICSs can obtain a majority of network power, potentially enabling massive double spending attacks and preventing transaction confirmations, holding the blockchain hostage. "Memory hardness" is designed to alleviate this problem by making the main limiting factor in hash computations MEMORY and not CPU power.
Naturally, with GPU mining of dagger hashimoto algorithm coins, mining rigs created of several high powered graphics cards again tilts the balance of power away from the average home based computer with generic CPU and GPU capabilities, but not by as steep a factor as ASIC mining has pushed out BTC miners at home. Theres still room for improvement in the algorithms, as you can find miners at several pools who are contributing massive amounts of computational power towards solving blocks of Ethereum, another Dagger-based currency.
For example, at suprnova, a single user, anonymous of course, is processing 11,223,958 KH/s (11.2GH/s) towards the ETH network via the pool, mining 550+ ETH a day, which has a value of nearly 1.5BTC ($400USD) every single day. This is accomplished by linking together MANY multiples of expensive graphics cards. Its a lot more expensive to set up than a SHA256-dedicated ASIC mining rig, both in hardware costs and in electrical consumptin, but it IS effective. And it is a factor towards mining centralization, but nearly as much so as what BTC faces with massive ASIC-farms. When you consider that approximately 7200 ETH are mined a day (given a 60second block time), the megaminer at suprnova is only generating about 7.6% of the daily Ethereum.
A single 25MH/s producing video card (like the Radeon R9 series) can likely mine .6 ETH/day on a mining pool. Not as great a profit, but a better volume than BTC mining allows nowadays. So even though its not as intrinsically democratically distributed as was envisioned, every person mining on the daggr algorithm specific currencies has a better chance of solving a block for its reward, or for gathering a somewhat substantial rate of return in mining on a pool.
So.. dagger works like this: the Dagger algorithm creates a directed acyclic graph (the DAG you notice setting up the first time you start mining using geth ((or in our case gsoil)) and which updates every epoch [which i believe is every 200,000 blocks] and can take several minutes to generate) DAG is the technical term for a datatree in which each "node" is allowed to have multiple "parents", with ten levels of data including the root and a total of 2 to the power of 25 - 1 values. This equates to a total DAG size of about 512MB, as each memory unit is a 32-byte hash.
In levels 1 thru 8 of this data tree, the value of each node depends on three separate nodes in the level above it, and the number of nodes in each level is eight times larger than in the previous level of data. When you reach level 9 of the data tree, the value of each node depends on 16 of its parents in the level above it, but the level itself is only twice as large as the previous.
Finally, the Dagger algorithm uses the all the underlying data, combined with a nonce (which is a 32-bit [4 byte]) data field designed to make the "hash" of a block contain a run of 0s, (the cryptographic hash function) and when mining many MANY nonce combinations are tried in order to produce the correct hash to solve the block, and when found, the result is a valid proof of work, and the block reward is dispersed. It takes 512MB to evaluate, 112KB memory and 4078hashes to verify the block, making it very much memory-hard instead of computationally-hard.
Theres room for improvement with further democritizing the mining processes, and no matter what algorithm is created, there will ALWAYS be that one clever ape who designs a working rig to improve their chances, but with the dagger algo, theres at least a more equilibrious playing field. That all being said, i still prefer getting a little more frequently from a mining pool than i do waiting and praying that my 800KH/s Radeon R5 GPU will find a block EVENTUALLY, MAYBE. but at least with dagger, if i wanted to push all my power into solo mining, i still have a CHANCE, which is much more than BTC or many other popularily mined coins.