1

I understand that the blockchain is a decentralized database, however what I don't understand is who runs the bitcoin software. Is this also decentralized? There has to be some form of "backend" to run the checks and balances?

1

Being a decentralised consensus, with all nodes aware of all the rules and all acting in lock step, there needs to be no centralised controller for anything. Every participant using Bitcoin is responsible for coming to their own conclusion about the state of the network, making sure every piece of data is correctly formed and executed according to the consensus rules they are aware of. Should everything be working correctly, the state they come to will match that of their peers without ever having to consult an authority.

  • So where does the bitcoin to the "winner"'get issued from? – Daniel Gee Nov 5 '17 at 8:30
  • 1
    It’s “issued” by someone finding a new block that validates the network consensus rules, those rules include one that allows you to pay yourself a block reward when you solve a block. – Anonymous Nov 5 '17 at 10:06
  • Does that info get put into the block that was just solved? – Daniel Gee Nov 6 '17 at 9:40
1

There is no centralized backend.

The software that each user runs enforces the rules.

Whilst there is nothing stopping you from modifying the source code and trying to change those rules, all of the other nodes would reject anything invalid that your modified node tried to change.

(On the flip side of that, if enough people did agree to the rulechange that you implemented in your version, and they started running your version as well, then you could indeed change the rules that govern Bitcoin. It gets tricky from here but to simplify, on average you would need to get over 50% of the people running the software to change to your version for the new rules to be enforced.

When new coins are created, it's not because any centralized software issued them. Upon submitting a correct solution to the current problem to all of the nodes that the solver is connected to, all of those nodes will accept the solution, adding it to their blockchain (causing the coins to be created), and passing the solution onto their nodes as well. Within a short period of time, all nodes (running legit software that all agree on the same rules) will recognize the new solution, adding it to their blockchain.

If multiple solutions are created at the same time, some nodes will accept one and some nodes will accept another, creating a temporary fork. This is quickly resolved by the network, where ultimately one of the solutions (and its fork) will become the accepted one, and the other fork will be abandoned. This is why places often require a transaction to be x blocks back in the chain, to give a certain amount of time for any temporary forks to sort themselves out. As a solution becomes older and older, and more ingrained into the blockchain, it becomes more and more likely that it will never be part of an abandoned fork.

  • Thanks for the info. Very helpful! So when a new bitcoin is created, is it included in the next block or is it somehow automatically inserted? Also, I now understand that different miners can be working on different transactions in the blocks they are tryIng to solve. Is there a minimum / maximum transaction limit per block. How does the software decide which transactions to include in the block? – Daniel Gee Nov 5 '17 at 9:09
  • Daniel: A block exists because a solution was found to a math problem. All of the transactions that occurred during that time become part of that block (the correct solution to the math problem is in part based on all of the transactions that have been added to the block, which is why you cannot change any part of it afterwards).To your original question: The coins exist because the software "mints" them to the bitcoin address that solved the block. Thus, in addition to the transactions that are part of a block, every block is also granting new coins to the address that solved that block. – Cory Benjamin Nov 5 '17 at 9:19
  • There is a transaction limit per block. I believe it used to be 2megs (so not a limit on the number of transactions, but instead on the total size of them), however I might be out of date on how big a block can currently be. Normally preference is given to blocks that included a miner fee, but the logic to decide what valid blocks you do and do not accept is something that can actually be changed by each node without any other node regecting them (because transaction acceptance is a personal decision), so some nodes change it to be first come first serve, or fee only, or whatever they want. – Cory Benjamin Nov 5 '17 at 9:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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