(long quote)
Awesome explanation, sending 0.25BTC over. I think I have a good enough explanation of the math to go forward, however (and this is a really dumb question), the block that has to be a factor of the origin of the prime, we just convert the hex of the previous block (so say we are trying to mine block 54320, we would convert the hex of block 54319 to decimal, correct?)
Oh, and another dumb question... What does '≡' mean?
Thanks for the BTC! The explanations on ≡ are correct. It's just a fancy equals sign for modular arithmetic.
As for the divisibility requirement, it is
not just the block depth (not sure if that was what you were asking). If it were then it would be trivial to start working on the prime chain for the 75,000th block far ahead of time and everyone would be looking for the exact same primes at the same time, meaning the fastest computer would always win. It is also not just the hex of the block, I don't think, as that would open it up to someone trying to manipulate the block to have the correct hex to allow a precomputed chain of primes to be accepted. As I understand it you essentially perform a single Bitcoin-style proof of work hash on the block you're looking at and then instead of checking to see if that number is less than a difficulty target as you would do in Bitcoin you search for numbers divisible by it. I'm not sure the exact order that everything has to go into this hash, but I know that it includes the previous block's hash, the time, the Merkle Root of the transactions, an arbitrary nonce, and likely other data.
Looking at the data associated with a few blocks it would appear that the specific hash that is used is not the current block's "hash" that is used to identify it; I think that hash includes data about the prime chain, which means it can't be used as a requirement for what the primes are. Looking at block 54321, for example, the prime origin is 4981759032498050152560261402218509159687271713794968969555671831618386493918345
8194973000. The primorial used here appears to be 2*3*5*7*11*13*17*19*23 (since it is not divisible by the next prime number, 29). That means the hash was most likely 2233042693160946897388635236176982778377126850264183238825907717991339881869979
00, or 7887e497dbc303fd77e86f8c2ce7c73d96d039643ab695c311987fc2a16f6bfc48 in hex. If one were to take the (most likely SHA256) hash of parts of the block in a prescribed order then they should get that number. however, troublingly, that number is 67 hex digits long, which is 268 bits; it appears that I've either made an arithmetic error or that I've misunderstood the procedure.
As an aside, not the security that this divisibility requirement brings: the hash value above was approximated by Wolfram Alpha as about 2.2 * the number of atoms in the visible universe. It is effectively impossible to work on a block out of sequence by guessing a valid origin, as you would be guessing until the heat death of the universe.