-
Notifications
You must be signed in to change notification settings - Fork 492
Deterministic channel certificates #1433
Description
The Issue
Current state:
When a user creates a channel, a channel signing key is generated which matches up with a new public key specific to a channel. These keys are generated randomly outside of any wallet other wallet data/seeds. If a user creates a channel but forgets to back up their wallet, the channel signing key is lost - no new claims can be signed. A new key can be created, but this invalidates previous claims which then need to be re-signed with the new keys.
As a wallet backup/restore mechanism, giving the user a 12-word seed is not enough information to recreate their channel certificates. This also makes cross-device syncing more difficult because users will require a key for their wallet and another for their channel.
Goals:
- Allow easy recovery of channel certificates from a single wallet seed
- Allow sharing of channel certificates without giving access to the wallet (current state)
- Support cross-device syncing
A possible approach might be hardened keys (https://bitcoin.org/en/developer-guide#hardened-keys) that are generated from the wallet seed, but the wallet seed is not exposed through having access to the channel private key.
Other approaches:
Create a passphrase for each channel created which can be used to save channel information outside of the wallet file. Make it the responsibility of the creator to save / access on other platforms.