Skip to content

Deterministic channel certificates #1433

@tzarebczan

Description

@tzarebczan

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:

  1. Allow easy recovery of channel certificates from a single wallet seed
  2. Allow sharing of channel certificates without giving access to the wallet (current state)
  3. 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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions