Giter Club home page Giter Club logo

seedsplit's People

Contributors

johanneskares avatar oed avatar shulyaka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seedsplit's Issues

Can't get it to work after multiple reinstall's

I have nodejs and npm installed on my ubuntu 16.04 LTS, can anyone tell me what this error means?

/usr/local/lib/node_modules/seedsplit/bin/cli.js:23
function split({ threshold, shards }) {
^

SyntaxError: Unexpected token {
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3

Invalid Entropy with 24 words - BIP39

I've found out that bip39 new version 2.4.0 breaks this module when working with 24 words.

You can change your package.json to download the 2.3.0 version and it should work fine.

[Related #3 ]

Can't restore my crypto-assets

Hello again :)

I'm combining the shards I created but the key that I'm getting is showing the wrong addresses, with zero balance, when I import it into Mycrypto App or Electrum Bitcoin wallet.

I have tried both the compiled version cli-win and cli-linux and the npm installer on ubuntu with bip39 2.3.0. They all give me the same output which seems to be different from what I split back in 2017.

Divorce dizzy doctor and entropy size

Hi,

I have noticed a few issues with the sharded phrases, which might be related and have a common cause, so I don't want to create a separate issue for each unless advised otherwise:

  1. The first word for a sharded phrase does not seem to be random enough, which is suspicious. The first 3 phrases always start with 'divorce', next 4 start with 'dizzy' and so on. The beginning of the phrase is either redundant or means the entropy is not random enough.
  2. The sharded phrase is longer than original one. As far as I understand Shamir's Secret Sharing, the sharded key should be of the same size as original key. Please see the 'minimal' property on Wikipedia: https://en.wikipedia.org/wiki/Shamir's_Secret_Sharing#Properties. One of the implications of this is that you cannot use tools like cryptosteel mnemonic to store the sharded phrases.
  3. The sharded phrase seems to be an incorrect mnemonic phrase. This can be shown by trying to split the resulted phrase again.

Demonstration:

[denis@localhost ~]$ echo "any brain size about february pupil maximum model bright convince cabbage sister" | wc -w
12
[denis@localhost ~]$ echo "any brain size about february pupil maximum model bright convince cabbage sister" | seedsplit split -t 2 -s 3
Enter seed mnemonic:
divorce episode heavy wrong input bless media canoe tragic wagon feed town sugar fork
divorce nuclear split raw fantasy fury essay pyramid vendor smoke thumb detect write actress
divorce table project keep refuse empower husband step alert chest miss lunch bomb skirt
[denis@localhost ~]$ echo "divorce episode heavy wrong input bless media canoe tragic wagon feed town sugar fork" | wc -w
14
[denis@localhost ~]$ echo "divorce episode heavy wrong input bless media canoe tragic wagon feed town sugar fork" | seedsplit split -t 2 -s 3
Enter seed mnemonic:
readline.js:1021
            throw err;
            ^

Error: Invalid mnemonic
    at Object.mnemonicToEntropy (/usr/lib/node_modules/seedsplit/node_modules/bip39/index.js:65:37)
    at Object.split (/usr/lib/node_modules/seedsplit/lib/seedsplit.js:11:19)
    at result (/usr/lib/node_modules/seedsplit/bin/cli.js:29:36)
    at prompt.get (/usr/lib/node_modules/seedsplit/bin/cli.js:60:7)
    at /usr/lib/node_modules/seedsplit/node_modules/prompt/lib/prompt.js:336:32
    at /usr/lib/node_modules/seedsplit/node_modules/async/lib/async.js:154:25
    at assembler (/usr/lib/node_modules/seedsplit/node_modules/prompt/lib/prompt.js:333:9)
    at /usr/lib/node_modules/seedsplit/node_modules/prompt/lib/prompt.js:342:32
    at /usr/lib/node_modules/seedsplit/node_modules/prompt/lib/prompt.js:625:5
    at Interface.onLine (/usr/lib/node_modules/seedsplit/node_modules/read/lib/read.js:111:5)

Best regards,
Denis Shulyaka

Swap out sss library

The secrets.js libarary is not really that nice. Instead dsprenkles/sss-node should be used. Note that this is a breaking change meaning that old shards will not be combinable after this update.

This is not a BIP - so if you lose this code, your keys are useless

Something that someone using this might not consider is the possibility of this code disappearing, rendering your keys useless - unless you also store the algorithm along with those keys.

The solution is to turn this into a BIP, so that the protocol will be preserved and maintained. Until that happens it is ill advised to use this - rather use n of m multisig wallets, each with its own passphrase.

24 word seed produces error

I have tried a bunch of different length seeds. The ones between 12 and 21 words work fine. I used this site to generate them: https://iancoleman.github.io/bip39/

When I use a 24 word seed it throws an error.

ubuntu@ubuntu:~$ seedsplit split -t 2 -s 3
Enter seed mnemonic:  
readline.js:1015
            throw err;
            ^

TypeError: Invalid entropy
    at Object.entropyToMnemonic (/usr/lib/node_modules/seedsplit/node_modules/bip39/index.js:95:37)
    at shards.map.shard (/usr/lib/node_modules/seedsplit/lib/seedsplit.js:16:18)
    at Array.map (native)
    at Object.split (/usr/lib/node_modules/seedsplit/lib/seedsplit.js:14:31)
    at result (/usr/lib/node_modules/seedsplit/bin/cli.js:29:36)
    at prompt.get (/usr/lib/node_modules/seedsplit/bin/cli.js:60:7)
    at /usr/lib/node_modules/seedsplit/node_modules/prompt/lib/prompt.js:336:32
    at /usr/lib/node_modules/seedsplit/node_modules/async/lib/async.js:154:25
    at assembler (/usr/lib/node_modules/seedsplit/node_modules/prompt/lib/prompt.js:333:9)
    at /usr/lib/node_modules/seedsplit/node_modules/prompt/lib/prompt.js:342:32

I've tried this on two different installs.

Can this be packaged as a distributable EXE? (and other thoughts)

I've been waiting to use something like this for a while, but the problems are as follows:

I'm a technical person surrounded by non-techie loved ones. Anyone I would will my seed to would basically have a next-to-zero chance of restoring it with current tools that utilize SSS. Additionally, the existing tools are not standardized and thus you can not simply tell someone to use the SSS algorithm to recombine the secrets, it doesn't work because they don't all follow the same exact format or algorithm. (I blame the fact that this was never standardized). The program must encompass most if not all of the following traits:

  1. Must be easy for laymen to install: In this world that means easy on windows.
    1a. An alternative may be a small bootable ISO, but teaching someone to boot a USB can be non-trivial.
  2. Must be stable and operate predictably: instructions that I put in a will or document in a safe box should remain working years down the road, and should require minimal upkeep and maintenance to ensure that the safely stored secrets continue to work.
  3. It's likely that laypeople are using this to restore something of value from a deceased person that they presumably are close enough to in order to have the necessary secrets, the program should make it very obvious and clear (because they may be grieving and stressed) to not to use this on an internet-connected device. The program should present the user with a very clear warning of this, and the possibility that if they do this on a compromised computer they could lose everything. The program should make it clear that it would be in the best interest of themselves that they should seek technical help from a close friend of family member (a truly trusted party) if they don't understand what any of that means and why it's important.

My experience with node thus far is that what is built with it often involve a deep network of dependencies that may drastically change, fall out of availability, and generally bit-rot over time. What strategy is being used to protect against that?

secret.js is outdated

The shamirs secret sharing library used is outdated and causes node to output a deprecation warning. Investigate other libraries or update secret.js.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.