Bitcoin Forum
March 04, 2021, 07:22:42 AM *
News: Latest Bitcoin Core release: 0.21.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Please critique my paper-wallet creation steps  (Read 357 times)
9thsky
Member
**
Offline Offline

Activity: 128
Merit: 35


View Profile
November 17, 2020, 08:05:24 AM
Merited by Ratimov (5), suchmoon (4), LoyceV (4), ETFbitcoin (3), o_e_l_e_o (2), pooya87 (1), bob123 (1)
 #1

1) Boot into Linux non-persistent Live USB (or CD). Preferably from a non-writable CD (or DVD).

2) Install Electrum.

3) Disable your internet connection and Bluetooth. AKA: Airgap your computer.

4) Run Electrum and create a wallet file. Name it what you like but it's irrelevant since you will not be using this file as it would be deleted once you end the session (log out / shut down the computer) after getting a seed phrase and an address. You don't need it. Your objective now is just to get a seed phrase and a receiving address.

5) Select "standard wallet".

6) Select "create a new seed".

7) Choose "Segwit" as seed type.

8 ) Write down (hard copy) the seed phrase and keep it safe and secure.

9) Confirm the phrase.

10) Enter a password. This part does not matter and you don't need to save or remember the password because you will not be needing it. It is just so you can continue creating the wallet and get an address.

11) Go to the "addresses" tab, and select an address from the list of "receiving" addresses and copy it, either soft or hard copy, choice is yours.

12) Go to "Wallet" > "Information" and save your "Master Public Key" anyway you want (hard copy or soft copy or both). "Preferably" keep it secret.

13) You now no longer need this wallet and you can end your session to permenantly wipe everything you've just done. The only thing you need are three things...1) the seed phrase 2) the Master Public Key and 3) the address. You need not retrain anything else from Electrum except these 3 things.

14) Go to Coinbase (or anywhere else you would like to send BTC from) and send the BTC you want to the address you copied in step 11.

15) Boot into another non-persistent live Linux session and repeat step 1, 2, 4 and 5. Don't do step 3 because you'll be needing the internet this time. When you get to step 6 above, instead of selecting "create a new seed", select "Use a master key". You can also do this from your regular OS.

16) Enter the master public key from step 12. Hit "Next"

17) You will see this on the next screen.

18) You should see the bitcoin you sent in the "history" tab.

19) If you want to use the BTC, repeat step 1-5 (make sure you start a new session). When you get to step 6, instead of "create a new seed", select "I already have a seed". On the next screen enter your seed phrase from step 8.

This will give you full access to your wallet and crypto currency.

...and that's it!

Can anyone better or correct the steps above? Am I missing something? Is there something else I need to be doing? Or does everything sound OK?

Question:

If I need to send bitcoin from this Electrum wallet I just created, do I need only the seed phrase to do so? No need to know the private key for instance? Basically, considering I know only the steps above, which is only the seed phrase, master public key and the address, is it sufficient enough to be able to move and have access to my coins and that is all I need to know?

Thank you so much in advance for your feedback!

________________________________________________

Credit goes to @pooya87 whose plan the above was and @o_e_l_e_o, @bob123 and @NotATether who provided tremendous guidance and help. Needless to say, I'd appreciate your inputs.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1614842562
Hero Member
*
Offline Offline

Posts: 1614842562

View Profile Personal Message (Offline)

Ignore
1614842562
Reply with quote  #2

1614842562
Report to moderator
1614842562
Hero Member
*
Offline Offline

Posts: 1614842562

View Profile Personal Message (Offline)

Ignore
1614842562
Reply with quote  #2

1614842562
Report to moderator
HCP
Legendary
*
Offline Offline

Activity: 1624
Merit: 3342

<insert witty quote here>


View Profile
November 17, 2020, 08:19:19 AM
 #2

Question:

If I need to send bitcoin from this Electrum wallet I just created, do I need only the seed phrase to do so? No need to know the private key for instance? Basically, considering I know only the steps above, which is only the seed phrase, master public key and the address, is it sufficient enough to be able to move and have access to my coins and that is all I need to know?
Correct, you only need the seed mnemonic (aka 12 words)... When you restore the wallet from seed, it should automatically find the transaction(s) and balance etc... you can then create and sign transactions as required as the seed mnemonic will enable you to restore all the necessary private keys to be able to do so.


