Essentially, splicing would allow a user to “charge” funds into an existing flash channel, or withdraw funds while maintaining the channel.
Each Lightning channel begins with an opening transaction that ensures that both users agree to the movement of funds in the channel. The remainder of the Lightning Channel consists of a series of subsequent transactions that are exchanged between users and are not normally transferred to the Bitcoin network. The funds in the opening transaction do not move until the channel is closed.
In splicing, users take the opening transaction to send funds from one or both users to a replacement opening transaction that contains more Bitcoin instead. As soon as this new opening transaction is confirmed on the block chain, the channel is charged. Conversely, the “splice-out” also works the same way.
Once a new payment is made, the Lightning channels between users are updated to reflect their Bitcoin revolution
The trick used to achieve this currently involves a penalty for users trying to cheat by sending an older Bitcoin revolution balance which was proven by onlinebetrug. Fraudsters can lose all the funds they have in a channel.
The problem is that transferring old balances cannot always be a scam. There are a number of scenarios in which users could accidentally send an older account balance, for example due to a software error or a failed backup. In such scenarios, a complete loss of coins is a severe and unfair penalty.
First released on 30 April 2018, eltoo shows the latest proposal. Developed by Blockstream’s c-lightning development team – Dr. Christian Decker and Rusty Russell – and Lightning Labs’ Osuntokun, eltoo updates a channel by building a chain of time-locked transactions where each transaction spends deposits from the previous one to reflect the current balance of the payment channel.
When a user sends an older transaction (which represents an older channel balance), his counterparty has some time to transfer the last transaction.
It would require the entire transaction chain to be transmitted and recorded via the Bitcoin block chain, which is more or less contrary to the purpose of the Lightning Network. Decker therefore proposed a change to the Bitcoin protocol to introduce some sort of hierarchy to this type of transaction: Any newer transaction can override any older transaction without having to transfer all the transactions. When this soft fork is incorporated into the Bitcoin network and enabled, Lightning users can create channels both in the current style and using eltoo, depending on their preference.
While the Lightning Network is a second-layer protocol, the Bitcoin blockchain is still relevant even for Lightning users for security reasons. In particular, Lightning users need to keep an eye on the blockchain to see if certain transactions are included. This can be particularly resource intensive for mobile users.
One solution is Simplified Payment Verification (SPV), described in the Ethereum code
Current SPV wallets use a trick called “Bloom Filter” to find out if relevant transactions have taken place. This was tested by onlinebetrug. Unfortunately, Bloom filters are rather unfriendly, since wallets essentially reveal all their addresses to nodes in the Ethereum code network. They also have some scaling and usability issues, as each individual SPV wallet consumes resources from at least one full Bitcoin node.
To solve these problems, Lightning Labs’ Osuntokun and Alex Akselrod, together with Coinbase developer Jim Posen, have developed a new solution called “compact client side block filtering”, which they implement in the Neutrino Wallet.
The compact client-side block filtering essentially reverses the trick that current SPV wallets use. Instead of wallets requesting transactions relevant to them by creating a Bloom filter and sending it to full nodes, full nodes create a filter for all neutrino wallets. The Neutrino Wallet then uses this filter to determine that the corresponding transaction did not take place – that’s really all the users need to know to be sure they’re not being cheated. Interestingly, while this was developed with the Lightning experience in mind, it could also be used for ordinary Light Wallets.