Published on: 2015-11-24T03:55:04+00:00
Nicolas Dorier, a Bitcoin developer, has raised concerns about a possible attack on the Lightning Network protocol. While reviewing bip 112, he discovered a vulnerability in HLTC. The issue arises when both parties involved in a transaction want to revoke their previous commitment. In order to do so, they need to exchange the revocation preimage. However, if this process is not done atomically, Alice can deliberately withhold her revocation, thereby preventing Bob from withdrawing his funds.The process of revoking a commitment involves exchanging new commit tx signatures followed by the revocation of old commit tx. If Alice fails to perform the second step, Bob still holds the new commit tx, which he can drop on the blockchain. Rusty, another Bitcoin developer, acknowledged the problem and proposed a solution.In response to Nicolas Dorier's concerns, Tadge explained that there isn't really an attack scenario because every update of a channel state in the Lightning Network has an initiator. All payments are "push" payments, meaning that if Alice wants to allocate more funds to Bob, she initiates the transaction, and if Bob wants to allocate more funds to Alice, he initiates it. When it comes to revocations, the user initiating the channel state change goes first. The process is not atomic, so the payer goes first.To illustrate the steps involved, if Alice sends more coins to Bob, Alice signs the new state and sends half-signed transaction to Bob. Bob then signs the new state and sends the half-signed transaction back to Alice. After that, Alice revokes the old state by sending the preimage to Bob, and Bob revokes the old state by sending the preimage to Alice. If Bob fails to complete the final step, the payment can be considered as not having gone through. However, Bob doesn't have much incentive to fail in this last step because leaving the channel in an indeterminate state would be worse for him than having a fully determined state where he has more money.In conclusion, while there is a potential vulnerability in the Lightning Network protocol regarding revocations, the current design of the system ensures that the user initiating the state change goes first. This helps prevent intentional withholding of revocations and provides a mechanism for resolving payment disputes. The proposed solution by Rusty addresses this issue and further enhances the security of the Lightning Network.
Updated on: 2023-07-31T18:40:41.917667+00:00