Can anyone better or correct the steps above? Am I missing something? Is there something else I need to be doing? Or does everything sound OK?
eciate your inputs.
The only note I would make is that by creating the seed mnemonic in Electrum, you will be effectively "tied" to Electrum to restore your wallet, as Electrum seed mnemonics are not BIP39 compatible. That isn't necessarily a "bad thing"™, it's just something to be aware of. Wink


mocacinno
Legendary
*
Offline Offline

Activity: 2240
Merit: 2943


https://merel.mobi => buy facemasks with BTC/LTC


View Profile WWW
November 17, 2020, 08:26:54 AM
 #3

I quickly glanced over your procedure, it seems to be missing a step to verify electrum's signature before installation... Unless that's covered in that youtube movie you linked to, but i'm not keen on opening youtube videos Smiley

EDIT: against my instinct, i did open the "install electrum" link, and it does contain instructions to verify your signature... So it looks ok to me Smiley

pooya87
Legendary
*
Online Online

Activity: 2282
Merit: 3602


Remember tonight for it's the beginning of forever


View Profile
November 17, 2020, 08:33:00 AM
Merited by ETFbitcoin (1)
 #4

Quote
13) You now no longer need this wallet and you can end your session to permenantly wipe everything you've just done. The only thing you need are three things...1) the seed phrase 2) the Master Public Key and 3) the address. You need not retrain anything else from Electrum except these 3 things.
you didn't need to copy the address here, only the seed phrase for the backup and the master public key for the online watch-only wallet which will create all the same addresses from this wallet using the MPK.

Quote
19) If you want to use the BTC, repeat step 1-5 (make sure you start a new session). When you get to step 6, instead of "create a new seed", select "I already have a seed". On the next screen enter your seed phrase from step 8.
there are some additional steps here (to _spend_ your bitcoin). you basically need a dual setting, one offline one online.
you do the steps quote on your offline machine to sign the transactions while the MPK is on the online machine and creates the unsigned tx and broadcast the signed one later.
details can be found here: https://electrum.readthedocs.io/en/latest/coldstorage.html

i also strongly suggest testing all these steps before using it for real. you could use testnet coins for free and without any worries.
https://bitcoin.stackexchange.com/questions/76598/how-to-get-electrum-3-1-3-on-bitcoin-testnet
some faucets:
https://testnet-faucet.mempool.co/
https://bitcoinfaucet.uo1.net/
https://coinfaucet.eu/en/btc-testnet/

o_e_l_e_o
Legendary
*
Offline Offline

Activity: 1218
Merit: 5791


Wear a mask, slow the spread


View Profile
November 17, 2020, 09:53:36 AM
 #5

Looks good to me too.

You can also do this from your regular OS.
I think this is worth noting. When you create a wallet using only your master public key and not your seed phrase, it cannot be hacked and there is no risk from a security point of view* from having it on your main OS with an internet connection at all times. This means that if you ever want to verify the address you are entering in to Coinbase (for example), or pick a new address, you can just open your watch only wallet and all the information you need will be there.

*There is a security risk to exposing your master public key if you also expose one of your private keys, but since in this set up you are not handling your private keys directly and they are staying permanently offline, then this should not be a concern. I have a number of cold storage wallets set up with master public keys used in this way.

NeuroticFish
Legendary
*
Offline Offline

Activity: 2506
Merit: 1974


Privacy is important


View Profile
November 17, 2020, 10:11:09 AM
Merited by ETFbitcoin (1)
 #6

1) Boot into Linux non-persistent Live USB (or CD). Preferably from a non-writable CD (or DVD).

2) Install Electrum.

The setup is not bad at all, but you asked us to criticize, so here I am  Cheesy

It may worth mentioning that a Tails OS USB stick has all you need, including Electrum already installed.
It may also worth reminding that Electrum seed works only in Electrum (HCP already wrote: "not BIP39 compatible"). I was told it's easy to convert to something else, but for long term storage, it could be a good idea generating the seed in Ian Coleman's tool and then verify with Electrum.

bob123
Legendary
*
Offline Offline

Activity: 1484
Merit: 2314



View Profile WWW
November 17, 2020, 11:13:02 AM
 #7

Looks good overall.
More of an addition instead of criticism:

19) If you want to use the BTC, repeat step 1-5 (make sure you start a new session). When you get to step 6, instead of "create a new seed", select "I already have a seed". On the next screen enter your seed phrase from step 8.

This will give you full access to your wallet and crypto currency.

That's correct.
Please keep in mind that the most securely generated paper wallet is worthless if you make mistakes later on such as using a network-connected computer to actually spend the BTC by signing a transaction.

It is crucial to sign the transaction offline. Since the offline wallet won't know which UTXO it has control of, the transaction needs to be generated on an online device using the master public key (does not have to be kept secure, just for privacy reasons) and then transferred to the offline device to be signed.


Also, if you intend to print it out instead of simply writing it down, do not use a web- or network printer.



If I need to send bitcoin from this Electrum wallet I just created, do I need only the seed phrase to do so? No need to know the private key for instance?

Correct. The mnemonic code is used to derive the private keys (the wallet software is doing this for you).


Basically, considering I know only the steps above, which is only the seed phrase, master public key and the address, is it sufficient enough to be able to move and have access to my coins and that is all I need to know?

Yes.

ETFbitcoin
Legendary
*
Offline Offline

Activity: 1792
Merit: 2680


NotYourKeys.org - Not Your Keys, Not Your Bitcoin


View Profile
November 17, 2020, 12:22:16 PM
 #8

13) You now no longer need this wallet and you can end your session to permenantly wipe everything you've just done. The only thing you need are three things...1) the seed phrase 2) the Master Public Key and 3) the address. You need not retrain anything else from Electrum except these 3 things.

Address is optional, you can obtain list of address from Master Public Key.

15) Boot into another non-persistent live Linux session and repeat step 1, 2, 4 and 5. Don't do step 3 because you'll be needing the internet this time. When you get to step 6 above, instead of selecting "create a new seed", select "Use a master key". You can also do this from your regular OS.

If you plan to spend Bitcoin (rather than only create watch-only wallet), non-persistent live linux is better option. Or just follow suggestion mentioned by @pooya87.

It may worth mentioning that a Tails OS USB stick has all you need, including Electrum already installed.

This is good suggestion, OP also benefit from having better privacy.

pooya87
Legendary
*
Online Online

Activity: 2282
Merit: 3602


Remember tonight for it's the beginning of forever


View Profile
November 18, 2020, 04:28:33 AM
 #9

I was told it's easy to convert to something else, but for long term storage, it could be a good idea generating the seed in Ian Coleman's tool and then verify with Electrum.
it is unclear what you mean by "convert".
you can't convert the Electrum mnemonic to another mnemonic like BIP39, however you can derive the master private key (starting with xprv) and that string is universally accepted and understood by all HD wallets and as long as you know the derivation path, you can get the same addresses.
as for the web tool (Coleman's) i wouldn't suggest it for cold storage, i prefer desktop apps written in any language other than JS that don't rely on my browser to run.

NeuroticFish
Legendary
*
Offline Offline

Activity: 2506
Merit: 1974


Privacy is important


View Profile
November 18, 2020, 06:11:33 AM
 #10

it is unclear what you mean by "convert".

By your very own words, "it is very easy to ask the community to create a very simple tool with less than 20 lines of code (hence easy to review) to convert the Electrum mnemonic to an extended private key (xprv)".


as for the web tool (Coleman's) i wouldn't suggest it for cold storage, i prefer desktop apps written in any language other than JS that don't rely on my browser to run.

Since OP topic is about paper wallet and not cold storage, a proper mnemonic seed is advisable, whether it's made by compiled code or in-browser JS.
And after having a proper mnemonic seed, OP can continue with Electrum (or even use it as cold storage).

pooya87
Legendary
*
Online Online

Activity: 2282
Merit: 3602


Remember tonight for it's the beginning of forever


View Profile
November 18, 2020, 06:23:55 AM
 #11

yeah, your comment above needed a little bit of clarification by including what that "something else" that you convert to is.

Quote
Since OP topic is about paper wallet and not cold storage, a proper mnemonic seed is advisable, whether it's made by compiled code or in-browser JS.
And after having a proper mnemonic seed, OP can continue with Electrum (or even use it as cold storage).
that is mainly my dislike of JavaScript as a programming language and usage of browsers when you deal with RNGs to generate the entropy for your seed phrase.

NeuroticFish
Legendary
*
Offline Offline

Activity: 2506
Merit: 1974


Privacy is important


View Profile
November 18, 2020, 09:35:20 AM
 #12

that is mainly my dislike of JavaScript as a programming language and usage of browsers when you deal with RNGs to generate the entropy for your seed phrase.

I can understand that. I wish to see this implemented in a proper application with signature to be checked to avoid surprises. I wish that at some point Electrum would offer the choice between their mnemonic and BIP39 one.
But for now we have to live with what we have. Electrum is a great piece of software, but one has to be aware of its minuses too and adjust if necessary.

bob123
Legendary
*
Offline Offline

Activity: 1484
Merit: 2314



View Profile WWW
November 18, 2020, 10:16:21 AM
Merited by NeuroticFish (1), pooya87 (1)
 #13

I can understand that. I wish to see this implemented in a proper application with signature to be checked to avoid surprises. I wish that at some point Electrum would offer the choice between their mnemonic and BIP39 one.

No one forces you to use electrum to generate a paper wallet or cold storage setup.

Wasabi is a perfectly fine alternative and is in no regards inferior. With Wasabi, you'll have a BIP39 mnemonic.

You use literally and reputable wallet, or even no wallet at all (linux command line tools are mostly sufficient).

Wind_FURY
Legendary
*
Offline Offline

Activity: 1750
Merit: 1092


www.Crypto.Games: Multiple coins, multiple games


View Profile
November 20, 2020, 10:01:39 AM
 #14

13) You now no longer need this wallet and you can end your session to permenantly wipe everything you've just done. The only thing you need are three things...1) the seed phrase 2) the Master Public Key and 3) the address. You need not retrain anything else from Electrum except these 3 things.

Address is optional, you can obtain list of address from Master Public Key.

15) Boot into another non-persistent live Linux session and repeat step 1, 2, 4 and 5. Don't do step 3 because you'll be needing the internet this time. When you get to step 6 above, instead of selecting "create a new seed", select "Use a master key". You can also do this from your regular OS.

