July 07, 2017

Bitcoin’s Scalability: SegWit and Lightning Networks

The obvious need for Bitcoin to scale is just that: obvious. If you’ve been following the cryptocurrency scene, you have probably heard of Segregated Witness and Lightning Networks, but probably not what they are - both strengths and weaknesses.

A Bumpy Roadmap of Solutions

Bitcoin Core developers have long created a scaling roadmap and back at 2015, Segregated Witness was first introduced.
This protocol, developed by Pieter Wuille, first proposed that a soft-fork update with the SegWit protocol in mind would suffice in order to increase the block size limit and give Bitcoin a scalability solution. Unfortunately for most Bitcoin miners, an increase of block size does not sit very well.

Many decentralists like Bitcoin at the current setting. They fear that introducing an increase in transactions per second (tps) or block size would give rise to centralized mining, creating oligarchy-like pools that can dominate the little pools. Decentralists also assume that creating protocols could give decrease the anonymity of the cryptocurrency, going against the primary operating principle of Bitcoin.

On the other end of the spectrum, people who are proponents of the increase - let’s call them blockgressives - are sure that the increase in size will only lead to Bitcoin having less volatility, most likely leading to a lower price, but will become far more stable as a cryptocurrency.

Blockgressives and Decentralists, both, have their fair arguments, but the currency has to move into a direction or it will eventually fall behind - with Litecoin having already implemented SegWit into their core code, it just goes to show as to how willing cryptos are to experiment.

A complete different point-of-view from Bitcoin Core developer, Luke-jr, claimed that an increase in block size isn’t really even needed - the surprising third statement! In a reddit comment, he said that if we put aside all the inefficient and microtransaction usages, a block size of 500k would suffice.

So many opinions to weigh on, but SegWit and Lightning Networks still remain a mystery.Meanwhile, Bitcoin’s mempool reaches 110 MB, leaving us confused, thinking: So... is this an issue or not?

Barely Explain Like I’m Five: Segregated Witness

There are two Bitcoin transaction fields that interest us when it comes to understanding SegWit:

  • scriptPubKey - Public Key Script
  • scriptSig - Signature Script

Script is a language developed by Satoshi Nakamoto himself, a stack language that executes from left-to-right in a Last In, First Out (LIFO) manner. These signatures, although small in size, surprisingly take up a lot of space in a block. According to Dr. Peter Wuille, the developer of SegWit, digital signatures account for 65% of the space in transactions.

The entire idea of SegWit is to separate transaction signatures - taking the data from the signatures and only attaching it to the end of a transaction, after bundling them, while also increasing the size of a block from 1 MB to 4 MB.

Not only does SegWit claim to increase the throughput of the entire Bitcoin network, it also nullifies some risks that have to do with Bitcoin transactions, such as the recipient modifying the sender’s transaction ID and sending himself more coins.

Although SegWit is a very useful protocol, and as of 07/01/2017, 40% of the community signaled a willingness for SegWit support (The requirement is 95%), there are many issues that the community cannot simply agree with when it comes to its implementation. Many people believe that the trade-off is between the increase of transactions per second (tps) and decentralization.

The increase of block size could potentially increase the tps (I say could because if traffic increases, there will eventually be congestion, it’s only a matter of time) but could also lead to a centralization of block mining. This is because larger blocks take longer to transfer between nodes, this could give a head start to larger pools that could essentially outgrow all other competitors.

An increase in size from 1 MB to 4 MB will burden full nodes far more than currently (blockchain size is already past the 100 GB milestone). This is because to run a full node, the bitcoin blockchain uses your bandwidth, CPU power, and a sizeable amount of disk space. All of which increase in demand with the possible increase of block size.

The other issue is that SegWit is primarily worried about authenticating transactions, skipping many signature protocols “checkpoints”, which can lead to issues with tracing back all the transactions inside the Bitcoin blockchain - a key feature that allows us to find the genesis of every Bitcoin ever spent.

This protocol is complicated. The many users that vouch for it, agree that it is a great solution to stabilizing the Bitcoin value and making it more accessible, some disagree and say the

complete opposite. Both sides have their arguments, and Bitcoin development is at a “halt”, but the network is growing very fast and it requires a solution just as fast.

Lightning Networks: Bunching Signatures Up

Lightning Network is another great protocol that can open the door up for a new type of transaction inside the Bitcoin blockchain: Microtransactions.
Although the fee for a Bitcoin transaction is usually very low, these fees cripple microtransactions completely. Lightning Networks promises a solution through the use of payment channels.

Payment channels open when two or more parties want to transact. Transactions start process and end within a payment channel. These transactions follow standard procedures of signature confirmation and all data necessary needed to authenticate them. Though the process is normally done as if within the Bitcoin blockchain, the payment channels are much faster than the normal network.

The Lightning Network then groups all the transactions are done within the payment channel, creates a total sum from the back-and-forth trading and sends only the last summed transaction data to the blockchain. This saves space from the many little transactions that are advertised to a block, leaving room for bigger transactions.

This protocol also promises to monitor the blockchain for any potential double-spenders, making it virtually impossible to double-spend any amount of money, since any attempt is met with refunds. Lightning Network would also allow for different blockchains to communicate with one another, which can lead to many interesting projects being developed.

Although the features are very interesting, there are many uncertainties to them.
First, the promise of a potentially “unlimited” tps does not mean that the network will not face any issues anymore. If Bitcoin wants to take on the throughput of Visa, payment channels have to be opened and closed at incredibly fast rates. This could lead to large network congestions which the Bitcoin blockchain is not ready to handle (yet?).

Furthermore, Lightning Networks promise to solve some security flaws very easily. Almost too easy. The double-spending protection feature is one of them. Lightning Network promises that they will provide a way of monitoring the blockchain constantly, 24/7, and protect from any potential double-spenders, but such a feature doesn’t exist for now.

The problem with payment channels is that they could bring more issues than they could solve. For example, a user with malicious intent could resend an old payment channel, advertising that into a new payment channel and could possibly send more coins to himself from your personal wallet.

Finally, Lightning Network can lead to centralization. since people are required to send money to one-another in the channel. Which begs the question: How many people have to partake in a channel for it to be effective? Which leads to the main dilemma: Do third-parties have to partake in each payment channel, effectively making Lightning Network a bank?

Protocols: The Good, the Bad and the Conclusion

These protocols sound and are ingenious, but the loopholes behind them are a cause for a lot of predicaments within the Bitcoin community, and until the miners and nodes are satisfied, we won’t be seeing any implementations.
Promises of unlimited throughput, higher security, lower costs are met with the exact opposite when further analyzed, which is why Bitcoin doesn’t have one simple answer to everything.