BlockThis is the approved revision of this page, as well as being the most recent.
Permanently recorded files at Bitcoin containing information on occurred transactions are called block. Block is the record of the every recent transaction or its part that has not been recorded in the previous blocks. Practically in all cases blocks are added to the end of the chain, which contains all transactions and is called blockchain. When a block is added to the end of the chain, it cannot be changed. Each block contains information about everything that happened in previous blocks before it was created.
|Magic no.||Value is always 0xD9B4BEF9||4 bytes|
|Blocksize||The bytes number should be added to the end of the block||4 bytes|
|Blockheader||Consists of 6 components||80 bytes|
|Transaction counter||Positive integer VI = VarInt||1-9 bytes|
|Transactions||Transaction list||Multiple transactions|
Each block, besides other components, contains in its header the record about several or all the recent transactions and record about the block that came just before the current. To create a new block miner has to solve the task that network provides. Each block has its unique solution, which is also written in the blockheader. This task is difficult to solve and it takes a lot of time, but as soon as one of the users (miners) solves the task, the network very quickly confirms the solution is correct. There are several solutions for each block and it’s enough to find at least one of them.
Since the reward for finding the block is 25 BTC, block also includes Bitcoin address, so reward is sent to it. The record of the transaction is called generation transaction, i.e. transaction of Bitcoin generation; it is always on the 1st place in the block transactions list. Bitcoin transactions are broadcasted by sender to the entire network; nodes collect information about them and guided by certain conditions include them in the found block.
The complexity of the task is regulated by Bitcoin so 6 blocks could be found per hour on average (1 block within 10 minutes). Every 2016 blocks (approximately every 2 weeks) the complexity in the network is changing - every Bitcoin client compares how much faster (slower) blocks have been found in comparison with standard values and, based on these data, the complexity is regulated to higher (lower) side.
Since each block has a reference in its heading to the previous one, we can say that they form a chain. There is a possibility that the chain can be divided, for example, if 2 miners simultaneously find a solution for a new block. Bitcoin system is configured to solve such chain branching as soon as possible, leaving only one branch. Reward for the block, which has been abandoned, is not charged.
Bitcoin client perceives the longest blockchain as the right one. "Length" of the entire blockchain is calculated as the sum of the complexities of all blocks in the chain, but not the sum of the blocks. Such calculation method does not allow anyone to make the "master" chain with a large number of blocks with low difficulty that prevents transactions forgery.