Funds not recoverable
Opened this issue · 4 comments
Consider the situation where two clients have an open channel with some funds deposited. Now the client devices both crash in a way such that their data is not recoverable (i.e., the devices are destroyed), while the private key wallets still survive. In this case, there is currently no possibility for any of the clients to recover the deposited funds, as they need to provide a mutually signed channel state for that. Hence, the channel funds are stuck forever.
It could be desirable to extend the contracts so that a client can always register withdrawal of its initially deposited funds if it still has access to the private key corresponding to the channel account.
So you propose a new way of disputing a channel?
If we do not require a fully signed state; anybody could call this function. Even someone who is not part of the channel.
This would then force the honest participants to always refute the challenge, hence wasting gas. @matthiasgeihs
I propose a method that allows a depositor to register the channel. Only participants of the channel should be able to initialize such a transaction. @ggwpez
I propose a method that allows a depositor to register the channel. Only participants of the channel should be able to initialize such a transaction.
When the client loses everything besides the SK
, he would not be able to re-calculate the channelId
or depositId
.
He would have to query a node for the depositId
of his last deposit.
Something like challengeDeposit(id)
could work, which can be refuted with any fully-signed state.
When the client loses everything besides the
SK
, he would not be able to re-calculate thechannelId
ordepositId
. He would have to query a node for thedepositId
of his last deposit. Something likechallengeDeposit(id)
could work, which can be refuted with any fully-signed state.
We could make the channel ID recoverable if we let the deposit function take as input the channel ID and the participant address instead of the funding ID. Then we could emit these with a deposited event.