Post
Topic
Board Development & Technical Discussion
Re: Can/should Bitcoin software be reconfigured to limit the # of miners?
by
NotATether
on 26/02/2021, 13:34:04 UTC
1. So when it takes 20 minutes to produce one transaction, this 20 minutes has nothing to do with the number of people trying to produce a transaction at the same time? Example: What if only one person vs 1 thousand people was trying to do a transaction at the same time?

It takes a variable, unknown time to find a block. You cannot guess exactly when the next block will be mined in advance.

After every 2016 blocks, the network takes the time it took to mine the first block, and subtracts it from the time it took to mine the last block. This is its estimate of the average time it took to mine each of the 2016 blocks (collectively called an epoch). It then uses this average time as a scaling factor for the difficulty, multiplying the difficulty number (which defines how hard finding a block will be) by average_time/default_consensus_defined_average_time (<-- defined as 10 minutes for the main network). This changes the difficulty and "normalizes" the average time to find a block back to 10 minutes.

However, external factors outside the networks control, such as new miners coming or getting shut down, again changes the average time away from 10 minutes, and then the difficulty (and the average time along with it) has to get adjusted again after the next 2016 blocks.





You are correct in saying that the time to mine a block has nothing to do with the number of transactions made then*. All of the transactions that are broadcasted live in a special area of the node's memory called the mempool, and miners pull some of these transactions, as many as can fit in 1 megabyte, from their own nodes, and create a block out of them which they then submit, via their own nodes, to the network to other peers.

* The one exception is sometimes, miners find a block before they can process all the transactions into a merkle tree, and therefore they submit the block without a merkle tree of transactions. These are called empty blocks.

But, i feel like answering these questions won't do you any good... you really need to brush up on the basics before you go any further... We're happy to answer your questions and applaud new people to enter our community, but we cannot give you private education on the basic principles, especially not in the very inefficient form of answering these questions... you need to do that by yourself, and if you have questions that aren't readily found in books, whitepapers and youtube video's: please ask them.

I'm a firm believer that people will be better off if we answer their questions then and there, else hey could lose interest in crypto for not understanding how it works.