Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Funds not recoverable #4

Open
matthiasgeihs opened this issue Apr 14, 2021 · 4 comments · May be fixed by #5
Open

Funds not recoverable #4

matthiasgeihs opened this issue Apr 14, 2021 · 4 comments · May be fixed by #5

Comments

@matthiasgeihs
Copy link
Contributor

matthiasgeihs commented Apr 14, 2021

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.

@ggwpez
Copy link
Contributor

ggwpez commented Apr 14, 2021

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

@matthiasgeihs
Copy link
Contributor Author

matthiasgeihs commented Apr 16, 2021

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

@ggwpez
Copy link
Contributor

ggwpez commented Jan 17, 2022

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.

@matthiasgeihs
Copy link
Contributor Author

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.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants