Bitcoin Forum

Other => Beginners & Help => Topic started by: Smack on April 16, 2013, 10:55:03 PM



Title: Bitcoin Hashing in english with math. :-)
Post by: Smack on April 16, 2013, 10:55:03 PM
Hello,

     I have found a lot of information on the bitcoin protocol but I was wondering if someone could help me understand the process of requesting a block, the hash process, get / return messages / golden ticket won processes, etc.

Meaning... 

Lets say that we are going to map out the process in English without worrying about hardware OS etc.

Our client is a magic box that will just do what ever we tell it to do.  :-)


Thanks,
Smack




Title: Re: Bitcoin Hashing in english with math. :-)
Post by: troner on April 16, 2013, 11:04:23 PM
I think the best place to start is wiki at https://en.bitcoin.it/wiki/Mining

BTW, what do you mean by "golden ticket won processes"?


Title: Re: Bitcoin Hashing in english with math. :-)
Post by: Smack on April 16, 2013, 11:32:15 PM
Yes to answer your question.

I have looked at that link.

I guess I am looking for a more complex version of the South Park underpants gnomes.

1. ask for block?
2. Do something.
3. Win a golden ticket!


That is a joke, but I am looking for a step one, step two process understanding.

Thanks,
Smack


Title: Re: Bitcoin Hashing in english with math. :-)
Post by: DannyHamilton on April 17, 2013, 03:35:41 AM
I'll take a stab at it.  Not sure just how much detail you're looking for.

  • A hash of the previous block is added to a new block header
  • A set of unconfirmed transactions are chosen
  • A merkle root is generated from the list of transactions and included in the new block header
  • Other block attributes are added to the new block header (Block format version, Block length, Timestamp, target, transaction count, etc)
  • A nonce is chosen and added to the block header
  • A SHA-256 hash of the block header is calculated
  • A SHA-256 hash of that hash is calculated
  • If the value of the resulting hash is less than the target, the block is "solved" and broadcast
  • If the value of the resulting hash is not less than the target, the nonce is incremented and the previously mentioned double-hash is calculated
  • The increment, double hash, compare process is repeated until a hash with low enough value is found or a solved block is received from a peer.
  • If all possible nonces have been attempted, then some other information in the block is modified and the process is repeated

Which of these steps are you looking for more detail about?

More information:
https://en.bitcoin.it/wiki/Block_hashing_algorithm


Title: Re: Bitcoin Hashing in english with math. :-)
Post by: Smack on April 17, 2013, 05:39:55 AM
Thanks!  That did help.

That put me on the right path to understand what I am trying to figure out.

I am going to do a "I want to understand project"  I am going to try to write a very slow C# application that will Mine.  Understand that this is not being done because I think I can mine like speed racer with a C# application.  I am doing this because I want to fully understand the hashing/mining process.

Thanks,
Smack.