03 February 2013 Introduction A Bitcoin mining program essentially performs the following (in pseudo-code): while(nonce < MAX): if sha(sha(block+nonce)) < target: return nonce nonce += 1 The task is to find a nonce which, as part of the bitcoin block header, hashes below a certain value. This is a brute force approach to something-like-a preimage attack on SHA-256. The process of mining consists o