Bitcoin Forum

Other => Beginners & Help => Topic started by: example on June 22, 2011, 12:49:17 PM



Title: technical details of bitcoins
Post by: example on June 22, 2011, 12:49:17 PM
Why is it so fricking hard to find the technical details? This is an open system, so shouldn't there be some documentation about what is done how? Of course i could check the source-code of the clients, but there ought to be a better way oO

- What exactly are these blocks? (sha256 hash of old-block + time + ???)
- when exactly are blocks shared with a pool and under which conditions are they accepted?
- why do these two conditions differ?
- what are the protocols for BCN transfers, block generations, etc.etc.
- what is the difference between solo-mining and pool mining? Why can i not submit a block found in pooled-mining as my own via solo-mining? (i know, there have been some posts about this, but there should be some documentation?!....)


Title: Re: technical details of bitcoins
Post by: Drifter on June 22, 2011, 01:00:22 PM
http://bitcoin.org/bitcoin.pdf

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

All you had to do was go to the homepage.

Pools are only used because the difficulty is so high it would take a long time for an individual to solve his own block. In a pool, the generated block can be split between the participants so you get payed less amounts, more often.


Title: Re: technical details of bitcoins
Post by: luxgladius on June 22, 2011, 01:06:07 PM
Why is it so fricking hard to find the technical details? This is an open system, so shouldn't there be some documentation about what is done how? Of course i could check the source-code of the clients, but there ought to be a better way oO

- What exactly are these blocks? (sha256 hash of old-block + time + ???)
- when exactly are blocks shared with a pool and under which conditions are they accepted?
- why do these two conditions differ?
- what are the protocols for BCN transfers, block generations, etc.etc.
- what is the difference between solo-mining and pool mining? Why can i not submit a block found in pooled-mining as my own via solo-mining? (i know, there have been some posts about this, but there should be some documentation?!....)


The source isn't too bad to read.

A block is a version number, a hash of the previous block in the chain, a hash which is a Merkle root of a transaction tree, a timestamp, a compact representation of the target to generate the block, a nonce, and a tree of transactions.

Blocks are shared with the pool when their hash is below a certain target value that depends on the current difficulty. The only other criteria is if the block is part of the longest work chain, so orphaned blocks won't be shared.
Every transaction has inputs and outputs. For every input, you have to prove that you control the outputs of another transaction by having a key that matches that output. For every output, you specify a key or an address that the other person uses to prove they are the recipient of that output in a future transaction. Block generation is done by incrementing the above mentioned nonce and hashing a block until the resulting hash is below a certain target value.
In solo mining, you make your own blocks and try to find nonces that solve them. In pool mining, you work on blocks that are provided to you by some private point. You send back blocks that are almost solved (below a certain target) as your proof of work, and the controller verifies them. You are paid based on how much work you do, not whether your computer happens to be the one that completely solves the block. You could submit solved block yourself if you're the one that happens to solve it, but since the controller creates the block, including the recipient address of the generating transaction, it wouldn't do you a lot of good. And you could rewrite the recipient address yourself, but then you'd pretty much be solo mining and there's no point in being in the pool.

Hope that helps.


Title: Re: technical details of bitcoins
Post by: example on June 22, 2011, 01:10:32 PM
Thank you luxgladius, that helped a lot.

@Drifter: I checked the homepage, put that paper is not really very informative regarding the datils. And this forum doesn't really help either. I missed the technical category of the wiki though. That might actually help. Thank you for pointing me in it's direction.


Title: Re: technical details of bitcoins
Post by: Stupidpal on June 22, 2011, 01:29:44 PM
http://bitcoin.org/bitcoin.pdf

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

All you had to do was go to the homepage.

Pools are only used because the difficulty is so high it would take a long time for an individual to solve his own block. In a pool, the generated block can be split between the participants so you get payed less amounts, more often.

That helped me a lot as well.