Am I correct that addresses are hashed to compress a huge text-represented coprime into something of manageable size?

Am I also correct that transactions are hashed for the same reason and also because:

To create RSA signature keys, generate an RSA key pair containing a modulus N that is the product of two large primes, along with integers e and d such that e d ≡ 1 (mod φ(N)), where φ is the Euler phi-function. The signer's public key consists of N and e, and the signer's secret key contains d.

To sign a message m, the signer computes σ ≡ md (mod N). To verify, the receiver checks that σe ≡ m (mod N).

As noted earlier, this basic scheme is not very secure. To prevent attacks, one can first apply a cryptographic hash function to the message m and then apply the RSA algorithm described above to the result.


I cannot find a reason for blocks being hashed except to slow the rate that transactions are verified thus new supply is mined. Is this correct? If not, why are blocks hashed?

  • I'd say "no" to all 3, which means you may want to read more about how Bitcoin works... Commented Dec 18, 2013 at 18:34
  • @MeniRosenfeld Thank you for looking Meni Rosenfeld! Would you mind posting some links so that I can learn more? I've tried to read everything I can, but I can't seem to find explicit motivations for each individual technology. Thank you so very much in advance!
    – user5107
    Commented Dec 18, 2013 at 18:56

1 Answer 1


Bitcoin public key cryptography is not based on RSA, but on Elliptic Curves, so the key is not a huge coprime (in fact ECC manages to achive a similar level of security with much smaller keys).

About why blocks are hashed, the reason is not to slow down anything, quite the contrary: it's to speed up verification that a block "follows" the other blocks in the blockchain. One does not need the hash to verify the transactions (in either the current block or the past ones), but since each block contains the hash of all previous blocks (in a compact way known as a Merkle Tree), one can not simply create a block "isolated" from the blockchain (taking as much time as needed) and then just "insert" it in the blockchain to win the reward - it's necessary that a previous block is known before a new valid one is created.

The "hard" part is creating a hash that satisfies the difficulty criteria. A concise explanation of the process is given in this answer. But one does not need to "reverse the hash" or anything like that for any reason.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.