I know the difficulty level and block reward are periodically adjusted in Bitcoin to keep the block time approximately to 10 minutes.

I guess these are not determined by a central authority but rather are determined in decentralized fashion. If so, what are the exact steps involved here? Each node independently computes on their own, propagates and will it be verified?

  • This seems like pretty well defined topics in Bitcoin, is there specific question or thing you don't under stand? Instead of of trying to explain the most general things which are probably already explained elsewhere in more appropriate format. Also simply describing exactly how the protocol works would be lengthy. Like block reward is the first transaction on a block, but you can go much exact than that. – marshal craft May 20 '18 at 3:23
  • You are right @PieterWuille. The question has this answer which I was looking for: "... but really each separate node calculating and enforcing it independently ..." – kee May 20 '18 at 17:45

Each node independently computes it on its own, following the formula:

At every block n with n beingg a multiple of 2016, look at the time stamps of the past 2015 blocks, and change the difficulty for what follows to old_difficulty*(2 weeks)/(time the past 2015 blocks took)

Each node does that calculation to make sure that any new block it finds will have sufficient difficulty in order to get accepted by other nodes on that network. This is all about how Bitcoin is kind of self-organized. A node can find a block with too little difficulty, but that will be next to useless as this block won't get accepted into the chain.

Not the answer you're looking for? Browse other questions tagged or ask your own question.