Hello, I’m thinking about the distant ASIC future.
Is it feasible to implement from the start an automatic graph size increase (i.e. from 2^30 to 2^32) once certain conditions have been met (like average difficulty beyond some threshold for the last K blocks)?
If it is known and implemented in advance, it would save the need to vote/decide on it when the time comes. Like the system in the movie “Dr. Strangelove”…
I also tried to answer the same question. My thoughts were directed towards the siphash-2-4 function that becomes very dominant.
Edit: removed wall of text
What if a big player (like Bitmain) tries to switch lots of hashrate to grin on order to unexpectedly trigger the threshold for bigger cuckoo while already preparing (or running) stockpiles of prepared HW in advance? Would not that be also bad? Just thinking…
I also played around with the hash function. We use it only on one “message” (i.e. the 64 bit nonce) but pay the expensive init / finalize steps that are supposed to be amortized over a stream of messages. See Table 6.1 (cycles/byte vs data length) in the Siphash paper – https://131002.net/siphash/siphash.pdf
Maybe there exists a more suitable (efficient) hash function than Siphash-2-4. I think that subject deserves its own topic.