One of the really interesting thing about the blockchain, is that you can write a smart contract script that will permiate forever.
using a hashed transaction instead of a signed transaction is a wierd mistake to make, but not an uncommon one of people who are just learning to write blockchain code. I know we are talking about BTC here and opcode is rather limited, but this type of thing pervades on ETH.
Imagine writing a PWN script as a 14 year old and waking up when you are in your late 20's to a millions dollars in crypto.
I'll try to give a brief here about how Bitcoin script works but you'd better read up on the Bitcoin wiki.
Essentially, to make a transaction valid, your script needs to pass.
1. <PubKey> + <Signature> -> This is how most transactions are handled. You provide the transaction with a signature. This doesn't expose your private key and lock the receiver. (as the receiver is signed)
2. <Hash> + <Hashed Content> -> To solve for Hash, you need to provide the Hash Content essentially solving the puzzle. Problem is, if you provide the Hashed Content publicly in the Script, anyone can also submit a competing transaction and set himself as the receiver.
Edit: typo
Fascinating that the original cracker wouldn't know these details about Bitcoin transactions.