Tag: decentralization

  • Day 7 — If a Few People Control Mining, Is Bitcoin Still Decentralized?

    It might look like, from what has been discussed up to now, that Bitcoin is the perfectly balanced, fair and secure system. All transactions are verified by nodes, the miners compete to get their blocks added and their block reward, and this mechanism seems to keep the entire system running without anyone controlling it. But, if we look a little deeper, a problem can be spotted. The mining is a not easy operation. Specialized hardware and a lot of electricity is required for a process that, over time, becomes very competitive and exclusive. This begs the question, if mining becomes too expensive, won’t a small group of powerful miners take over?

    We can analyze the history of Bitcoin mining to understand how this came to be. When the Bitcoin system was launched, ordinary computers were enough for the mining activity. Everyone was able to run mining software on their PC and, eventually, gain a prize in BTC. Over time, with more participants involved, the difficulty of the cryptographic puzzle used to add blocks grew considerably. This made mining equipment very specialized and increasingly efficient machines, dedicated only to the Bitcoin mining. Gradually, mining went from a fun activity, or an extra income opportunity, to an industrial, large scale production process.

    As the race to mine bitcoins became more competitive, miners started to gather together, forming what are called “mining pools.” A mining pool consists of several miners who combine their computing resources and cooperate to solve the puzzle and achieve the mining of a new block. By pooling resources together, miners reduce the variability in their revenue, and can be paid more frequently than they could achieve alone. All mining pool members share the same amount of computing power that the pool has. When a block is successfully mined by the mining pool, the bitcoins obtained by that block reward are distributed proportionally among the members who provided the computer power.

    However, as more people join mining pools, we again see a problem: an increase of centralization of mining power. In fact, a single mining pool can easily possess a huge share of the Bitcoin network hash power and thus the capability of influencing the selection of the transactions to include into the block, or worse, the capability of launching a 51% attack on the network. An attack based on the 51% of the network computational power can even enable a user to rewrite the recent history of the Bitcoin block-chain. Fortunately enough, it’s nearly impossible to achieve a 51% attack due to its extreme cost. But the threat is still there and that might represent a weakness for the Bitcoin system itself.

    Although this tendency towards centralization does not completely ruin the system it must be said that, in fact, Bitcoin cannot become a centrally controlled system by few mining pools since any node of the network, no matter if he is a mining pool participant or not, is able to decide whether to consider a block valid or not, and if one mining pool starts to mine invalid block (by trying to fork the chain, for example) all the other nodes are supposed to stop mining it and continue to build up on a valid chain.

    We can thus observe that Bitcoin is a resilient system, resistant to external control thanks to the mechanism of independent nodes which validates blocks and miners which compete against each other. While the efficiency argument may make you think that Bitcoin could easily become a system controlled by few large organizations, its fundamental principles as well as economic reasons assure the decentralization that was at the heart of the project.

    This reveals us something important about Bitcoin. Despite the strength of its core design, it’s a system built to serve a purpose: transferring and storing value. As such, it does not support complex processes such as programmable agreements or distributed applications.

    The existence of such limitations opens a new question: would it be possible for the blockchain to do more than simply transfer value? Could it be used as a development platform to automate logic and build applications?

  • Day 3 — Who Verifies Bitcoin Transactions If There Is No Bank?

    By now something about Bitcoin should start to feel a little bit strange. You send over some cash and it is logged in a global ledger, there is no bank and no one controlling the ledger, and it somehow all still works out. When you take a moment and think about that you will find that there is a nagging, awkward question: since there is no single entity approving the transactions, who is to stop people from cheating?

    In the traditional finance world there is always a central party to maintain trust. When you make an electronic transfer over a bank you are trusting that they are confirming you have the balance required, they are also verifying your identity and then the key point they are confirming you don’t double-spend your funds. Without these checks and balances it would be a simple matter for everyone to cheat and so you have a concept known as double-spending where people try to spend the same funds over two separate transactions.

    Bitcoin overcomes the double-spending problem in a quite peculiar way. Instead of replacing the central trusting party, they are instead distributing trust over thousands of independent parties. To simplify the idea think about what would happen if you put that many students in a classroom and had no teacher and no leader. Everyone would have their own little notebook where they record their transactions and when one student calls out that they want to make a transaction, all the other students would look in their notebook to verify if that student has enough funds or that it hasn’t already been transferred before. If it hadn’t, the transaction is recorded by everybody.

    Scale that up to the entire world and you will start to get a rough idea of how the bitcoin system works with thousands of computers called nodes constantly running and recording each transaction. When a transaction is announced to the entire network these nodes go and check that it isn’t trying to be double-spent or isn’t otherwise illegal, and then everyone adds that to their ledger. However it wouldn’t do any good for nodes to confirm all the transactions, the actual chain needs to be built somehow.

    That’s where miners come in. Miners are a specific group of people running on the network, they pick up all of the verified transactions and then try and bundle it into a block and be the one to add it to the blockchain. They don’t add the next block however simply by choosing which one they want it to be and because they want to, it has to be the one that solves a very hard problem. Whoever solves the computational puzzle first is rewarded with the new block (which contains new bitcoin), but the way that it’s done makes it so that only someone with more computational power than the rest of the network combined could manipulate the system.

    The problem and the system itself looks slightly convoluted but without both sides of this ‘verification’ and ‘miner’ equation the system wouldn’t work. However there is a more deep layer to all of this. You’ve heard of this computational puzzle the miners have to solve but what is this puzzle exactly and why is it so difficult? The puzzle lies at the center of Bitcoin’s security framework.