Bitcoin network has an issue with throughput, indeed at the moment it has a theoretical maximum of 7 transactions per second (on-chain), nothing compared with 10.000 transactions per second supported by VISA. A possible solution is to increase block size in order to support more transactions per second, but this would bring to another problem: size and blockchain bloat.
Every transaction takes time to be confirmed. Once a transaction is added in a block we can approximately say it has been confirmed. But when we send or receive a huge bitcoin amount it is better to wait that other 5 blocks has been added in the blockchain in order to avoid double-spend attack. In Bitcoin’s blockchain each block is added on average every ten minutes, so we have to wait about an hour to be sure that a transaction has been confirmed, much more than VISA that needs seconds.
An interesting proposal to solve these issues is the Lightning Network.
The most decentralized scaling solution: the Lightning Network
In the Bitcoin’s main chain Segwit is finally live and a great solution to the scaling issue is now possible and has already been chosen: the Lightning Network.
The Lightning Network is a protocol layer built on top of Bitcoin, it enables high-volume, low-latency digital micropayments without the need for trusted intermediaries. Its fundamental technology is bidirectional payment channel, a local two-party consensus system. The idea is that if two parties make lots of small transactions between them it is not efficient to broadcast all transactions to the network, but it’s more efficient to broadcast only a transaction as settlement at the end of the relationship. In order to open the bidirectional payment channel two parties send an amount of Bitcoins to a 2-of- 2 multisignature address with a local consensus on the current balance allocated between the two participants. Those funds can only be spent if both parties agree. Before to do that they create a commitment transaction which have the aim of setting the initial balance between them and which gives to the honest party the possibility to take all the funds in the shared address if the other party behave in a dishonest manner. While the channel is open they take account of the movements of funds between them locally, off-chain, without register every transaction on the blockchain.
Let’s make an example in order to understand how this bidirectional payment channel work. Mario want to send one Bitcoin to Luigi. They think to interact frequently in the future, so they decide to create a channel between them. Initially each of them creates a secret, a sequence of numbers, and exchange the relative hashes. In addition they set up a 2-of-2 multisig address in which they will send 5 Bitcoins each. The next step is to create a commitment transaction which input come from the 2-of-2 multisig address. In the commitment transaction Mario sends four Bitcoins (five less one) to himself and six to a second multisig address. This second multisig address can be used by Luigi, but only after a predetermined number of blocks, or it can be used by Mario but only if Mario know Luigi’s secret. Now Mario signs its part of the transaction and give it to Luigi. Luigi does the same but mirrored and send its half signed commitment to Mario. Until they want to keep the channel open they don’t have to broadcast the transaction commitment, but they have to hold it off-chain. Now that they have the commitment of the other, they can make the transactions which funds the 2-of-2 multisig address with five Bitcoins each. The channel is open.
If Luigi wants to send one bitcoin back to Mario they have to update the channel state. To do this they have to make a new commitment with the same procedure described above but with a 5-5 balance and with new secrets. They have also to share the secrets of the previous commitment.
Every party can close the channel in every moment by broadcasting the commitment transaction to the Bitcoin network. The procedure described above has the aim of avoiding that one party acts dishonestly broadcasting an old balance of the channel. Suppose that Luigi wants to steal one Bitcoin from Mario ignoring the last transaction of the channel, he will broadcast the old commitment transaction. But Mario now know the Luigi’s secret of the first commitment, so before the funds will unlock for Luigi’s utilisation, Mario can hold for him all the fund in the initial 2-to-2 multisig address using Luigi’s secret. This is an incentive to act honestly and eventually broadcast only the last commitment.
Bilateral payment channels only create a relationship between two parties. The objective of the Lightning Network is to create a connected network composed of many linked two-party payment channels, where payments can be sent over many channels without trusting the intermediate nodes. This works via a decrementing timelock that permits every intermediate node along the routing path to accept funds only if they forward it along to the next participant, using disclosure of preimages of cryptographic hashes. In the Lightning Network, nodes are not able to take for them funds traveling through their channels even if they fail to forward payments or refuse to perform any actions. A node operates without custody of third party funds, which is enforced by a timelimited cryptographic script. This is all achieved off-chain assuming cooperative parties, and enforced on-chain when one’s counterparty is not cooperative.
To sum up, Lightning network may enable near-infinite transactions with near-zero transaction fees. Additionally it decentralizes mining functions, making possible to instantly settle transactions without the need of a miner. All this incredible features without increasing blocks size.
Why don’t increase block size?
Doubling the block size is only a step in the direction of Bitcoin centralization, it only allows to double the maximum number of transactions per unit of time, but the resulting number will be a ridiculous one compared to the need of serving the entire global population. Thus, in the big blocker strategy, it will be only one of a long series of block size increments. This bring to the problem known as ‘blockchain bloat’, the blockchain will exponentially growth in size, increasing Bitcoin centralization. Blocks propagation will become slower and only big players could operate as full nodes in this case, excluding less funded operators from the Bitcoin ecosystem, a clear assault to Bitcoin foundational principles.
Segwit2x was only an attempt of some hardheaded subjects to save their reputation after a clear defeat in the scaling debate. Segwit2x is the result of an agreement made during summer 2017 by bigger blocks supporters, who “allowed” to activate Segwit, also if they didn’t want to, with the explicit compromise to rise the block size in the next six months.
Segwit2x hard fork was planned to start at block height 494.784 (around the 16TH of November), but 2X promoters gave up days before due to a lack of support.
Their philosophy and vision are already interpreted by the Bitcoin Cash fork, there are no more reasons for their continuous attacks to the main chain through forks or other sort of obstacles, like mining empty blocks in order to increase transaction fees and push the community in the direction of bigger blocks.
The success of a fork depends on how many players follow the fork and how much they are important. First of all we have to see how miners will allocate their computational power between the two chains. Then, over which one developers decide to focus their efforts of implementation and finally how many users and firms will use the new chain.
Among 2X supporters there are some miners which decided to follow only their personal economic interests, trying to maximize their earnings and to strengthen their power position, ignoring to support only the best Bitcoin scaling solution.
Bitcoin Core developers and the most important personalities in the Bitcoin industry didn’t support Segwit2x. It’s really strange that an improvement proposal that doesn’t introduce good technical solutions had this high level of buzz around itself.
Maybe Segwit2x fork is only postponed, its supporters are now moving towards Bitcoin Cash. Indeed they are smartly attacking Bitcoin making dust transactions (“spam” transactions) with the aim to congest Bitcoin transaction pools, moving hashing power from Bitcoin to Bitcoin Cash and selling big amount of Bitcoin in exchange of Bitcoin Cash in order to pump the price up influencing the market.
The market can be unpredictable during these turbulent moments, but in the long run the most decentralized scaling solution will prevail. At the moment the best available is the Lightning Network.
Image via Shutterstock