If you plan to spend Bitcoin (rather than only create watch-only wallet), non-persistent live linux is better option. Or just follow suggestion mentioned by @pooya87.

It may worth mentioning that a Tails OS USB stick has all you need, including Electrum already installed.

This is good suggestion, OP also benefit from having better privacy.


I made this cold storage guide for newbies using Tails OS two years ago, https://bitcointalk.org/index.php?topic=5086011.0

Although, Tails removed Electrum from its software package in subsequent releases starting last year.

████  ███████  ███
██████████
███      ███████
███      ███████████
██████████████████
████████
███   ████  ███████████
███ ███████████████
█████████
█████████████████
███  ███████
██████████████
███        ████████
███████████▀▀███▀▀███████████
██████▀▀     ███     ▀▀██████
████▀   ▄▄█████████▄▄   ▀████
████▄▄▄███▀  ▀█▀  ▀███▄▄▄████
██▀▀▀██▀      ▀      ▀██▀▀▀██
█▀  ▄██               ██▄  ▀█
█   ████▄▄         ▄▄████   █
█▄  ▀██▀             ▀██▀  ▄█
██▄▄▄██▄             ▄██▄▄▄██
████▀▀▀███▄ ▄█ █▄ ▄███▀▀▀████
████▄   ▀▀███▄█████▀▀   ▄████
███████▄     ███     ▄███████
███████████▄▄███▄▄███████████
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
..PLAY NOW..
███  ███████  ████
██████████
███████      ███
███████████      ███
██████████████████
████████
███████████  ████   ███
███████████████ ███
█████████
█████████████████
███████  ███
██████████████
████████        ███
NeuroticFish
Legendary
*
Offline Offline

Activity: 2506
Merit: 1974


Privacy is important


View Profile
November 20, 2020, 10:48:01 AM
 #15

Although, Tails removed Electrum from its software package in subsequent releases starting last year.

I'm not sure where you have this information from, but I assure you it's incorrect.

First I checked here and I still found Electrum: https://tails.boum.org/doc/about/features/index.en.html
But since I thought it may be outdated info I've downloaded latest Tails (4.13) and fired it up into a VM. It has Electrum 4.0.2 on it.



Wind_FURY
Legendary
*
Offline Offline

Activity: 1750
Merit: 1092


www.Crypto.Games: Multiple coins, multiple games


View Profile
November 20, 2020, 01:55:40 PM
 #16

Although, Tails removed Electrum from its software package in subsequent releases starting last year.

I'm not sure where you have this information from, but I assure you it's incorrect.

First I checked here and I still found Electrum: https://tails.boum.org/doc/about/features/index.en.html
But since I thought it may be outdated info I've downloaded latest Tails (4.13) and fired it up into a VM. It has Electrum 4.0.2 on it.


Sorry, you're right. I remembered it wrong. Tails NEVER removed Electrum from their packages, BUT the version installed by default for a time was vulnerable to phishing attacks/the outdated version, and therefore couldn't connect to servers. That's why I stopped using it.

https://tails.boum.org/news/version_3.13/index.en.html

Quote

To prevent this phishing attack, all trustworthy Electrum servers now prevent older versions from connecting to them.

Unfortunately, newer versions of Electrum are not available in Debian and cannot be integrated easily in Tails. Given the lack of maintenance of Electrum in Debian, we are still assessing what is best to do in Tails.


████  ███████  ███
██████████
███      ███████
███      ███████████
██████████████████
████████
███   ████  ███████████
███ ███████████████
█████████
█████████████████
███  ███████
██████████████
███        ████████
███████████▀▀███▀▀███████████
██████▀▀     ███     ▀▀██████
████▀   ▄▄█████████▄▄   ▀████
████▄▄▄███▀  ▀█▀  ▀███▄▄▄████
██▀▀▀██▀      ▀      ▀██▀▀▀██
█▀  ▄██               ██▄  ▀█
█   ████▄▄         ▄▄████   █
█▄  ▀██▀             ▀██▀  ▄█
██▄▄▄██▄             ▄██▄▄▄██
████▀▀▀███▄ ▄█ █▄ ▄███▀▀▀████
████▄   ▀▀███▄█████▀▀   ▄████
███████▄     ███     ▄███████
███████████▄▄███▄▄███████████
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
..PLAY NOW..
███  ███████  ████
██████████
███████      ███
███████████      ███
██████████████████
████████
███████████  ████   ███
███████████████ ███
█████████
█████████████████
███████  ███
██████████████
████████        ███
ETFbitcoin
Legendary
*
Offline Offline

Activity: 1792
Merit: 2680


NotYourKeys.org - Not Your Keys, Not Your Bitcoin


View Profile
November 21, 2020, 11:21:00 AM
 #17

Sorry, you're right. I remembered it wrong. Tails NEVER removed Electrum from their packages, BUT the version installed by default for a time was vulnerable to phishing attacks/the outdated version, and therefore couldn't connect to servers. That's why I stopped using it.

You always could create persistent storage and store newest Electrum AppImage there. Almost all linux distro took some weeks (for rolling-release) to months (for conservative) before adding newest application version to their repository.

9thsky
Member
**
Offline Offline

Activity: 128
Merit: 35


View Profile
November 26, 2020, 08:31:09 PM
 #18

Once a transaction is confirmed (receive bitcoin) following OP, is there anything else you need to do before  File > Quit > Shut down computer?
o_e_l_e_o
Legendary
*
Offline Offline

Activity: 1218
Merit: 5791


Wear a mask, slow the spread


View Profile
November 26, 2020, 08:34:27 PM
Merited by ETFbitcoin (1), 9thsky (1)
 #19

Once a transaction is confirmed (receive bitcoin) following OP, is there anything else you need to do before  File > Quit > Shut down computer?
No, nothing else. In fact, you don't even need to keep the computer on until the transaction is received. It would be good practice to open your watch only wallet prior to handing out an address to someone, so you can double check the address you are about to hand out is absolutely correct, but once you have given the address for payment to the other party, you can shut down your watch only wallet immediately. If you have the address from step 11 copied already, and are already absolutely sure it is correct, then you don't even need to open the watch only wallet at all.

LoyceV
Legendary
*
Offline Offline

Activity: 2142
Merit: 7569


Thick-Skinned Gang Leader


View Profile WWW
November 27, 2020, 10:17:38 AM
 #20

Allow me to add some steps (off the top of my head), depending on your level of paranoia, not necessarily in this order:
1. Close the curtains.
2. Disable swapping on your Live CD:
Code:
sudo swapoff -a
2. Disconnect your PC speakers.
3. Disconnect your hard drive (read why).
4. Turn off all other electronic devices, remove batteries from listening devices (such as phones).
5. Don't rely on software to create a random seed, use coin tosses.
6. When you get a new address from your master public key, verify if you can actually recreate it from your seed. Kinda like how you verify a new address created by Electrum by connecting your hardware wallet.
7. Verify the address using different pieces of software, all offline and air gapped, so you don't have to rely on (for instance) Electrum being honest.

Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!