1

I have some questions about Lightning Network. I'm already banned from r/bitcoin so I'm posting here. My first questions are about dispute costs:

Lets say I open a payment channel on the lightning network. I need to have some balance in the channel, so lets say I have put in 1 bitcoin. I make a purchase for .5 bitcoin. There is then a dispute: the seller is claiming my entire bitcoin from me. Now what?

Per the whitepaper I can "dispute" this by broadcasting the transaction to the blockchain. (Are there other options?)

1) Who pays for that, and how much? Do I pay per bit whatever the market value is for block space at that time?

1a) With the claim on my entire bitcoin where do the transaction fees come from?

1b) What would prevent somebody from using this "pay to take it to court at auction prices" model as a denial of service or theft? For example, a large actor opens many channels and funds them so they are used as hubs....then when well established he "outright disconnects" some large number of those channels. Now there is very high demand for limited blockspace as everybody tries to dispute before the deadline. What happens next? What if there is so much congestion that disputes can not be made fast enough?

Either ELI5 or point me at the right page(s) and sections of the whitepaper.

Much appreciated, Blade.

1
  • I'd imagine the other transacting party needs your signature on the updated transaction... But don't take my word for it; I watched this ELI5 video.
    – Monstrum
    Dec 14, 2017 at 22:53

1 Answer 1

3

Who pays for that, and how much? Do I pay per bit whatever the market value is for block space at that time?

The fee for the commitment transactions is determined at the time of channel creation. It can also be updated. So when you broadcast the commitment transaction, the fee will already be set to whatever you two agreed to at channel creation.

The person who pays the fee is also negotiated at channel creation. The current specification says that the person funding the channel will be paying the transaction fees (currently only one party funds the channel).

With the claim on my entire bitcoin where do the transaction fees come from?

There is no "claim on your entire bitcoin". The other party cannot claim your money unless you agreed to it by signing a commitment transaction. The merchant can only say "you owe me one Bitcoin" but nothing actually happens to the Bitcoin itself.

What would prevent somebody from using this "pay to take it to court at auction prices" model as a denial of service or theft? For example, a large actor opens many channels and funds them so they are used as hubs....then when well established he "outright disconnects" some large number of those channels. Now there is very high demand for limited blockspace as everybody tries to dispute before the deadline. What happens next? What if there is so much congestion that disputes can not be made fast enough?

If the most recent commitment transaction is broadcast, there is no "dispute". It is just a normal unilateral channel closing and both parties will get their money eventually (the broadcaster must wait out the relative timelock).

If an old commitment is broadcast (and thus fraud is occuring), then there will be only two transactions for each channel closing ("disconnect") and revocation ("dispute"). The closing transactions need to be confirmed before the delay goes into effect. So if there is a shortage of block space, then not all of those closing transactions will be confirmed. When they do confirm, the other parties can then broadcast their revocation transactions and have those confirmed.

Furthermore, because the transaction fee for the closing transaction must be negotiated by both parties and the amounts can only be changed by both parties signing the transaction, the attacker cannot change the transaction fees. So the people broadcasting their revocation transactions have full control over their transaction fees, so they can increase the fee as necessary to have their transaction confirm faster.

6
  • How does the fee commitment get negotiated? Does the wallet have a workflow for proposing and accepting terms? As a sender do I need to negotiate with each node in the network that my transaction goes through? To update it would I need to re-negotiate and get all parties to agree?
    – bladedoyle
    Dec 14, 2017 at 23:56
  • I see, so based on your previous answer, the counterparty cant claim the whole bitcoin because some of my bitcoin is already set-aside while openeing the channel. But what if that reserved closing transaction fee is not enough to get it into a block? What happens if the HTLCs start to expire while the dispute is stuck in the mempool? What if the counterparty refuses to renegotiate or does not have the funds to contributte to paying higher fees?
    – bladedoyle
    Dec 14, 2017 at 23:56
  • If the fee the attacked would need to pay to dispute is large compared to the size of the transaction doesnt that effectively allow non-cooperation to be used as an attack?
    – bladedoyle
    Dec 14, 2017 at 23:56
  • The commitment transaction fees are negotiated in the channel creation message. You as the user are not involved in that except in configuring your LN node to accept channels of certain fees (of course there are defaults and they use fee estimation). Fee negotiation for transaction fees only occurs for parties you will have a direct channel open with. For routing payments, there is HTLC fee negotiation, which is different from transaction fee. Fee negotiation consists of "here is my feerate, do you accept it" and the response is a "yes" or "no". If "no", the channel or HTLC is not created.
    – Andrew Chow
    Dec 15, 2017 at 0:05
  • It's not that the Bitcoin is set aside, but rather it is assigned to your output and that cannot be changed without you also signing the transaction. If the fee is not enough to get into a block, then it will just sit in the mempool. For the HTLCs if any fraud occurs with those, you can still use the revocation key to claim the money as there is also a relative time lock delay on the HTLC success and HTLC timeout transactions.
    – Andrew Chow
    Dec 15, 2017 at 0:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.