BenWestgate / bails-wallet

Auditable Implementation for creating & importing Codex32 backups to Bitcoin Core
MIT License
2 stars 0 forks source link

"Seed Utility" #5

Open BenWestgate opened 1 year ago

BenWestgate commented 1 year ago

In the future I also plan to add BIP85 functionality so I can generate something like this.

---
title: One Seed to rule them all - Multi wallet
---
flowchart TB
    1.1 --> |Backup| 1.2
    1 --> |BIP85 Child 0| 2.1.1
    1 --> |BIP85 Child 1| 2.1.2
    1 --> |BIP85 Child 2| 2.2.1
    1 --> |BIP85 Child 3| 2.2.2
    1 --> |BIP85 Child 4| 2.3.1
    1 --> |BIP85 Child 5| 2.3.2
    1 --> |BIP85 Child 6| 2.4.1
    1 --> |BIP85 Child 7| 2.4.2
    subgraph 1[Parent]
        direction TB
        1.1[Root Seed]
        subgraph 1.2[2-of-3 Shamir's Secret Shares]
            direction BT
            1.2.1[Share 1]
            1.2.2[Share 2]
            1.2.3[Share 3]
        end
    end
    subgraph 2[Children]
        direction TB
        subgraph 2.1[Cold Wallet]
            direction LR
            2.1.1[BIP39 BenWestgate/Bails#1]
            2.1.2[Password BenWestgate/Bails#1]
            end
            subgraph 2.2[Hardware Wallet]
            direction LR
            2.2.1[BIP39 BenWestgate/Bails#2]
            2.2.2[Password BenWestgate/Bails#2]
            end
            subgraph 2.3[Lightning Wallet]
            direction LR
            2.3.1[BIP39 BenWestgate/Bails#3]
            2.3.2[Password BenWestgate/Bails#3]
            end
            subgraph 2.4[Phone Wallet]
            direction LR
            2.4.1[BIP39 BenWestgate/Bails#4]
            2.4.2[Password BenWestgate/Bails#4]
            end
    end

Originally posted by @aido in https://github.com/LedgerHQ/ledger-nano-s/issues/54#issuecomment-1536904989

BenWestgate commented 1 year ago

My current plan is the stateless offline Bails signing wallet will be the masterkey of the Root Seed, while Online Bails private keys enabled wallets, both plaintext or watch encrypted, real or decoys would be BIP85 children. Some function to create children for HWWs and mobile wallets is possible.

Another function for you to generate with BIP85 a share for your friends and family who ask you to be part of their seed SSS is also possible.

This means the share you hold from them has the loss and theft protection of your whole m-of-n seed backup not a single point of failure.

BenWestgate commented 1 year ago

Secret recovery phrase creation without the need to backup: An individual can create child secret recovery phrases for elderly parents or their kids who are unable to store or secure secret recovery phrases.

This goes a step beyond producing a share to help someone to producing the whole wallet masterkey. I dislike the centralization of this mode.

github-actions[bot] commented 2 months ago

Stale issue message

BenWestgate commented 2 months ago

This goes a step beyond producing a share to help someone to producing the whole wallet masterkey. I dislike the centralization of this mode.

However MOM generating a share and dad generating a share could define a 2-of-2 codex32 seed backup for their dependent. Deriving a new seed. Or likewise the 3 children of an elderly parent a 3-of-3. This is extremely secure. Additional shares could be derived to improve accessibility for the helped person as their cognition improves. A As long as MOM or dad do not lose their seed backups, and their backups should be recoverable by heirs so that will be rare.

So even if both die, the heirs of MOM and the heirs of dad will need to cooperate to restore the seed of the deceased and then cooperate to restore the seed of the orphan.

github-actions[bot] commented 4 days ago

Stale issue message