The blockchain is the list of all solved blocks, essentially the ledger of all transactions completed in the Bitcoin network. Each block contains (among a few other things) a list of transactions. When you do a transaction, it is not destined for a specific block. The first transaction in a block must be a coinbase transaction which should collect and spend any transaction fees paid by transactions included in this block. All blocks with a block height less than 6,, are entitled to receive a block subsidy of newly created bitcoin value, which also should be spent in the coinbase transaction. 12 rows · 2 days ago · Latest Transactions Note: BlockCypher is faster than other blockchain APIs, .
Bitcoin block transactionsBitcoin Block Explorer | BlockCypher
You merely publish your transaction to the network and it goes onto the list of unconfirmed transactions. There is actually no one authoritative list, however, everyone on the network keeps their own list and distributes it to others to whom they are connected.
Miners who solve the hashing puzzles required to "solve" a block and make it official will typically include all unconfirmed transactions in the blocks they create. But they may not. They may just not have received your transaction in their part of the network yet. Or, if your transaction didn't have a fee included, they may only be willing to process transactions with fees. Technically, they are under no obligation about which transactions to include in the block.
But since miners get fees from many transactions, and miners benefit from the strength of the Bitcoin network, transactions are typically quickly included in a block. To answer your second bullet, yes, an unconfirmed transaction is one that has not yet been included in a block. And to answer your final bullet, no, new transactions cannot be added to older blocks.
The "solution" to a block is a mathematically hard puzzle to solve, and it is based on the transactions that are included. So, if you added a transaction to an older block it wouldn't be the same block any more. And the "solution" wouldn't work either, so it would essentially have to be re-mined. And to further complicate adding a transaction to an older block, each block also includes a piece of information from the previous block in the block chain.
Meaning that if you added a transaction to an older block or modified it in any way , you would not only have to re-solve the old block, but you would have to re-solve all blocks between that block and the current block.
And since no one would recognize your re-solved blocks unless you were able to create an even longer blockchain than what currently exists, it isn't realistic to be able to do so.
You would have an extremely large amount of processing to and you would have to solve it considerably faster than the rest of the world was working on the old block chain. The exception is if you have more mining computing power than everyone else in the world combined. This is all by design. The point of the block chain is that the history of transactions is unalterable and mutually agreed upon as the truth.
If it were possible to add transactions into the past, you could change that history. And, for example, spend the same bitcoins twice. But because of this chaining of bitcoins that isn't possible. It is also why most people don't consider a transaction final until it has "6 confirmations".
What "6 confirmations" really means is that the block that it is included in is 6 deep in the block chain. At that point the block chain is deep that it is considered completely unalterable. There's no requirement that any transaction go to any particular block, but if it is a valid transaction and has sufficient priority, it will be included into one of the next few blocks.
No, older blocks are immutable. Roughly, think of the blockchain as an append-only ledger of bitcoin transactions. You're quite right. The block chain is a list of blocks, and each block contains a list of transactions.
Together they form an authorative and global ordering on all transactions. An unconfirmed transaction is indeed a transaction that is not yet in a block. Miners build new blocks to extend the chain, and use unconfirmed transactions to fill them. Once a block is made, it is immutable, so older blocks are never modified, only new ones are appended. Your transaction does not go to a specific block. A miner chooses a list of transactions and work on them to " solve " the block and once a block is "solved", it is broadcast to the network, and all the transactions in the block becomes confirmed.
Sign up to join this community. The best answers are voted up and rise to the top. Which is the relation between transactions and blocks? Ask Question. Asked 7 years, 9 months ago. See the nBits format described below. An arbitrary number miners change to modify the header hash in order to produce a hash less than or equal to the target threshold.
If all bit values are tested, the time can be updated or the coinbase transaction can be changed and the merkle root updated. Version 2 was introduced in Bitcoin Core 0. As described in BIP34 , valid version 2 blocks require a block height parameter in the coinbase. Also described in BIP34 are rules for rejecting certain blocks; based on those rules, Bitcoin Core 0. Version 3 blocks were introduced in Bitcoin Core 0.
Transactions that do not use strict DER encoding had previously been non-standard since Bitcoin Core 0. The mechanism used for the version 2, 3, and 4 upgrades is commonly called IsSuperMajority after the function added to Bitcoin Core to manage those soft forking changes.
See BIP34 for a full description of this method. Draft BIP9 describes the version bits design as of this writing, although it is still being actively edited and may substantially change while in the draft state. The merkle root is constructed using all the TXIDs of transactions in this block, but first the TXIDs are placed in order as required by the consensus rules:.
Any input within this block can spend an output which also appears in this block assuming the spend is otherwise valid. This ensures that any program parsing block chain transactions linearly will encounter each output before it is used as an input.
If a block only has a coinbase transaction and one other transaction, the TXIDs of those two transactions are placed in order, concatenated as 64 raw bytes, and then SHA SHA hashed together to form the merkle root. If a block has three or more transactions, intermediate merkle tree rows are formed. If there are more than two hashes in the second row, the process is repeated to create a third row and, if necessary, repeated further to create additional rows.
Once a row is obtained with only two hashes, those hashes are concatenated and hashed to produce the merkle root. The target threshold is a bit unsigned integer which a header hash must be equal to or below in order for that header to be a valid part of the block chain. As a base number, nBits can be quickly parsed as bytes the same way you might parse a decimal number in base scientific notation:. Although the target threshold should be an unsigned integer, the original nBits implementation inherits properties from a signed data class, allowing the target threshold to be negative if the high bit of the significand is set.
This is useless—the header hash is treated as an unsigned number, so it can never be equal to or lower than a negative target threshold.
Bitcoin Core deals with this in two ways:. When parsing nBits, Bitcoin Core converts a negative target threshold into a target of zero, which the header hash can equal in theory, at least. When creating a value for nBits, Bitcoin Core checks to see if it will produce an nBits which will be interpreted as negative; if so, it divides the significand by and increases the exponent by 1 to produce the same number with a different encoding.
Difficulty 1, the minimum allowed difficulty, is represented on mainnet and the current testnet by the nBits value 0x1d00ffff.