I was doing a little research with venice.ai today on the difficulty adjustment and differences between the proof of work mining between BTC and ZEC. There a a few results I’m not 100% sure are correct, therefore before assuming anything I’d like to get any feedback on the below…
Equihash requires a significant amount of memory to solve, making it more difficult for ASICs to dominate the network. This allows for a more decentralized network and greater participation from individual miners using GPUs.
Bitcoin’s difficulty adjustment algorithm is based on a simple moving average of the time it took to mine the previous 2016 blocks. The algorithm adjusts the difficulty every 2016 blocks, or approximately every two weeks, to maintain a target block time of 10 minutes. The adjustment is based on the ratio of the actual time it took to mine the previous 2016 blocks to the target time of 20160 minutes (2016 blocks x 10 minutes per block).
Zcash, on the other hand, uses a difficulty adjustment algorithm called the “Digishield” algorithm, which is a modified version of the “Kimoto Gravity Well” algorithm. The Digishield algorithm adjusts the difficulty every block, rather than every 2016 blocks like Bitcoin. The algorithm uses a more complex formula that takes into account the time it took to mine the previous blocks, as well as the block time of the previous 17 blocks.
The Digishield algorithm is designed to be more responsive to changes in the network’s hash rate, which can help to prevent large fluctuations in the block time. This is particularly important for Zcash, which has a much smaller market capitalization and hash rate compared to Bitcoin, making it more vulnerable to 51% attacks.
In summary, the main difference between Zcash’s difficulty adjustment and Bitcoin’s difficulty adjustment is the frequency of adjustments (every block vs. every 2016 blocks) and the algorithm used (Digishield vs. simple moving average).
Yeah you shouldn’t rely on ai summarizations for accurate data. The part about Equihash is vastly outdated. The part about Digishield is actually new to me, I’m not sure but may be truthy?
A quick search here, apparently yes it is a Digishield thing. The github links to a discussion, quik scroll thru (kinda long) I see a post mentioning the behavior follows a damped harmonic oscillator, which doesnt say much about the code (have to peruse a little more) but maybe just about how it behaves. The thread is old and the target block time has since changed to 75 secs vs 150
Thank you for pulling this up. So this is very old and based on the github it does appear the difficult updates with every block but I’m not sure that is still true.
If you run a full node e.g. zebra or zcashd, then you can actually get that info on-demand with a getdifficulty call. There are other ways that dont require you to host your own node, such as explorers and public, or otherwise hosted, nodes. After that you could examine or collect difficulty data and maybe graph trends. You can see the block difficulties in the individual block. https://mainnet.zcashexplorer.app/
zebhub may have this data, hangon. Ok no but they do host tx volume data so thats cool.
Excellent. Thanks for sharing. The reference says, “Let ToTarget be as defined in 7.7.4 ‘nBits conversion’ on 133.
Difficulty is defined in terms of a target threshold, which is adjusted for each block according to the algorithm
defined in 7.7.3 ‘Difficulty adjustment’ on 131.
The difficulty filter is unchanged from Bitcoin, and is calculated using SHA-256d on the whole block header (including
solutionSize and solution). The result is interpreted as a 256-bit integer represented in little-endian byte order,
which MUST be less than or equal to the target threshold given by ToTarget(nBits).”
Therefore, I can confidently say the difficulty is adjusted “each block”
You could try, the hard pert will be finding a Equihash miner that still works. EWBF Cuda and others were designed for graphics cards rather than CPUs.
It’s likely to be wildly unprofitable though since ASICs can get 420k Sols/sec at the high end, 40k at the low. Even in the Zcash mining heyday the best high end GPUs only got a few hundred Sols/sec.