Tag: bitcoin network

  • 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 2 — Where Did My Bitcoin Actually Go?

    Earlier, we came across an astonishing idea. It is possible to send money through the internet without any banks being involved. Instead of financial institutions verifying and storing transactions, it is through a network of global computers that a public ledger known as the blockchain is formed. It is only natural to ask an obvious question: Where do transactions go when you send Bitcoin to someone?

    As the answer is clear for the banking systems, if you make a transaction with your bank it simply adds this record to its own database and decrements from your balance while incrementing the recipient’s balance, all on a central bank server. However, for the Bitcoin network it is quite different. When you send Bitcoins, the transaction is broadcast to thousands of global computers that communicate among each other to maintain synchronized database of transactions.

    You could better understand this if you compare it to a Google Sheet where every single transaction of Bitcoin ever is recorded and every participant of the Bitcoin network holds a copy. Whenever a new transaction takes place, it gets added to all thousands of copies of this Sheet. Thus, if you send Bitcoin to your friend Rahul, it is declared to everyone in the network who then updates their copy of the global ledger.

    This ledger of all transactions is what is known as the blockchain. There is really nothing fancy about this word other than it represents a chain of records where records containing transactions are added in chunks called blocks. When a block becomes full, it gets added to the previous chain of records which can be said as creating a sequence of entries.

    An easy way to conceptualize the blockchain is to consider it as a diary page containing a group of transactions which are recorded after the specific time period expires, it is sealed and another page is started. Collectively, pages form a complete transaction history of the Bitcoin network.

    Once a block is formed and added to the chain, it becomes nearly impossible to edit it as the transaction will affect all subsequent blocks too; and that too is practically impossible with so many users in the network to coordinate that change in all of the blocks in the network at the same time. The transactions thus added are made publicly visible, though not linked with actual identities, which means everyone can see the entries on the blockchain and verify its integrity, but not the identities of individuals behind each transaction, rather strings of characters called wallet IDs will be displayed in place of them.

    The entire process is completely contrary to banking which uses its own private databases to maintain records which are then verified and managed solely by them. Here, the blockchain, which is public and open to everyone to verify, ensures a network that is transparent yet maintains privacy through a unique system of identity.

    But there is a remaining question; how does a particular set of transaction get verified, collected and formed into a block, linked and then recorded into the global blockchain? Well this task is designated to a group of users called miners who in return for their services are given Bitcoin as a reward. They are the ones who collect pending transactions, pack them into blocks and make them accessible to the whole network in return of mining new bitcoins.