Hello,
can, please, anybody help me with Channel Fatories in Linghtning Network understanding? Especially with this.
In original whitepaper is written:
Still, one quickly runs out of time by doing transactions in the channel, each requiring a smaller timelock on the commitment transaction. This was solved with a tree of transactions [2] as shown in figure 5.2 At any point in time only the path where all transactions have the lowest timelock of their siblings can be broadcast. In this way, many commitment transactions can be created before the timelocks get too low and the channel cannot be updated any more.
The picture is shown below.
https://royalsocietypublishing.org/cms/attachment/f70d41c4-3a17-4f70-beb3-409c5ab677f2/rsos180089f05.jpgMy questions are:
1. Is
kickoff transaction broadcasted on blockchain while funding this channel? Or when this kickoff transaction must be broadcasted when one counterparty cheats and broadcasts the commitment with old state? I am friendly with invalidating via lower time in timelocks but not with the principle of transaction tree.
...A channel constructed this way has to be closed by broadcasting the newest commitment transaction as soon as the first timelock has elapsed, limiting the maximum lifetime of a channel. With relative timelocks, this problem can be solved elegantly. So we introduce a kickoff transaction. Timelocks only start ticking as soon as the kickoff transaction is broadcast, resulting in a potentially unlimited lifetime of a channel.
2.
3.3. Moving funds
A channel factory can be used to rebalance channels which have become one sided. A new allocation is set up which replaces every channel with a balanced new one while keeping the total stake of each party the same. As an advantage, funds can also be moved between channels, new channels can be created or old ones removed, changing the network connectivity without contacting the blockchain. Figure 9 shows such a rebalancing where funds are simultaneously moved to a different channel.
Picture here:
https://royalsocietypublishing.org/cms/attachment/c9e15de8-eb12-4834-9879-8b12313d3344/rsos180089f09.jpgHow exactly?3. What are replaceable transactions for?
4.
Note that the order of the replacement of transactions is important. One should always have a state where the path of lowest timelocks does not end in unsigned transactions. When a new path is created in the tree, the first transaction which diverges from the old active path must be signed last, so the rest of the path is already valid and the whole new path replaces the old path atomically.
Isn't it all still very limited because this "tree making" can't go infinitely? If this uses duplex payment channels, then, I think yes, it is.
If anybody knows something what is worth noting about Channel Factories, please write it here.
By the way, Channel Factories are implemented yet or not? I heard something about problems with new type of transaction (SIGHASH NOINPUT). I know that they can make channels virtually, but that's all.
All sources for this are available here:
https://royalsocietypublishing.org/doi/full/10.1098/rsos.180089#RSOS180089F5