Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Bitcoin Magazine on April 08, 2014, 02:36:41 PM



Title: What is the math involved in calculating the hash of each block
Post by: Bitcoin Magazine on April 08, 2014, 02:36:41 PM
What is hash and how is it related to the Markel Root, Block number, etc..?

and how is it tested?

if we wanted hashes to begin with lots of 0's couldn't we technically start at all 0's and work up till we found a hash that worked?  are there any better ways to solve a block without hashing?


Title: Re: What is the math involved in calculating the hash of each block
Post by: maaku on April 08, 2014, 03:19:22 PM
You might find this helpful:

http://en.wikipedia.org/wiki/SHA-2


Title: Re: What is the math involved in calculating the hash of each block
Post by: jl2012 on April 08, 2014, 04:07:16 PM
Please read bitcoin wiki before asking simple factual questions like this

https://en.bitcoin.it/wiki/Main_Page


Title: Re: What is the math involved in calculating the hash of each block
Post by: DannyHamilton on April 08, 2014, 04:21:20 PM
What is hash

http://en.wikipedia.org/wiki/Cryptographic_hash_function

Bitcoin uses SHA-256 (http://en.wikipedia.org/wiki/Sha2) has for mining, and RIPEMD-160 (http://en.wikipedia.org/wiki/RIPEMD) hash for generating bitcoin addresses.

and how is it related to the Markel Root,

A Merkle root is the top hash in a tree of hashes performed in a particular order:
http://en.wikipedia.org/wiki/Merkle_tree

Block number, etc..?

Blocks are uniquely identified by their hash value.

and how is it tested?

Calculate the SHA-256 hash of the block header.  If the result is low enough to satisfy the current difficulty, then the block header is "solved".

if we wanted hashes to begin with lots of 0's couldn't we technically start at all 0's and work up till we found a hash that worked?

Hashes can't currently be performed in reverse.  They are a one-way function.  You start with some sort of data, then you perform the hash algorithm on that data.  The result is a has value.

The following is not possible:
  • Start with a hash value
  • Perform an algorithm on the hash value
  • The result is a valid bitcoin header

are there any better ways to solve a block without hashing?

A bitcoin block?  No.  The definition of a "solved" block is a block header that results in a double SHA-256 hash value that is less than a target value.  Therefore, repeatedly hashing while modifying a nonce between each attempt is currently the fastest way known to "solve" a block.