Hi everyone,
I may have an idea that could significantly improve the lightning network if it works. I'd like to share it with you.
The proposed improvements are:
-Anyone could connect to several nodes on the same payment channel then go offline without disrupting the channel.
-We would only need the public key of the people we want to connect with to start a channel with them.
-The LN users would be able to make instant withdrawals with the cooperation of their peers.
For now let's call it the multidirectional payment channel. I didn't introduce any line of code which I will be working on asap but you can understand the logical pretty easily.
Channel opening: One of the participants opens the channel by transferring any amount of coins to a new multi-signature wallet. For security reasons the creator of the wallet (or the main user) must set a limit on the withdrawal fees (this restriction can be overruled with the signature of all the participants).
Deposits/withdrawals: Only the creator of the wallet can fund the channel but any participant can withdraw their coins. The withdrawals can be validated by one participant or by all the participants (the funds will be temporarily frozen unless the transaction is signed by everyone).
Payments: To make a transaction the payer must sign a payment to the payee then have it signed by all the other participants (they will actually sign their new balance on the channel). The main user does not have to validate the payments of the other users (so he can go offline and it will not affect anyone).
Security: All the channel participants must protect themselves against fraud by verifying the payments that are made from their wallet. Any user can invalidate a fraudulent transaction with a penalty transaction and prevent the cheater from withdrawing more funds. A transaction can no longer be invalidated after the funds are unfrozen.
DISPUTE RESOLUTION CLAUSE
The case can be resolved at any of these steps (a delay for reply has to be determined):
1-User 1 makes a withdrawal.
2-Any user posts a penalty transaction to invalidate User 1’s withdrawal.
3-User 1 sends the latest lightning payment that was signed to him to prove that he has enough funds for his withdrawal.
4-Any user posts a more recent payment signed by User 1 to invalidate his proof.
A few important things to mention..
1.The creator of the wallet basically signs the total balance of the other users when he makes a payment and the other users sign their own total balance when they send him a payment. Therefore he doesn’t need to know the balance of each participant as he can invalidate a withdrawal by simply proving that the user who is making it is spending his coins (on the opposite side the other participants can invalidate his withdrawals by proving that he’s trying to spend their coins).
2.The public key of any cheater will be removed from the channel (the coins on his channel will be transferred to a new wallet where his key is removed).
3.A withdrawal does not close the channel (the user who makes it must return the amount he owes to the other users).
4.A penalty transaction does not need to include any proof against the targeted user if he is not the main user (that is simply because there could be no proof if the targeted user has never made a payment).
The concept seems to work in theory but I don't know if it is feasible in practical.. maybe someone more knowledgeable can answer that:o. Thank you all for paying attention and hopefully we can do something with this!