dashpay / dash

Dash - Reinventing Cryptocurrency
https://www.dash.org
MIT License
1.49k stars 1.2k forks source link

[feature-request] GUI: Shamir Secret Sharing a.k.a "Split Wallet" (Dash insurance) #1427

Closed Technologov closed 6 years ago

Technologov commented 7 years ago

Hello,

What happens if I get run over by the bus? What happens if I die? I have a bunch of Masternodes that are worth a fortune. I don't want to give private keys to anyone, not even my family. But I want to give them a way to recover a private key, in case something happens to me.

One good solution is Shamir Secret Sharing. (SSS) For Bitcoin, we have Bitaddress.org "Split wallet" feature. But Dash? Paper.dash.org has same feature, BUT it doesn't support Masternodes feature.

Very few people in the Bitcoin world have such an insurance strategy in place, in case they die. I'm one of the few, who does.

SSS is really a split wallet, where people can do 4 of 6 or 5 of 8 wallets and spread key-parts across family members. SSS is in some ways similar to Multisig, in that it divides responsibility across several people, but unlike Multisig, people will need to come together to use it, and no Multisig script is needed. So it's implementation is simpler.

I feel we should integrate this functionality into Dash Core wallet directly. Insurance strategy should become common-place rather than one-in-a-million users knowing about it.

SSS Example: https://sourceforge.net/projects/secretsharp/

-Technologov, 08.04.2017

P.S for anyone wondering what is my backup strategy, I'm using a combination of SSS paper wallets and a bunch M-Discs from Millenniata, stored off-site, a 1000 year optical disc: -- the most reliable digital storage medium in history. https://vimeo.com/126129387

Romazhinvest commented 7 years ago

I agree with you 100%,also if someone have another idea about the way of passwords recovering it will be greater to have a few ways to make more comfortable to use for mass adoption also many variations of stored info mobile, fisic,or eny kind of safe encrypted holder

chaeplin commented 7 years ago

for ref:

1) [WIP] HD wallet #1405 https://github.com/dashpay/dash/pull/1405

2) mns with hw wallet https://github.com/Bertrand256/dash-masternode-tool https://github.com/chaeplin/dashmnb

Technologov commented 7 years ago
  1. Hierarchical deterministic wallet is not split wallet. (HD vs. SSS)

  2. Hardware wallet doesn't solve the problem of insurance. We need SSS

chaeplin commented 7 years ago

without HD, you can't have what you want.

Technologov commented 7 years ago

Chaeplin, I can, because I use totally separate wallets for day-to-day use and Masternodes, so I will never run out of 1000keys on my MN wallet, but for the general case for other users, you're right. Without HD, I can burn wallet.dat to M-Disc and use SSS tool to split password of my wallet to pieces.

OK I agree, that HD wallet is a pre-requisite for SSS.

UdjinM6 commented 7 years ago

I don't quite follow why this has smth to do with a) masternodes and/or b) HD wallet. a) What stops you from creating m-of-n split private key via paper.dash.org and fund corresponding address with 1000 DASH? b) For me it seems like SSS and HD wallet are two completely orthogonal issues.

Technologov commented 7 years ago

The problem is that with paper.dash.org, my 1000.0 DASH will be on paper wallet, and therefore unusable from Dash Core wallet. (So I can't start my Masternodes). Or I should import my private key into Dash Core, and start from there ? Can I use a single Dash address for several Masternodes ? Or one address per MN ? (for now I use 1 address = 1 MN)

UdjinM6 commented 7 years ago

Or I should import my private key into Dash Core, and start from there ?

Yes, you can import it: combine shares to get private key and then use Console in Dash Core - importprivkey <yourkeyhere>.

Can I use a single Dash address for lots of MNs ?

No, even though masternodes are identified by utxo with 1000 DASH, not by an address on p2p level, they are still paid by an address in the blockchain. Thus once any of them is paid, network won't be able to tell which one was paid exactly and will count all of them as "paid" to avoid further network split. Create as many split keys as you have masternodes and share a numbered/itemized list of shared secrets (i.e. one list per person).

chaeplin commented 7 years ago

I thought backup of hd masterkey / recovery seed.

Technologov commented 7 years ago

Chaeplin's solution seems much simpler and easier to have in one wallet GUI. Having many private keys with SSS on paper is not fun at all. "Too complicated to manage"

  1. Chaeplins idea is to "Split" the recovery seed. Wallet.dat not required. HD patch required.
  2. My idea is to "Split" the password. Wallet.dat still required, higher security, but more complexity. HD patch not required, but recommended.
nmarley commented 6 years ago

This idea has been mentioned in other tickets, and as explained there, hardware wallets should be used for any significant amount of funds and succession plans should be implemented via legal procedures.