Bitcoin (BTC) broke through the historic maximum of $ 19,900, after which it corrected. It is incredibly important not to get lost in the turmoil and not forget about the technical progress Bitcoin. Anyone who thinks about buying bitcoins should learn at least two things: the history of the technology behind Bitcoin; and, more importantly, what Bitcoin awaits in the future. As the Bitcoin expert Andreas Antonopoulos says: " Invest in education, not in speculation ." Because Bitcoin and the underlying blockbuster are such incredibly new technological concepts, attempts to learn and understand their basic technical details can sometimes inspire fear. This article is written in an attempt to highlight Bitlock's problem of scalability and the expected or proposed solutions to this problem. Some very interesting solutions are discussed in the article! I wrote this as I studied Bitcoin myself to gather more information about Bitcoin 's future from countless existing sources. In the process of writing, I did not forget about those who do not have knowledge of programming. Nevertheless, it is assumed that the reader has the most basic understanding of Bitcoin as a currency and what constitutes a blockade. We have already posted wonderful articles about what bitcoin is, and how to understand the technology of blockade that will help both beginners and those who need to refresh the memory. Let's start with the scalability problem before Bitcoin. Transaction throughput problem Introducing Bitcoin to the world, the creator of Satoshi Nakamoto described it in Whitepaper as "a purely peer-to-peer version of electronic money that will allow online payments to be sent from one side to the other without the intermediation of a financial institution." One of Bitcoin's fundamental advantages was instant and secure peer-to-peer payment transactions. Today Bitcoin is increasingly acting as the leading crypto currency in the global market, whose value has grown by more than 1600% in the last year alone. Because of this unprecedented growth, the number of Bitcoin transactions has also increased, and up to 400,000 transactions are conducted daily. Such a rapid growth in transactions can grow into a serious problem of blocking scalability since now more than 170,000 transactions are queued as unconfirmed. To understand why transactions are lined up, you first need to explain Bitcoin's transactions themselves. Every time one Bitlock user sends a transaction from his wallet to another, the transaction is added to the memory pool (mempool), which is essentially a collection of all unconfirmed transactions in the Bitcoin network. This pool is supported by smaller individual pools on machines that store copies of the registry of the block, called nodes (nodes). From the pool of memory, the miners select transactions that they want to confirm. When the miners recognize the transaction as valid (that is, they confirm that the sender has enough bitcoins to send to the recipient), they add it to the new block, which is subsequently published in the locker. Then the other nodes recheck the transactions of this new block to make sure it's authenticated before adding the block to its registry. Calculate the throughput of transactions: The average transaction size is about 250 bytes; The block size is limited to 1 MB (approximately 1,000,000 bytes); Thus, the block contains approximately 4000 transactions (1 MB divided by 250 bytes); A block can be published in a blockade on average only once every 10 minutes (600 seconds); Every 600 seconds is published (maximum) 4000 transactions, with a speed of 6.66 transactions per second. If there are more than 170,000 unconfirmed transactions in the memory pool, how does the miner choose which transactions to confirm? Commission! The transaction sender has the ability to add to the transaction an arbitrary commission for the miner, which motivates the miner to select and confirm the transaction more quickly. Miners select transactions with the highest commission to maximize profits. Theoretically, you can send a transaction without commission. But if there are transactions in the pool with a higher commission than yours, then why should your transaction be selected at all? As the Bitcoin user base grows, the average commission for a transaction grows. Every second, only a maximum of 7 transactions are processed, and everyone wants their transactions to be confirmed first. At the moment, the average commission is about $ 17 . This commission is clearly not ideal - if you want to send a friend bitcoins for a couple of dollars, then you may have to spend more on the commission than the transaction itself! Here lies the problem, and if nothing changes, the commissions will grow due to traffic congestion. Solving the Bandwidth Problem To solve this problem with traffic jams that caused a lot of disagreement in the Bitcoin community, it is suggested simply to increase the initial block size limit of 1 MB, which will allow to include more transactions into the block. With each increase in the block size in the chain, a hard fork is required, that is, a completely new copy of the block is needed, which requires the consensus of the Bitcoin community. Since Bitcoin is used by millions of people, it is difficult to reach a consensus, so we must try to avoid this. In addition, although it is possible to increase the block size enough to eliminate the current transaction queue, as Bitcoin's user base continues to grow, sooner or later a queue of unconfirmed transactions will appear again, so it will be necessary to increase the block size again, and therefore, to implement one more hard fork. So why not simply make the block size so that there will never be a traffic jam, no matter how many users appear? First, block-sized mathematics, at least close to dealing with mass development, is impractical and will limit mining to incredibly powerful machines that only large corporations can hold, which will introduce an element of centralization. With 1 billion transactions per day: Blocks at 1.6 GB (1655 MB); 87 terabytes / year (87028089 MB); Perhaps enough for one metropolis? Centralization (mining!). In addition, remember that after the block is extracted, all other nodes must confirm it before it is accepted. If the block size is incredibly large and someone publishes an unreliable block, the nodes will have to spend a huge amount of time checking the block before discarding it as unreliable and moving on to the next one. In fact, you can organize a DoS-attack, repeatedly publishing insanely huge unreliable blocks on the network, suspending the processing of reliable blocks for a long time. As the blocker pioneer Nick Szabo said in an interview , the small block size serves as a technical security parameter preventing the network from overloading. More about the full effect of increasing the block size, if Bitcoin conquers the world, you can read the article I wrote here. If you can not increase the size of the block, then what can you do? Fortunately, there are several solutions in the development, with the help of which, it is expected, it will be possible to solve this problem. Segregated Witness (SegWit) Segregated Witness, in fact, was already implemented in the bitcoin network in August 2017. This is a fundamental network change that modifies the transaction format, actually reducing their size and allowing to include more transactions into the block, which increases the bandwidth. Seguin is considered a soft-fork, that is, it is completely backward compatible with the current Bitcoin protocol, although the nodes and wallets need to be updated in order to take advantage of all SegWit properties. Each transaction contains the sender's signature, or in other words, the certifying data , which usually makes up most of the transaction. This data is not really necessary to confirm the transaction, so SegWit moves them to the end of the transaction, separating them. If a transaction is sent to an older version (not upgraded to SegWit), then the node cuts the certifying data from the end of the transaction before inserting it into the block, reducing the overall transaction size and saving space). An additional advantage here is that the nodes can no longer modify the credentials by changing the sender, which they could do earlier. This allows us to implement multi-level solutions, which we will talk about shortly. Users also save on commissions, since they are usually calculated for the number of bytes in the transaction, and SegWit reduces the overall transaction size. In addition, SegWit changes the block definition: the block is defined not by bytes, but by "weight": the maximum weight of the block can be 4000. Transactions of the old version have a weight of 4, while the transaction weight with SegWit is 0.25, so the block can contain much more transactions with SegWit and have a slightly larger size (maximum about 2 MB). To follow this definition and send transactions with SegWit, the nodes and wallets must be upgraded to SegWit. As a result, the development of SegWit is slow and amounts to only 12% of the current traffic. In view of the mentioned advantages of SegWit, I strongly recommend that all readers use wallets that have already implemented SegWit to speed up its development. A good list of them can be found here (my personal favorite is the purse Samourai for Android ). If you want to know more about the intricacies of SegWit, then Jimmy Song wrote about this wonderful article "The size of the SegWit block. " Multilevel Solutions At the moment Bitchevoin's block system is not very suitable for micropayments. If you want to buy a cup of coffee for $ 2, then you probably have to spend more than $ 2 on the equivalent of BTC on the commission, and the transaction will not be confirmed instantly - you will have to wait until the transaction is published in the confirmed block in the chain, The case will take 10 minutes. Second and third-level solutions are networks built on top of Bitcoin's blockbuster, allowing users to send multiple transactions to small amounts in bitcoins almost instantaneously and without commissions. Lightning Network is such a built-in network, currently under development, which should smooth Bitcoin's problems with scalability. This network consists of two additional levels and allows users to open two-way channels for instant transfer of the almost unlimited number of payments to each other. Lightning Network. Second level The user connects to the second-level network by conducting a transaction in the blocker, announcing that the user reserves a certain amount of bitcoins for use in the superset network. After that, the user is connected to a group of connected nodes, which are called channel factories. These nodes, in fact, support the corridor of participants potentially willing to make transactions with each other. Then the channel factories allow creating an unlimited number of micro-payment channels between the individual participants at the third level (therefore they are called factories). Third level Micro-payment channels provide direct payments between two users at the third level. Since there is no more block at this level, it can not be used to confirm transactions and create guarantees that one party paid the other. Instead, the technology of smart contracts is used, in particular, addresses with a multi-signature , i.e., addresses that can be signed by several users for the transfer of funds, and time -locked hashed contracts , cryptographically protected automated contracts blocking funds for a while, so that Ensure that the parties do not deceive each other. These technologies eliminate the need for trust between users connected to microsphere channels. Here is an example of the work of the microsphere channel Lightning Network: Alice wants to allocate 1 bitokoyn on the micropayment channel with Bob. She announces the use of this 1 bitcoin in a backup transaction in Bitcoin's locker. This 1 bitcoyne is then blocked on the multipode address that both sides can sign if they want to close the channel. This address is protected by a hashed contract with a timeout , which states: "Alice has 1 BTC, Bob has 0 BTC, publish in an hour." This means that Alice's 1 bitcoin is blocked for an hour, after which he will return to Alice and will again be published in Bitcoin's blockade. After that, Alice decides to give Bob 0.1 BTC. This transaction is recorded in a new hashed contract with a time-out, which says: "Alice has 0.9 BTC, Bob has 0.1 BTC, expiration of 50 minutes." The expiry date of this contract is 50 minutes, which means that it will be published in the lock-up to the original contract, where it is said that Alisa has 1 BTC. Consequently, Bob immediately recognizes that he has 0.1 BTC, because this new contract will be published in the locker before the original contract, effectively making the old contract void. At the end of the hour, the micropayment channel closes, and the final balance between Alice and Bob is published in the detachment. If Alice and Bob are willing to continue to make transactions, they can extend the expiration of the channel as much as they want. If one of them wants to close the channel before the initial time, he must sign the original address with a multi-signature, which stores bitkoy. The network allows transactions to reach the destination using other users connected to the channel as intermediaries. This is possible even if the current microspin channel does not have a direct connection to the desired user. For example, if Alice has a channel with Bob, and Bob has a channel with Mark, and Alice wants to send bitcoins to Mark, the network can send a payment to Mark through Bob, without the need for any one of the parties to trust someone. The implementation of Lightning Network transactions and the lack of confidence in them can be incredibly complex, and they are best explained by Lightning developers during this conference or in the next series from ecurrencyhodler : Lightning Network (Part 1) . Ideally, users will very rarely create transactions that reserve funds for the second level, because they will stay in the built-in network for the majority of their daily transactions for a long time. When a user wants to exit this multi-level network, a settlement transaction is made in the lockbox , announcing the final bit of the new user balance after all activity at the second level. This is how the overall balance of the new balance is reconciled after being matched with the original backup transaction. As a result, there are only two transactions in the block system that allow the user to make an unlimited number of transactions at the second level for free. As already mentioned, SegWit paves the way for Lightning Network, eliminating the ability of nodes to modify authentication data, which is just used to identify the user's input to the second level. If the user's backup transaction can not be detected because the user's credentials have been changed, additional difficulties arise when attempting to reconcile a user's settlement transaction. The second level of the Lightning Network, including channel factories, was recently introduced in this whitepaper . He is still in active development, so many of his concepts are explained in an abstract way. Nevertheless, the network is planned to be launched in 2018 , and this will at the moment be the most significant improvement in transaction scalability. Schnorr's Signatures When the user sends a bit-transaction, the transaction input (the amount to be sent) is calculated by simply extracting the total amount of the previously obtained bit-caps from the block-account. For example: Starting with an empty wallet, I get 1 bitcoin in transaction # 1 and then 1 more bitcone in a separate transaction # 2. Now I want to send 2 bits in one transaction. In this transaction there will be two inputs: transaction # 1 and transaction # 2, in the sum of 2 bits. With the current algorithm for generating signatures (the algorithm for digital signatures based on elliptical curves (ECDSA)), each signature requires its own signature. This increases the overall size of the transaction, and therefore, the commission. Shnorr's signatures are an alternative and more efficient way of storing signatures in transactions. All inputs are combined and stored in a single signature thanks to the Shnorr algorithm, which significantly saves space in the transaction and additionally helps to increase the throughput of transactions, allowing blocks to store on average more transactions. Shnorr's signatures can also contribute to Bitcoin's progress in terms of confidentiality, if used in CoinJoin's transactions. CoinJoin is a method of introducing anonymity in Bitcoin's transaction. It consists in combining the transaction inputs when sending a payment to the recipient in one pool with the transactions of other people. When payments are pooled, it becomes difficult to track which input is sent by which user, which actually makes them anonymous. However, in transactions CoinJoin higher commission due to the greater number of entries in each transaction and, as a consequence, more signatures. The use of Shnorr's signatures will allow you to compress all the signatures of the transaction into one, which will significantly reduce the commission and will facilitate the use of CoinJoin. In addition, Shnorr's signatures open the way to complex transactions with a multi-signature that requires signatures from several parties. No matter how many parties whose signatures are required for the transaction, one sign of Shnorr is enough. Shnorr's signatures became possible only now, thanks to the implementation of SegWit. Since the signature data can not be modified by third parties, they can now be used to effectively create the signature of Schnorr. MimbleWimble MimbleWimble is a radical but incredibly effective proposed Bitcoin architecture change, anonymously introduced in July 2016 in this whitepaper . The goal of this change, named after the spell of tongue tones in a series of Harry Potter books , is to completely remove transactions from blocks. When using MimbleWimble, transactions consist only of the sum of the entry, the amount of withdrawal and the signature. The transcription can be decrypted only by the recipient, so it is the recipient that confirms the transaction. Consequently, the blocks consist only of the sums of the input of all transactions, the sums of the output of all transactions and their respective signatures. Subsequently, the blocks can organically merge with the previous blocks, since they represent just a couple of sums of input and output. After that, the nodes can cryptographically make sure that the transactions in the blocks do not create extra bitons (that is, the net difference between the inputs and outputs in the blocks is zero), without having to decrypt the transactions. This elimination of transaction storage gives all users complete anonymity, eliminating the possibility of generating a transaction history. In addition, since the blocks contain only unencumbered transaction outputs (i.e., bitcoins received by the address, but not yet moved), the size of the block, according to the whitepaper, can be reduced by more than 60%. This reduction in size means that to confirm the block of MimbleWimble nodes, you will only need to view unassigned transaction inputs, not all transaction data, which will exponentially increase performance. MimbleWimble's mathematical details are beyond the scope of this article, but they are explained in detail in a whitepaper . Although MimbleWimble presents some clear advantages and technical breakthroughs, its implementation requires the elimination of the Script system, which relies on a significant part of the existing Bitcoin architecture. As a consequence, the implementation of MimbleWimble on Bitcoin's hardware is technically not practical. However, there are suggestions for implementing MimbleWimble as a sidechain . Saidchayn is a separate blockade, directly connected with the Bitcoin blockade through a two-way binding. This linkage makes it possible to exchange assets between two blockboys and "binds" the value of the seidchean asset to the value of bitcoins. With this scheme, users can exchange bitmoines for MimbleWimble tokens, conduct completely confidential and fast transactions in the MimbleWimble blockbuster, and then at any convenient time exchange the MimbleWimble tokens for battles. Sidechain tokens are tied to Bitcoin's blockade, operating parallel to it with a fixed exchange rate. The development team is already developing MimbleWimble as a separate crypto currency called GRIN . Recently it was implemented in a test network and, possibly, will be launched in the near future. Rootstock Rootstock, smart contracts on Bitcoin's blockbuster , for some reason one of the least discussed improvements to Bitcoin's technology, is clearly one of the coolest. Rootstock is described as "the first open platform of smart contracts with a bidirectional binding to Bitcoin, which also rewards Bitcoin miners through merger mining, enabling them to actively participate in the smart contract revolution . " Like MimbleWimble, Rootstock is developed as a Bitchewan blockboy's sidechain. Its fundamental importance lies in the orientation towards smart contracts. Rootstock aims to become a complete Turing (fully programmable) platform for smart contracts, backward compatible with the virtual machine Ethereum. This means that Rootstock will be able to execute any smart contracts developed for the Ethereum platform, as well as smart contracts developed for its own platform. Rootstock seeks to implement this flexible functionality of smart contracts, while taking advantage of the relatively dominant user base and Bitcoin cost, acting as a two-way sitecchan. It will also be protected by the existing network of Bitcoin miners, as a result of which he does not need to motivate the miners to protect his blockade. Rootstock also seeks to solve the problem of transaction scalability by implementing its own version of a multilevel solution called Lumino . This will allow you to commit up to 20,000 transactions per second. The launch of Rootstock is scheduled for the end of 2017. Overall, the platform should ideally function in parallel with bitcoin, and if its claims come true, it will certainly bring an unprecedented practicality to Bitkoy's network. In conclusion If you have read this far, congratulations! I hope you managed to learn something about Bitcoin's future, and it filled you with enthusiasm, just like me. Bitcoin is not perfect and faces challenges, the solution of which falls on the shoulders of a purposeful and evolving community of developers working tirelessly. Innovations appear every day, and I'm sure that you will not have time to finish reading it, as there will be another interesting proposal for Bitkoyn's detachment. This article should in no case be considered comprehensive; if you know of something that I did not mention, tell me about it in the comments!