|
| 1 | +# Warning! There is a problem with LetheKit/seedtool BIP39/SLIP39 interoperability. |
| 2 | + |
| 3 | +### The following is being tracked as [Issue #38](https://github.com/BlockchainCommons/bc-lethekit/issues/38): |
| 4 | + |
| 5 | +#### What is the problem? |
| 6 | + |
| 7 | +The LetheKit seedtool application generates new wallets using dice |
| 8 | +entropy to create BIP39 and SLIP39 recovery mnemonics. The BIP39 and |
| 9 | +SLIP39 mnemonics represent valid wallets, but they are not the same |
| 10 | +wallet. |
| 11 | + |
| 12 | +This is a serious problem. If both BIP39 and SLIP39 backups are |
| 13 | +created at the same time and funds are placed in the BIP39 wallet the |
| 14 | +SLIP39 backup will fail to recover the same wallet and the funds would |
| 15 | +be lost. |
| 16 | + |
| 17 | +#### Why is this the case? |
| 18 | + |
| 19 | +Andrew Kozlik explains it well in this [GitHub comment] |
| 20 | +(https://github.com/iancoleman/slip39/issues/1#issuecomment-563213494) |
| 21 | + |
| 22 | +#### How can matching BIP39 and SLIP39 backups be made? |
| 23 | + |
| 24 | +Andrew Kozlik explains (above) that in principle, SLIP39 shares which |
| 25 | +are 59 words long could match a BIP39 mnemonic. In practice SLIP39 |
| 26 | +shares of this length are non-standard and unlikely to be supported by |
| 27 | +any devices or applications. The extreme length is also significantly |
| 28 | +painful to record and enter. |
| 29 | + |
| 30 | +#### Impact on LetheKit/seedtool: |
| 31 | + |
| 32 | +The desired feature of (standard) matching BIP39 and SLIP39 backups is |
| 33 | +not possible. |
| 34 | + |
| 35 | +The conversion of a BIP39 backup into a SLIP39 backup is not possible. |
| 36 | + |
| 37 | +The conversion of a SLIP39 backup into a BIP39 backup is not possible. |
| 38 | + |
| 39 | +LetheKit/seedtool can generate valid BIP39 and SLIP39 wallets but |
| 40 | +should not allow generation of both at the same time or suggest it |
| 41 | +can convert between the two. |
| 42 | + |
| 43 | +LetheKit can restore SLIP39 backups, but a mechanism to export the |
| 44 | +master secret (likely via QR code) would need to be added. |
| 45 | + |
| 46 | +## The original (invalid) directions follow: |
| 47 | + |
1 | 48 | # Seedtool Application Instructions |
2 | 49 |
|
3 | 50 | The *seedtool* utility allows you to generate and recover |
|
0 commit comments