-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Lightning nodeid() returns a different value for each wallet seed restore #6958
Comments
see #5978 |
It is our long-term goal to be able to restore channels from seed, but that it not going to happen soon. The lightning-dev mailing list has recent posts that suggest how to do that, but those ideas are far from implementation, and very far from standardization across LN implementations. Expect these things to take a year at least. In the meantime, the expected behaviour of Electrum is to generate a new nodeID everytime you restore, so that your wallet does not conflict with other instances. What ACINQ/EClair did is a proprietary solution, that only works with their server. We do not want to do that, because we want users to be able to open channels with other nodes than us. We do not want to be (or to have) a single point of failure. |
That only concerns restoring off-chain channels with HTLCs. But having a deterministic |
Also node that our encrypted channels backup solution can work with any node that implements it, if there is interest, not only ours. |
@t-bast not sure what you mean.. It seems to me that if your node is private (and that is the case of Phoenix and Electrum), then you do need to remember who you had a channel with, regardless of whether your |
Yes you need to remember that, but at least you don't need the other party's cooperation to force-close your channel: just reconnect to them and If you have no way of getting the private key of your previous |
@rp-li had to contact us via gitter about a channel he opened with us, then we had to come up with a challenge to get him to prove his identity without his |
I understand the argument of preventing users from using the same |
oh I see, by "contact them" you meant some kind of human interaction. Indeed, that is not serious :-) Seriously, Electrum has static channel backups because it needs to remember who you have a channel with. So, I was using the word "remember" with the meaning: "the user has a backup of", not "the user remembers". Now, if you need a backup of who you had a channel with (and that is our case), it is not more expensive to add your own I believe Phoenix does not need a backup of who it had a channel with, because it only allows to open channels with ACINQ. Should Phoenix allow to open channels with other nodes, it too would need users to save backups. |
Ok that makes sense, then we really must ensure users don't lose these static channel backups (otherwise too bad for them). Then you're probably right that we should keep exploring the ideas that have been floating around on the ML recently, and it will take time! |
@t-bast check out the december posts by Lloyd Fournier on the lightning-dev mailing list |
Expected behaviour:
When regenerating the same wallet from seed multiple times, the lightning node ID (output of nodeid()) should remain the same. AFAIK this makes it possible to restore lightning channels once a wallet is deleted. This is the intended behaviour in the ACINQ Eclair wallet (@t-bast).
Actual behaviour:
Generating multiple bech32 wallets from the same BIP39 seed produces different nodeid(), even on the same device.
The text was updated successfully, but these errors were encountered: