We’re rewarding the question askers & reputations are being recalculated! Read more.

Hot answers tagged

13

Generally speaking, a larger block leads to more computational resources (tx validation, bandwidth, storage, memory) required for each person who wishes to validate newly confirmed transactions. Higher validation cost lead end-users to rely on/trust centralised services to "validate" their transactions. Larger blocks require more time to propagate in the ...


5

The order must be causal. Most blocks today have outputs that were created earlier in the block.


5

They aren't really necessary. The reason that they are included can only be known by Satoshi, and AFAIK, he did not state why he chose to include nBits in the block header (or many other things that are just arbitrary). This is one of the many things that Satoshi chose to do and no one really knows why. It remains in the block header today because removing ...


4

Directly committing to the nbits allows you to determine how much work was used to produce the header statelessly before looking for (or fetching) information about prior headers. This can help fend of DOS attacks sending junk headers to force you to do work determining or fetching their ancestors.


4

for example, the one with the "best hash" (number further away from the difficulty cut)? Deterministic criteria like that would allow the entire network to quickly know which block wins, and everybody would then build on top of that block. Much less hashpower would be wasted on the dead branch. If you see that you are very likely going to win on ...


4

The blockchain (at least as far as Bitcoin goes) is a series of transactions, collected in blocks. This data is stored on each and every full node (pruning aside). There is no cloud based storage as part of the bitcoin network, although third parties host various forms of parsed data in the form of explorers and other such products, some of which may use ...


4

I also believe I read that the signature part can account for 65% of the block size. This is not entirely correct. The typical size of a block depends on the make-up of transactions in that block. The size of signatures to overall block size will depend on the number of inputs in a transaction. More the number of inputs in a transaction, higher the ...


4

What if after this phase the first miner or more than 51% of them decide to keep the current production rate ? Do their block will be refused like if they had produced a wrong block ? Exactly. This is no different than if a miner (or a majority of miners) created blocks which paid out anything more that 12.5 BTC today: the network would simply ignore the ...


3

what happens if size of a transaction is larger than maximum block size? Then the transaction can never be included in a block. There is no mechanism for dividing it up into multiple blocks, or anything like that. Any block that includes it would be invalid, since the block would become too large for the network's rules. This may be of interest: Block ...


3

When transactions are received, nodes will hold those transactions in memory (the mempool) whilst mining software attempts to mine a new block. A miner will try to fit as many transactions into a block as they can, so as to earn more fees if they successfully mine a block. If there are more transactions than will fit in the block, the miner must filter them ...


3

What's in a Block? A block is a data structure that contains transactions as well as metadata about the block. All transactions must be included in a valid block in order to be considered final. All full nodes on the network will store a copy of the block in order to validate new transactions and share the data with other nodes. Block Structure $ bitcoin-...


3

For details of the specific byte structure of a block, see resources like the Bitcoin Wiki article on blocks. For a transaction, see the article on transactions. The actual data storage happens within the transactions, within their intput and/or output scripts. Theoretically, any script could be made including arbitrary data, but due to network standards, ...


3

A segwit block's coinbase transaction must contain an output with a commitment to the witness root hash, see BIP141. The commitment is recorded in a scriptPubKey of the coinbase transaction. It must be at least 38 bytes, with the first 6-byte of 0x6a24aa21a9ed, that is: 1-byte - OP_RETURN (0x6a) 1-byte - Push the following 36 bytes (0x24) 4-byte - ...


3

For a good portion of its history the bitcoin network has seen continuous increases in difficulty, which warps the average block time to be below 10 minutes until the next difficulty adjustment. If the reverse were true the block time would be longer in kind. This latency serves to protect nodes against isolation attacks where you could otherwise ...


3

The cap on the block size excluding witness data is 1000000 bytes. There is no cap on block size including witness data. Instead, there is a limit on the block weight at 4000000 weight units. Depending on the composition of the block, 4000000 WU can correspond to anything from 1000000 bytes to close to 4000000 bytes (including witness data). But a block ...


2

There aren't two part to a block like you describe. The word segregated in segwit means that the witness data isn't included in the TXID computation similar to how it always wasn't included in the signature hash computation. It's still included in transactions and blocks. With segwit, the signatures are in each transaction in a witness field that is ...


2

I believe what merklexy wanted to know is how to get information about the block. And the answer is, you cannot get details about the block from its hash. If you have access to the bitcoin command line interface (bitcoin-cli) then you can simply execute bitcoin-cli getblock 00000000000000000045c639280aee532c5b12b03c80bfdec7aae674fd8246e0


2

The leading zeroes is what makes altering block data hard. One of the things that makes a block valid is that it's hash is less than some predetermined value. For simplicity, this can be thought of as the hash has to have some predetermined number of leading zeroes. However making such a block meet that requirements is hard and being able to do so proves ...


2

A segwit block differs from a non-segwit block in that it is required to have the witness commitment in an OP_RETURN output of the coinbase transaction. Additionally, the block will contain witness data (duh!) which due to blocksize limit increase to 4,000,000 weight units allows the block to exceed the former blocksize limit of 1 MB. Segwit introduced the ...


2

You can store arbitrary bytes in a Bitcoin transaction which are not validated but can be confirmed in the blockchain given sufficient fees. op_return is a Bitcoin script op_code used in output scripts and which, when executed on the script interpreter will return the script run as invalid, thereby rendering the output "unspendable". Now, because the ...


2

Blocks cannot be modified because the next block contains a hash of the previous block's header. Any change to a block would result in a change to the header, and thus, change its hash, requiring all blocks which succeed it to also be modified because their hashes would no longer be valid. It isn't possible to rebuild all of the blocks because it requires ...


2

A BTC/BCH node does not supply aggregate information on addresses. You could consult one of the block explorers out there, most of them do provide balances for addresses.


2

Nick Odell answers the original question: The maximum transaction size is the size of the block. Source. and Transactions larger than 100 kilobytes (including witness at a 75% discount rate) are non-standard. Source 1. Source 2. so the case that you are describing will not occur as transactions lager than the blocksize will be sorted out.


2

Using Bitcoin Core, if you start it with -debug=net (or add debug=net to your bitcoin.conf file), every single network message will be included in the debug.log file along with the node it came from. You can then parse the debug.log file to get the information you want.


2

I assume you mean scriptPubKey in the outputs of the coinbase transaction. Assuming that, what you are describing is popularly known in cryptography as a pre-image attack. If you can find a 'collision' with fixed existing message (in your example that is the original coinbase transaction) in such a way that they both produce identical hashes then you have a ...


2

If you were using a fork of Bitcoin Core, your small scale network would not work. Assuming you did the basic chain parameter modification or just firewall yourself from the rest of the Bitcoin network, there are two major things that are missing: peer discover, and mining. Bitcoin Core by default uses a process called DNS Seeding in order to discover seed ...


2

Do Full Nodes validate all transactions after all bitcoin are mined? Yes. Also, would these nodes still create blocks of transactions Yes if so, why dont full nodes do this now? Do what? Validation? If so, full nodes certainly do validate now. In fact, full nodes validating is what keeps miners in check. Is mining only a safety mechanism for a ...


2

This output value corresponds to the dust limit that is imposed on bitcoin transactions. Many of these outputs may have been generated as a dust attack to de-anonymize users/ addresses.


2

In addition to Chytrik's mention of a dust attack, dust limit transactions are also used heavily by the Omni Layer to identify the recipient of an omni asset. Transactions such as those will follow pattern of one dust (or near dust) output, an OP_RETURN output, and a change output. While dust attacks tend to create thousands of dust outputs in a handful of ...


2

which, as I understand it, makes some data (until 2017?) real without verification. You understand incorrectly. Firstly, the assumevalid blocks is updated at every major release, so it is at most a couple of months out of date for the most recent release. For Bitcoin Core 0.18.0, the assumevalid block is ...


Only top voted, non community-wiki answers of a minimum length are eligible