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 9 months ago

BenWestgate commented 9 months 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 9 months 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 9 months 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.