Partial withdrawal: possible typo and understanding

Hi all,

first the typo candidates:
in (17) page 23 there are two ’ missing:
1st line …[[L:x->(L’) instead of [[L:x->(L),
2nd line at the end: A:a’ instead of A.a

and in (18) 1st line [[L:x-a’ ->(L’ instead of [[L:x ->(L

or did I misunderstand it?

Now the question to the broader understanding:
I wonder why the partial whitdrawal is so complicated. The operations make sense and I understood that it’s possible in this way.

However, applying what has been discussed near Figures 14 and 5, a simple \Tau(L,A,a’) should work - not?
To see it, line (13) could be finalized and then, in the adjudicator notation similar to figure 5 would read:
Address | Balance | outcome
L |x |A:a+a’, B:b,\xi:c
\Tau(L,A,a’) gives what we want
Address | Balance | outcome
L |x |A:a, B:b,\chi:c
A |a’ |

The paper approachs requires in step to (16) also to finalize L on chain. However the result is that the channel \chi later ‘lives’ in L’ and no more in L.
Using the proposed 2 steps above, A could whitdraw a’ while still having \chi in the original L (which does not need to be discarded).
Or did I overlook something?

Another approach which came to my mind at first is the inverse of the toping-up sequence when introducing a rule that the one at the end (or likewise the one at the top of the priority list) can draw out overfunds

  1. update the state to move A to the end (or likewise to the front) and reduce its balance (off-chain operation)
    [L->(B:b), \chis:c, A:a]
    now a’ is free and could (according to the rule) be wihtdrawn by A

In conclusion I’d like to keep \chi in L and have a ‘symmetric’ approach for deposit and withdrawal.

I’d be grateful for any hints/ discussion

P.S. I categorized as protocol design because there is no nitro category

You’re right about both those typos. Thanks for pointing them out. I’ve added the corrections to pull request.

Both approaches you suggest would work as far as allowing channel \chi to continue to run to completion, and for the funds to be distributed on-chain thereafter. The advantage of the approach described in the paper is that \chi is funded by a channel, L', that hasn’t yet been finalized. This means that \chi can be defunded off-chain, and the proceeds can then be used to fund new channels off-chain. You basically want to avoid having directly funded application channels, as you then have no choice but to payout on chain - keeping a ledger channel at the top level gives you flexibility.

Does this make sense?

Hi Tom,
thank you for your explanation, and sorry for the late response!
I will then dive into the code (RPS etc.) in the coming days.

P.S.: regarding the pull request I don’t have to do anything - right? As far as I can see everything is now fiexd…