5
So let's imagine a Lightning Network made up of thousand of nodes. Transactions are routed until the moment comes where all the channels need to be closed and commited I presume. Which node actually takes care of this?
I'm a bit confused of this process and it's not clear how the final transaction will be built, and more importantly, who will actually pay the fees to the BTC network?
I imagine this huge transaction will have lots inputs-ouputs based on the parties involved in the network for that moment of time.
I'm thinking it's a race game, right? So any node can broadcast this huge transaction to the blockchain, and since all the inputs-outputs have all the right signatures of the participants, all the money and fees will go to the nodes that helped route the transactions around, and of course all the money will correctly go to the right destinations.
Also, I'm thinking this is not something that happens every 10 mins or so. Whoever is listening and has the transactions in hand can build this huge transaction (as long as the timelocks are respected) and soon it will be mined.
But still, if the fee for the this huge tx is higher than what that single node got for routing it, what's the incentive for them to actually broadcast it rather than letting another node broadcast it, and hence put the burden on another node to pay the fees.
Ok but how does the fee economy within LN work? I remember reading that all nodes that help route the transaction to destination is incentivized to do this via fees. How so? – Luca Matteis – 2017-07-04T18:09:09.303
The fees work via the differences in channel balances. For example (values not representative of actual), for a route of
A -> B -> C-> D->where A sends D 0.5 BTC, A, via its channel with B, would send to B 0.52. Then B, via its channel with C, would send to C 0.51. Then C, via its channel with D, would send to D 0.5. In this way, B and C collect their fees from their channel balances and D receives the amount that he asked for. – Andrew Chow – 2017-07-04T18:12:37.923When A sends to B 0.52 btc, does it have 0.5 btc as output to D and 0.2 to B? Then B sets as output 0.1 for C and 0.5 to D. And finally C just a single output of 0.5 to D?
Also, if the A->B channel ends, and the 0.52 tx is commited to the blockchain, D has his money and so does B (the 0.2 fee), but what about C and D? – Luca Matteis – 2017-07-04T22:14:58.007
2No. When A sends 0.52 to B, B gets all of the 0.52 in his
A <-> Bchannel. Then B sends 0.51 to C and C gets all 0.51 in hisB <-> Cchannel. Then C sends 0.5 to D and D gets 0.5 in hisC <-> Dchannel. So if theA <-> Bchannel closes, D has his 0.5 from theC <-> Dchannel and A still has spent 0.52 which is now with B. With LN, A doesn't actually directly make an output to D unless they have a channel open with each other. – Andrew Chow – 2017-07-04T23:04:00.503but what would make the lightning network commit to the blockchain in a timely fashion? what if on 2020 adding a transaction to the blockchain takes 10 months, how lightning network solves that? – Nir O. – 2017-12-14T17:22:23.677
@NirO. LN does not solve that problem. If there is so many transactions in the future that that happens, something else will need to be done to increase the onchain transaction capacity. – Andrew Chow – 2017-12-14T17:27:33.593