TIL How ASIC boost works. You have X amount of data to hash from a block. Because SHA256 takes chunks (64byte) at a time, you can feed it all the 'constant' chunks first then 'save' the 'midstate' before introducing the chunks that need to change. This saves ~20%. Idk why it's that % but I intend to find out.
There are a couple of pages on this in The Blocksize War that I read, super interesting
I should read that...
this is one thing that continues to confuse me. i understand the idea but how is it not just a part of sha256?
SHA takes in chunks of data at a time. If you know the first X chunks of data will be the same (block template pieces like tx's) then you input that stuff first, now you have a 'midstate' or checknpoint to start from. You don't need to rehash those initial chunks. If you're doing SHA256 for secure comms, this is retarded and dangerous. If you just want PoW, it helps save ~20% work