Bitcoin Forum
July 18, 2024, 03:19:56 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Why 10 min block mining?  (Read 411 times)
kaggie
Sr. Member
****
Offline Offline

Activity: 333
Merit: 506


View Profile
April 01, 2022, 06:57:26 PM
Last edit: April 02, 2022, 05:32:47 AM by kaggie
 #21

Satoshi discussed this here:

Satoshi, I figured it will take my modern core 2 duo about 20 hours of nonstop work to create ฿50.00! With older PCs it will take forever. People like to feel that they "own" something as soon as possible, is there a way to make the generation more divisible? So say, instead of making ฿50 every 20 hours, make ฿5 every 2 hours?
I thought about that but there wasn't a practical way to do smaller increments.  The frequency of block generation is balanced between confirming transactions as fast as possible and the latency of the network.

The algorithm aims for an average of 6 blocks per hour.  If it was 5 bc and 60 per hour, there would be 10 times as many blocks and the initial block download would take 10 times as long.  It wouldn't work anyway because that would be only 1 minute average between blocks, too close to the broadcast latency when the network gets larger.

He highlights latency of one minute being a main issue with a large network size. He also highlights being concerned about the total block size.

Bitcoin has a longer latency than possible because of how nodes request information, as he discussed in the mailing list on 17-11-2008,

Quote from: satoshi
The inventory-request-data scheme introduces a little latency, but it ultimately helps speed more by keeping extra data blocks off the transmit queues and conserving bandwidth.

Also related, in a letter to Mike Hearn, 12 Apr 2009, Satoshi wrote while discussing fast micropayments:

Quote from: satoshi
My choice for the number of coins and distribution schedule was an educated guess.  It was a difficult choice, because once the network is going it's locked in and we're stuck with it.
PrimeNumber7
Copper Member
Legendary
*
Offline Offline

Activity: 1638
Merit: 1899

Amazon Prime Member #7


View Profile
April 02, 2022, 04:32:40 AM
 #22

Was it by design or accident?

Arbitrary choice, it's unlikely satoshi performed research about effect block propagation on different block time.
He may well have performed some tests on various target block times, and chose 10 minutes because it was near the ideal target block time and is easy to remember.

I think it is unlikely that a 10 minute block target time is the optimal time from purely an engineering perspective. I think it is most likely that the 10 minute target time is a compromise between being able to easily explain how bitcoin works, and the optimal target block time. I would imagine that explaining that blocks are found on average, once every 9.45 minutes would probably hinder the long-term adoption of bitcoin
pooya87
Legendary
*
Offline Offline

Activity: 3514
Merit: 10713



View Profile
April 02, 2022, 05:01:22 AM
 #23

I think it is unlikely that a 10 minute block target time is the optimal time from purely an engineering perspective. I think it is most likely that the 10 minute target time is a compromise between being able to easily explain how bitcoin works, and the optimal target block time. I would imagine that explaining that blocks are found on average, once every 9.45 minutes would probably hinder the long-term adoption of bitcoin
If you want to figure out why Satoshi chose the parameters this way and if you are asking about "why 10 minutes" then you are already asking the wrong question because "10 minute" is not an existing parameter. The parameter that exists and should be investigated is "2016 blocks in 2 weeks". So the question should be what was the significance of 2016?

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
garlonicon
Hero Member
*****
Offline Offline

Activity: 828
Merit: 2007


View Profile
April 02, 2022, 06:05:36 AM
Merited by n0nce (2), kaggie (2)
 #24

In the prenet, it was coded in this way:
Quote
Code:
const unsigned int nTargetTimespan = 30 * 24 * 60 * 60;
const unsigned int nTargetSpacing = 15 * 60;
const unsigned int nIntervals = nTargetTimespan / nTargetSpacing;
That means, it was 15 minutes block time and retarget per 30 days. And we currently have this: https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L81-L82
Quote
Code:
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
consensus.nPowTargetSpacing = 10 * 60;
As you can see, only those first numbers changed. I guess Satoshi wanted one integer for timespan and one integer for spacing, where timespan was measured in days (M * 24 * 60 * 60) and spacing was measured in minutes (N * 60). Also I guess that he wanted to pick something to reach intervals without remainder. So, he switched from some obvious solution (M=30;N=15) to some less obvious, but still valid solution (M=14;N=10). It is less obvious, because 30/15=2 and has zero remainder, but 14/10=1 has non-zero remainder 4.

kaggie
Sr. Member
****
Offline Offline

Activity: 333
Merit: 506


View Profile
April 02, 2022, 06:44:28 AM
Last edit: April 04, 2022, 07:42:21 PM by kaggie
 #25

Also I guess that he wanted to pick something to reach intervals without remainder. So, he switched from some obvious solution (M=30;N=15) to some less obvious, but still valid solution (M=14;N=10). It is less obvious, because 30/15=2 and has zero remainder, but 14/10=1 has non-zero remainder 4.

That's a very good example.

Two weeks and ten minutes is simply easiest to remember.

If you have 30 days, then you have a constantly mismatch with the changing day of the month due to 28/29/30/31 all being possible days in the month. 30 days is a weird combination of regularity.. and not. It's better to set it at two weeks than 30 days because then you have something both easy to remember, regular, but also doesn't automatically confuse people with a changing day of the month. It's better to force people to have to think about the date if there's no possible regular day because culture and solar calendars don't divide easily together (365.25 days in a year, 7 days in a week..)

Ten versus fifteen minutes is probably similar thinking, with ten being slightly easier to remember, but both dividing from an hour easily. Five minutes is the only other possibility that fits within these logics of network usability and memory friendliness, but five minutes feels too short.

Your example shows that it is partly arbitrary though.
PrimeNumber7
Copper Member
Legendary
*
Offline Offline

Activity: 1638
Merit: 1899

Amazon Prime Member #7


View Profile
April 03, 2022, 03:45:23 AM
Merited by pooya87 (2), ABCbits (1)
 #26

I think it is unlikely that a 10 minute block target time is the optimal time from purely an engineering perspective. I think it is most likely that the 10 minute target time is a compromise between being able to easily explain how bitcoin works, and the optimal target block time. I would imagine that explaining that blocks are found on average, once every 9.45 minutes would probably hinder the long-term adoption of bitcoin
If you want to figure out why Satoshi chose the parameters this way and if you are asking about "why 10 minutes" then you are already asking the wrong question because "10 minute" is not an existing parameter. The parameter that exists and should be investigated is "2016 blocks in 2 weeks". So the question should be what was the significance of 2016?
The code has a parameter of recalculating the difficulty every 2016 blocks, however, the bitcoin whitepaper specifically references blocks being found once every 10 minutes.

The significance of a 2016 block period is, in my opinion, similar to my explanation as to why the 10 minute target for blocks is 10 minutes -- I think it is likely to be a combination of engineering optimization, and to allow for bitcoin to be easily explained to a non-technical user ("bitcoin's difficulty changes approximately once every two weeks" as being a dumbed down explanation as to how frequently the difficulty is recalculated).
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!