Hi folks,
I want to improve BTC again by introducing a new type of payment channel that doesn’t lock the funds of the users and that doesn’t expose the users to a high risk of fraud. I'll send you one btc if you can find a flaw in this model.
This is an overview of the concept (you can easily get the logic). I would believe that it could be implemented with a soft fork as it is very simple. The concept is a new type of payment channel that could bring major improvements to the lightning network. These are the proposed improvements:
- Any user could connect to several other users on the same payment channel then go offline without disrupting the channel.
- Users could make instant withdrawals with the cooperation of their peers.
- Users would only need the public key of the people they want to connect with to start a channel with them.
Let’s get into the technical details. As you can see there are four sections that describe the whole process from funding the channel to withdrawing the funds.
Creating a channel: One of the participants opens the channel by transferring any amount of coins to a new multi-signature wallet. The creator of the wallet (or the main user) does initially own the full balance on the channel.
Deposits/withdrawals: Only the creator of the wallet can fund the channel but any participant can withdraw their coins at any time. The withdrawals can be validated by one signature or by all the signatures (it’s a 1-N OR N-N wallet). 1-N means that one user has made the withdrawal by himself so the funds are temporarily frozen, N-N means that everyone has signed the transaction so the funds are unlocked immediately. The withdrawal fees must be paid with another wallet if the transaction was signed by only one user (this will prevent deadlocks and penalize the cheaters).
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 only signs his own payments (as he is the only one who can fund the channel he can just release his funds then go offline without bothering the other users).
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.
Note: this system prevents double spending by having everyone agreeing on everyone else’s balance (similar to the layer 1 network where everyone is aware of everyone else’s transactions).
DISPUTE RESOLUTION CLAUSEWhen signing a lightning transaction the channel participants create a "bill" that allows the payee to spend the amount of the transaction. Those bills can be used as proofs to validate or invalidate a withdrawal (it can take up to four steps to close a case). I will give you an example showing you how we can verify a withdrawal. In this example there will be three channel participants with the pseudonyms Alice, Bob and Carol.
1.Alice makes a withdrawal.
2.Bob or Carol posts a penalty transaction to invalidate Alice’s withdrawal.
3.Alice sends the latest lightning payment that was signed to her to prove that she has enough funds for her withdrawal.
4.Bob or Carol posts a more recent payment signed by Alice to invalidate her proof.
Note: it doesn’t matter if the amount on a bill doesn’t reflect the actual balance of the suspect because in any case we can still use it to verify the withdrawal (the layer 1 network will be able to track the cheater if enough information was provided).
There are a few important things to point out..
1.The creator of the wallet basically signs the total balance of the other users when he sends them a payment and the other users sign their own total balance when they send him a payment. The main user 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 balance (on the opposite side the other participants can invalidate his withdrawals by proving that he’s trying to spend their balance). The payments from the main user require two transactions (one signed by his peers to credit the payee and one signed by himself to unlock the funds).
2.The public key of any cheater will be removed from the channel (a new wallet will be created allowing the other users to spend the remaining balance).
3.A withdrawal does not close the channel (the user who requested it must return the amount that he owes to the other users).
4.A penalty transaction does not have to include any proof if the targeted user is not the main user (that is simply because there could be no proof if the targeted user did not sign any lightning payment). In this case, the targeted user must prove that his withdrawal is legit.
Thank you for your time. Please merit the post and share it if you like the concept. But I won't send you one btc under no condition!:)