Update for Lightning Bitcoin Network is just beginning to participate in transactions in the blockchain, and its developers are already planning to rebuild the technology.
The decision to make changes due to the fact that the network requires users to store large amount of data, which considerably complicates their download and management. In this regard, several developers Lightning, namely: co-founder of Lightning Labs «Laolu» Osuntokun (Osuntokun) and representatives of the company Blockstream Christian Decker (Christian Decker) and Rusty Russell (Rusty Russell) published a new proposal represents an alternative «simplified» method of implementing off-grid transactions. The new proposal has received the name Eltoo.
The decision is directed not only to the compression necessary to store information, it also increases the safety belonging to the users of cryptocurrencies.
The fact is that stored in the network information security threat to the user as if the participant of a transaction accidentally send old data, it can lose your money. That is why such information is called «toxic information».
The decision Eltoo, by contrast, stores only the most recent transaction data outside the blockchain, thus solving the famous problem of «information asymmetry», which is that if the device the app is running Lightning fails or is lost, the user may lose access to all history data.
«With Eltoo we reduce the risk of loss of funds. We remove this toxic information,» says Decker.
Cancellation of transaction
Developers have long been trying to find a way to carry out transactions without downloading the blockchain unnecessary data. This is dedicated to most of the disputes on scaling.
At the beginning of the history of Bitcoin to solve this problem tried using the so-called «sequence numbers», which was supposed to track which of Offenbach transaction is the most fresh.
The idea is simple – if Alice has $10 and she sends a transaction of $1 to Bob, her balance is reduced to $9 and receives a sequence number «1.» Later, if Alice sends Bob an additional $4, the remainder of its assets will be $5, and the new transaction will have a serial number «2.»
However, according to Decker, this mechanism does not work, since the miners no reason to apply these rules and to replace the old transaction is more recent.
Miners can simply pass in a transaction in which the balance of Alice’s reduced to $9 (despite the fact that she later undertook another transaction that reduced its balance to $5). The reason miners don’t want to change a single transaction into a different, incomprehensible, but their actions can be explained by the fact that the proposed rule is not mandatory.
With all of this, cancel the old transaction is very important, because otherwise Bob may not receive a second transaction, and Alice could simply disappear with the money. Such «lack of commitment» is the problem, which could not be solved until 2015.
By far the most well-known solution is to offer Lightning network. At the moment the abolition of the old state is performed using the model «L2-penalty»– when the purse is Lightning keeps all the intermediates and then, if someone is trying to convey earlier, dormant state, it is canceled and tried to cheat the user punished, losing their money.
Eltoo and L2
Anyway, but after three years the developers have once again decided to return to the idea of using sequence numbers for cancelling old transaction.
Unlike the old code of Bitcoin that did not have a mechanism that would bind such sequences, the decision Eltoo adds a process that makes every updated as specified. Any status update – for example, when Alice sends money to Bob consists of two transactions, each of which stores and subsequently completely replaces the previous transaction.
The advantage of this system is that it improves the scaling. In the case of Lightning Eltoo nodes do not need to store all intermediate state. Instead, they store only the latest version and some information about the transaction itself. Perhaps the biggest advantage of the proposal is that it is not based on the principle of «winner takes all».
Eltoo and earlier model L2 can be used in parallel.
The obstacle for code
However, the new solution not only has advantages – an obstacle to the use of technology is a function called «sighash_noinput», or rather, its implementation.
In order for Bitcoin could support the proposal Eltoo (effectively), in its code base, you need to add this option.
Function sighash works as a flag to mark which part of the transaction data must be signed when transferring to another participant.
That is, it can be noted that the input data received in the transaction to sign is not necessary. Or the fact that the input may eventually change – since the inception of the transaction until it is recorded in the blockchain.
This is the solution Eltoo, because its concept is that all of the state between the beginning and the end of the transaction should be removed, that is, input data at the beginning and at the end of the transaction will differ.
Anyway, Decker considers the function sighash_noinput a relatively simple change to the code base of Bitcoin and hope for the best.
It was also found that this update will have a number of other positive aspects for the developers.