verify
two checks, both done in this tab. nothing is sent anywhere except read requests to the chain.
the bytes
challengekeccak256( mint[32] || u64_le(block)[8] || slot_hash[32] )
sharekeccak256( challenge[32] || beneficiary[32] || u64_le(nonce)[8] )
validu64_be(share[0..8]) < target
hashes per share2^64 / target
retargetnext = target × 600 × duration / (shares × 600), clamped to [target/4, target×4] then [2^30, 2^56]
rewardunallocated / 6, where unallocated = pot − (allocated − paid)
sats per sharereward × 10^9 / shares (fixed point); a miner earns floor(shares × sps / 10^9)