Bitcoin (BTC) recently smashed an all-time high of $11,400 USD and subsequently dropped to spil low spil $8,595 within a few hours. It’s amazingly significant to not get lost ter the tumult and to stay informed about how Bitcoin is progressing technologically.
Anybody considering buying Bitcoin should at the very least learn two things:
- the history of the technology behind Bitcoin
- and more importantly, what lies ahead te Bitcoin’s future.
With Bitcoin and its underlying blockchain being such amazingly fresh technological concepts, it can seem daunting at times to attempt and research and understand its underlying technical details. This article is written ter an effort to highlight the scalability problem Bitcoin faces, and what expected or proposed solutions to that problem are. There are some truly titillating ones out there that this article discusses!
I wrote this spil I wasgoed learning about Bitcoin myself, to aggregate the fine amount of information about Bitcoin’s future from uncountable sources out there. When writing this, I kept te mind even those who don’t wield a programming background. However, it is assumed that the reader has a very basic understanding of Bitcoin spil a currency and what a blockchain is. Coindesk has a good 5-minute read that should get you up to speed here if you’re just beginning out with Bitcoin or if you need a refresher.
Let’s start with the scalability problem Bitcoin faces.
The Transaction Throughput Problem
When Bitcoin wasgoed very first introduced to the world, its creator Satoshi Nakomoto described Bitcoin te the Bitcoin whitepaper spil “A purely peer-to-peer version of electronic contant would permit online payments to be sent directly from one party to another without going through a financial institution.”
One of Bitcoin’s fundamental values wasgoed instant and secure peer-to-peer payment transactions. Now, more than everzwijn, Bitcoin is emerging spil the prevailing cryptocurrency te the global market, with a 1,200%+ increase ter value overheen the last year alone.
Because of this unprecedented growth, the number of transactions on the Bitcoin blockchain has also enhanced, with up to 400,000 transactions vanaf day being conducted. This rapid increase te transactions is posing to be a serious scalability problem for the blockchain, with overheen 90,000 transactions being backlogged spil unconfirmed at the uur.
Te order to understand why transactions are being backlogged, Bitcoin transactions voorwaarde very first be explained.
Every time a user sends a Bitcoin transaction from his or hier wallet to another, the transaction is added into the memory pool (mempool), which is essentially a pool of all unconfirmed transactions te the Bitcoin network. This pool is upheld by individual memory pools on machines that also hold a copy of the blockchain ledger, called knots.
From the mempool, miners select transactions that they want to verify. Once miners validate a transaction (i.e. confirm that the sender actually has enough bitcoins to send to the receiver), they add it to a fresh block, which is eventually published to the blockchain. Other knots then iterate through this freshly published block’s transactions to ensure the block is valid, before accepting the block spil a part of its ledger.
Let’s calculate the throughput of transactions:
- The median transaction size approximately 250 bytes
- A block’s size is limited to 1MB (1000000 bytes)
- Thus, a block holds around 4000 transactions (1MB divided by 250 bytes)
- A block can only be published to the blockchain once every Ten minutes on average (600 seconds).
- 4000 transactions (at most) are published every 600 seconds, at a rate of 6.66 transactions / 2nd
With overheen 90,000 unconfirmed transactions te the mempool, how does a miner select which transactions to verify? Transaction fees! The sender of a transaction has the option of adding a custom-built transaction toverfee to its transaction intended for the miner, incentivizing a miner to select the transaction and have it verified swifter. Miners will select the transactions that have the highest toverfee affixed to them to maximize profits. Theoretically, you can send a transaction with no toverfee. But if there are transactions that have fees higher than yours ter the pool, why would yours everzwijn get picked?
Spil Bitcoin’s user base grows, so does the average transaction toverfee. At most, there are only 7 transactions that are processed every 2nd and everyone wants to get their transaction verified very first. At the ogenblik, the average transaction toverfee is approximately $Trio.58 USD. This toverfee is certainly not ideal — if you want to send your friend a duo of dollars worth of bitcoin, you may end up spending more te transaction fees than the transaction value itself! Therein lies the problem, and if all else remains equal, transaction fees can be expected to rise due to the transaction knelpunt.
Solving the Throughput Problem
A proposed solution to this verkeersknelpunt that has brought superb controversy to the Bitcoin community is to simply raise the block size from the original 1MB limit, thus permitting more transactions vanaf block.
Every time the block size is enlargened ter the chain, a hard fork is required, meaning an entirely fresh copy of the chain vereiste be created, therefore requiring overeenstemming from the Bitcoin community. Because millions of people use Bitcoin, gaining overeenstemming is difficult and efforts should be made to avoid it. Furthermore, albeit the block size can be enhanced enough to accommodate the current backlog of transactions, spil Bitcoin’s userbase proceeds to grow, there will eventually be another backlog of unconfirmed transactions, so another block size increase will be needed, and subsequently another hard fork.
So why don’t wij just make the block size large enough to ensure the throughput will never be a verkeersknelpunt, no matter how many people are using it? Very first, the mathematics of a block size even remotely large enough to treat mass adoption are impractical and will restrict mining to exceptionally powerful machines that only large corporations will be able to maintain, introducing an factor of centralization.
Furthermore, recall that once a block is mined, all other knots voorwaarde validate the block before accepting it. If the block size wasgoed amazingly large and somebody were to publish an invalid block, knots would waste a large amount of time attempting to validate the block before discarding it spil invalid and moving onto the next block. A denial of service attack can essentially be orchestrated by repeatedly publishing insanely large invalid blocks to the network, stopping valid blocks from being processed for a long period of time. Spil stated by blockchain pioneer Nick Szabo te this vraaggesprek, the petite block size acts spil a technical security parameter to prevent network flooding.
You can read more about the total influence of an enhanced block size if Bitcoin were to take overheen the world, ter an article I’ve written here.
If wij can’t increase the block size, what can wij do? Fortunately, there are several solutions te the works that are expected to be deployed ter order to solve this punt.
Segregated Witness (SegWit)
Segregated Witness (SegWit) has actually already bot implemented into the Bitcoin network, spil of August 2018. It’s a fundamental network switch that modifies the format of transactions, essentially slimming them down te size, and permitting more transactions to be getraind into a block which increases throughput. SegWit is considered a soft fork, meaning it is totally rearwards compatible with existing Bitcoin protocol, albeit knots and wallets voorwaarde upgrade to take advantage of all SegWit features.
Each transaction has a signature from the sender, or ter other words, witness gegevens, this is usually the largest part of the transaction. This gegevens is not actually necessary to verify the transaction, and so SegWit moves this gegevens to the end of the transaction, segregating it. If this transaction is sent to a legacy knot (a knot that has not upgraded to SegWit), the knot strips the witness gegevens off the end of the transaction before inserting it into a block, thus reducing the overall transaction size and saving space. The added benefit of this is that knots can no longer modify the witness gegevens, switching who the transaction wasgoed from, an capability knots previously had. This makes way for the implementation of multi-layer solutions that we’ll discuss soon. Users also save on transaction fees, spil they’re usually calculated vanaf transaction byte, and SegWit reduces total transaction size.
Furthermore, SegWit switches the definition of a block: instead of a block being defined te terms of bytes, its now defined ter terms of “weights”, a block can have a maximum weight of Four,000. Legacy transactions have a weight of Four, while SegWit transactions have a weight of 0.25, thus enabling a block to contain many more SegWit transactions and have a slightly higher size (approximately Two megabytes at most). Knots voorwaarde upgrade to SegWit to go after this definition, and wallets vereiste incorporate SegWit ter order to send SegWit transactions. Spil a result, SegWit adoption has bot slow, accounting for only 12% of current traffic.
Because of the aforementioned benefits of SegWit, I very encourage anybody reading this to use wallets that have incorporated SegWit to speed up SegWit adoption. A neat list of them can be found here (my private favourite is Samourai Wallet for Android). If you want to learn more about the intricacies of SegWit, Jimmy Song has written a good article about it:
Spil it stands, the Bitcoin blockchain isn’t very feasible for micropayments. If you want to buy a $Two cup of coffee, you’re very likely going to pay more than $Two omschrijving of BTC ter transaction fees, and the transaction won’t be confirmed instantly — you vereiste wait for the transaction to be published te a verified block on the chain, which will show up within Ten minutes at best.
2nd and third layer solutions are networks layered on top of the Bitcoin blockchain that enable users to send several transactions of petite amounts of Bitcoin almost instantly, with no transaction fees.
The Lightning Network is this layered network presently ter development expected to alleviate Bitcoin’s scaling problems. This network consists of two extra layers and enables users to open ongezouten channels inbetween each other to send an effectively unlimited number of payments to each other te an instant manner.
The 2nd Layer
A user joins the 2nd layer network by conducting a transaction on the blockchain that proclaims the user is committing a certain number of bitcoin to be used ter the layered network. The user then joins a group of knots that are interconnected with one another, called channel factories. Thesis knots essentially uphold a lounge of individuals that potentially want to conduct transactions with one another. Channel factories then enable an unlimited number of micropayment channels to be created on the third layer (hence the name factories) inbetween individual parties.
The Third Layer
Micropayment channels are set up to ensure ongezouten payments inbetween two users on the third layer. Because the blockchain is no longer present te this layer, it cannot be used to validate transactions and ensure one party paid the other. Instead, smart-contract technology is employed, such spil multisig addresses, meaning addresses that can be signed off by numerous users to enable the movement of funds, and hashed time-lock contracts, which are cryptographically secure automated contracts that lock funds for a certain period of time to ensure one parties that cannot cheat with another. Thesis technologies eliminate the need for trust inbetween users that are connected te micropayment channels.
Here is an example of how a Lightning Network micropayment channel works:
- Alice wants to dedicate 1 Bitcoin to a micropayment channel inbetween Bob. She announces this 1 Bitcoin to be used ter a commitment transaction on the Bitcoin blockchain. This 1 Bitcoin is then locked up ter a multisig address that both parties can sign off on if they want to close the channel. This address is secured with a hashed time-lock contract which states, “Alice has 1 BTC and Bob has 0 BTC, to be released te one hour”. This means the 1 Bitcoin Alice has is locked for 1 hour after which it will be returned to Alice and published to the Bitcoin blockchain once more.
- Alice then determines to give Bob 0.1 BTC. This transaction is logged with a fresh hashed time-lock contract stating “Alice has 0.9 BTC and Bob has 0.1 BTC, to be expired te 50 minutes”. This contract has an expiry time of 50 minutes, meaning it will be published to the blockchain before the original contract stating Alice has 1 BTC. Therefore Bob instantly knows he has the 0.1 BTC because this fresh contract will be published to the blockchain before the original contract, essentially making the old contract invalid.
- Once the utter hour passes, the micropayment channel closes and the final balance inbetween Alice and Bob is published to the blockchain. If Alice and Bob want to proceed making transactions, they can extend the expiry time of their channel for spil long spil they want. If one of them wants to close the channel early, one of them needs to sign off on the original multisig address that the Bitcoin is stored te.
The network enables transactions to route itself to its final destination by using other connected users te the channel spil intermediaries. This can toebijten even if a ongezouten connection to the desired user isn’t able to be sought the current micropayment channel. For example, if Alice has a channel open with Bob, and Bob has a channel with Mark, and Alice wants to send Mark some Bitcoin, the network can route the payment to Mark through Bob, all while ensuring no party has to trust another.
The implementation of lightning network transactions and their trust-less nature can get amazingly elaborate, and is best explained by the Lightning developers ter this conference or te the following series by ecurrencyhodler:
Ideally, a user will only create a commitment transaction to the secondary layer very infrequently because he or she will remain te the layered network for prolonged periods of time to conduct most of their day-to-day transactions. Once a user wants to uitgang this multi-layered network, a settlement transaction is made on the blockchain proclaiming the user’s final Bitcoin balance after all of the second-layer activities. This reconciles their total Bitcoin balance on the blockchain after comparison with the original commitment transaction. Te total, only two blockchain transactions are made ter order to let the user to conduct a limitless number of transactions for free on the 2nd layer.
Spil mentioned previously, SegWit paves the way for the lightning network because it liquidates nodes’ abilities to modify witness gegevens, which is what is used to identify a user’s entry into the 2nd layer. If the user’s commitment transaction can’t be found because the witness gegevens referring to the user wasgoed switched, there is a greater level of difficulty involved when attempting to reconcile the user’s settlement transaction.
The 2nd layer of the lightning network involving channel factories wasgoed very recently introduced te this whitepaper. It is still under mighty development, so a loterijlot of its concepts are explained abstractly. However, the network is poised to launch te 2018 and will be by far the largest improvement te transaction scalability thus far.
When a user sends a Bitcoin transaction, the inputs of the transaction (the amount you’re sending) is calculated simply by retrieving from the blockchain the total unspent amounts of Bitcoin you previously received. So for example:
- Beginning with an empty wallet, I receive 1 Bitcoin ter transaction #1, and then another 1 Bitcoin te a separate transaction #Two
- I now want to send Two Bitcoins te a transaction. There will be two inputs to this transaction: transaction #1, and transaction #Two, summing up to Two Bitcoin
Under the current algorithm for generating signatures (Elliptic Curve Digital Signature Algorithm), each input requires its own signature. This increases the total transaction size and therefore increases the transaction toverfee.
Schnorr signatures are an alternative and more efficient way of storing signature gegevens ter transactions. All inputs are accumulated and then stored spil a single signature by utilizing the Schnorr algorithm, which greatly saves space te a transaction and further helps increase transaction throughput by permitting blocks to store more transactions on average.
Schnorr signatures can be also be used to aid Bitcoin’s advancement te privacy by benefiting CoinJoin transactions. CoinJoin is a method of introducing anonymity to Bitcoin transactions. It works by pooling transaction inputs together with other peoples’ transactions when making a payment to a receiver. When payments are pooled, it becomes difficult to track which user sent what input, effectively making them anonymous. However, CoinJoin transactions have enhanced fees due to a higher number of inputs ter a single transaction resulting te a higher number of signatures. Utilizing Schnorr signatures would enable all signatures ter a transaction to be compressed into one, saving greatly on transaction fees and encouraging the use of CoinJoin.
Furthermore, Schnorr paves the way for ingewikkeld multisig transactions which require signing off from numerous parties, no matter how many parties’ signatures are required for a transaction, all the transaction needs is one Schnorr signature.
Schnorr signatures are only now a possibility because of the implementation of SegWit, because signature gegevens can’t be modified by third parties, it can now be used to effectively create a Schnorr signature.
MimbleWimble is a radical but amazingly powerful proposed switch to Bitcoin architecture that wasgoed anonymously introduced through this whitepaper ter July 2016.
Named after the tongue-tying curse from the Harry Potter series, its aim is to eliminate transactions entirely from blocks. Under MimbleWimble, transactions consist of nothing but input amounts, output amounts, and a signature. The signature of the transaction can only be decrypted by the receiver, and so transaction verification is left to the receiver.
By extension, blocks consist of only the list of all transaction input amounts of all transactions, all transaction output amounts, and their corresponding signatures. Blocks can then be merged seamlessly with previous blocks spil they’re nothing but pairs of input and output amounts. Knots then have the capability to cryptographically ensure that transactions te blocks do not create reserve bitcoins (i.e. their televisiekanaal difference inbetween inputs and outputs ter blocks is 0) without having to decrypt transactions.
This removal of transaction storage grants accomplish anonymity to all users by unclothing away the capability to generate transaction history. Furthermore, with blocks only containing the unspent transaction outputs (meaning the number of Bitcoins that have bot received ter an address but not moved out yet), the blockchain size can be diminished by overheen 60% according to the whitepaper. This reduction ter size means that ter order to validate a MimbleWimble blockchain, knots will only need to look at the set of unspent transaction outputs instead of the entire set of transactions, which will exponentially increase spectacle.
The mathematical details of MimbleWimble are outside of the scope of this article, but are explained ter detail ter the whitepaper. Albeit MimbleWimble presents some clear advantages and technical breakthroughs, its implementation requires the removal of Bitcoin’s Script system that much of the existing architecture relies on. Spil a result, MimbleWimble’s implementation on the Bitcoin blockchain is not technically feasible.
However, there are proposals for MimbleWimble to exist spil a sidechain. A sidechain is a separate blockchain directly fastened to the Bitcoin blockchain through the use of a two-way peg. This peg enables assets inbetween the two chains to be exchanged and “pegs” the value of the sidechain asset to the value of Bitcoin. Te this setup, users would be able to exchange Bitcoins for MimbleWimble coins, conduct fully private and rapid transactions on the MimbleWimble chain, and then exchange their MimbleWimble coins for Bitcoin whenever they please.
Te fact, a group of developers are already ter the process of developing MimbleWimble spil a separate cryptocurrency called Smirk, it wasgoed recently deployed on a test network and may be launched ter the near future.
Rootstock is for whatever reason one of the less talked about advancements te Bitcoin technology but is by far one of the coolest. Rootstock is described spil “the very first open-source brainy contract verhoging with a 2-way peg to Bitcoin that also prizes the Bitcoin miners via merge-mining, permitting them to actively participate te the Clever Contract revolution.”
Much like MimbleWimble, Rootstock is being developed spil a sidechain solution to the Bitcoin blockchain. Its fundamental value lies te its concentrate te brainy contracts. Rootstock aims to be a Turing Accomplish (fully programmable) smart-contracts verhoging that will be rearwards compatible with Ethereum’s virtual machine. This means that Rootstock will be able to execute any clever contracts developed for the Ethereum toneel and have clever contracts developed for its own toneel.
Rootstock aims to implement this versatile smart-contract functionality all while leveraging Bitcoin’s comparatively gezaghebbend userbase and value by acting spil a two-way pegged sidechain. It is also being designed to be secured by the existing Bitcoin mining network, therefore not needing to incentivize miners to secure its own blockchain. Rootstock also aims to tackle the transaction scalability problem by implementing its own version of a multi-layered solution called Lumino. With this, it may be able to accomplish up to 20,000 transactions vanaf 2nd.
Rootstock is aiming for a launch by the end of 2018. Overall, the toneel aims to gezond ter flawlessly alongside Bitcoin and if its claims hold true, it will undoubtedly bring unprecedented utility to the Bitcoin network.
If you’ve gotten this far, congratulations! I hope you were able to learn something about the future of Bitcoin and are spil excited about it spil I am.
Bitcoin isn’t flawless and is faced with challenges that its community voorwaarde work to solve. However, it is backed by an amazingly dedicated and thriving developer community that is working day ter and day out to tackle thesis problems. There are onveranderlijk innovations happening everyday, and I am sure by the time you finished reading this another fresh and arousing proposal for the Bitcoin blockchain popped up.
This article by no means covers everything out there, if there’s anything that you’re aware of that I didn’t mention, please mention them ter the comments!
Go after mij on Twitter and Medium if you’re interested ter more in-depth and informative write-ups like thesis ter the future!
I’m a relative Bitcoin beginner myself so if there are any mistakes or if you have any terugkoppeling please don’t hesitate let mij know!
BTC Address: 3MGguJhw1bm95tDQjZ3b8ySBwZLJ77CgG1
Here are some resources if you’re interested te learning more: