OK...
I'm not talking about a hot wallet. I just mean for cold storage and still not understanding the need for a hardware device for this.
OK...
I'm not talking about a hot wallet. I just mean for cold storage and still not understanding the need for a hardware device for this.
I'm not sure if I'm going to do you any good in this convo beause I'm fumbling around 😬 but my question would be - if not a hot wallet, where does that initial setting up of the seed phrase happen? I don't know a way to do that offline except with a cold wallet
You don't *unless* you are doing on chain transfers, or you want to receive funds on a unique address. You're right in that hardware wallets are a redundancy IE if the metal is lost or hard drives fail.
I would say that Metal backups are more indestructible, but they need different security.
Jameson Lopp might have a good video or blog about this.
That's getting to the crux of my not understanding this:
How does a thing that is not on the internet generate an address/wallet/keys that are needed to do anything on the blockchain? I don't get it. I've been watching videos and I understand HOW most hardware wallets work, EXCEPT for this one thing that just doesn't make sense to me yet.
Very simplified, it takes your private key and a derivation path and hashes that. The derivation path is just a sequence of numbers, and if you increment one of those numbers, you get a new private key.
The fun bit is you can apply the same derivation path to the public key, and get a new address which belongs to the derived private key.
Therefore if you have the master private key on a separate device, and the master public key somewhere else, they don't need to communicate to get a new address to receive, which you have the private key to spend for offline.
This is very simplified, there's probably a few more steps involved, but this (I think) is the gist of why you don't need internet.
This is a playground where you can play around. If you click generate, you'll see a list of addresses, public keys and private keys at the bottom of the page. These are all generated from the same entropy, and you don't need anything else.
WRNING: do NOT use private keys based off of this website. This is a public website and you should never put private keys in there or use private keys generated from a public website.
I... Don't really follow this yet.
No problem, they're tricky concepts to get your head around. Are you more of a visual learner?
Maybe something like https://www.youtube.com/watch?v=bBC-nXj3Ng4 helps, although I'm not sure if this actually covers your questions.
If you load the same key and the correct path into different wallets, and it properly generates a new address for every transaction, would the two wallets generate the same address in a sequential fashion? Or could it conceivably sit there for years, searching through billions of addresses?
Sorry to butt in on this. Are you having trouble with how the signing happens without the cold wallet going "online" as in connecting to another internet connected device? ColdCard is the only device I have experience with, but signing can be done over SD card, or USB transport.
Your other question: Why use hardware over seed import. There is never a trace of your private key on the "hot" device. You'd "never" have to worry about leaked private key data if it never leaves the signing device.
It may be worth looking into the secp256k1 algorithm to understand what keys are, how they are generated and stored etc. Oversimplified: if you can securely generate a 256bit number that is valid on the curve, you have your private key.
Some examples from coldcard that might help
It's not butting in, my dude. I appreciate all the participation in this thread!
Thanks! I'll check that out.
The keys stay on the hardware wallet, the transaction is just sending a message that was signed using the keys stored on the wallet. It's the same general flow whether it's a partially signed Bitcoin transaction from a cold card transferred via micro SD to a computer or a Ledger or trezor which connects directly to the computer..
I don't understand why you need to access the keys. At all.
You can do this with an offline computer running those bip39 webpages saved locally. Or you can poke around GitHub and find Python scripts that also do this offline.
The address is our generated with the private key and the wallets hd path, see walletsrecovery.org
This is a good question to put on bitcoin.stackexchange.com. That's where I go with hard questions.
Have you read the Bitcoin white paper as well? It might answer some of your questions
Nope. I have not read the whole thing. I'm not really into BTC much. It's useful and powerful, but, it's so little of my life I just don't really care that much when I have too many other things to turn my attention to!
So also the hardware wallets have a security chip which has been proven to generate a key that is random. Although there are some who are paranoid about even those chips being "random enough" and those people generate their phrase using dice and the diceware lookup table. The seed phrase is just a friendly way of representing the actual 256 bit hexadecimal string which Bitcoin core actually uses.
I get generation thing. What I'm not getting is how you can possibly "receive" BTC to that address/whatever without going on line. You have to go online at some point to interact with the blockchain. Since that is the case, what is the point of having a hardware "wallet?"
All the private keys and associated addresses already exist. You don’t create them, you find them. You can do that multiple ways, by hand, with software/hardware, or combination
If they already exist, how can you claim to access one, if not ONLY by going online and signing transactions?
You can receive without ever going online. But yes to send you need to sign a transaction and send to mempool
How can you "claim" an address as yours without going online? Your saying someone can just pick random addresses and send a bunch of BTC to them, and anyone who derives that address can go "get" that BTC? If that's the case, can't more than one person try to claim it?
Theoretically yes. You don’t claim private keys and addresses. Theoretically someone could randomly generate your same private key. But there’s some sufficiently large ( like more than the amount of atoms in the universe or something?) number of private key pairs to where both of those things are, in practice, impossible
Also, I am no expert, but this is my understanding.
That's what I also understand, but, gosh... That makes me feel a bit squidgy about the whole thing...
Because you don't want your private key to touch anything that's connected to the internet. Otherwise it's not cold storage.
Then what's the point of the hardware wallet?
I just don't get this.
"you need a hardware wallet to sign transactions with your private key. But it generates a private key without the internet, so, how does anyone transfer BTC to the wallet that the keys open?"
How does the wallet generated on a piece of air-gapped hardware get utilized by the blockchain to correctly direct transactions? That does not compute.
You extract the public key and put that into wallet software.
Naming conventions are a bit conflated, unfortunately.
A hardware wallet is for storing a private key.
Wallet software is for managing addresses from your public key.
The wallet software can construct a transaction, as that knows all your addresses and as it has access to the blockchain, knows your balances so you don't create transactions for amounts you don't have. However, as it doesn't have the private keys, it cannot sign.
The hardware wallet can sign your transaction, but doesn't know your wallet balances, so it cannot verify if you have the balances to spend, only that you have the private key that can sign.
As the hardware wallet doesn't have internet, it cannot broadcast a signed transaction, that has to go back to the wallet software, so it can broadcast the signed transaction to the broader network.
For sending, you need both. For receiving, you only need the wallet software, as you're not signing anything.
A hot wallet is basically these things combined.
You extract the public key and put that into wallet software.
Extract the public key from what, exactly?
100%. A big part of the hardware wallet industry is definitely based on sales due to fear of losing money. Especially Ledger.
I'm comfortable with using amounts of $1,000 on a hot wallet but that's because I'm a security conscious user.
I hadn't thought of the dynamic of marketing based on fear.
technically there is no cold storage or self-custody anyway. Coins only exist ON the blockchain. There is just good and bad practices for securing keys (or seeds)
just get 3 USB sticks for $5 each and PGP and be happy. Or get some heat resistant metal slates and engrave BIP38 encrypted keys on it.
Metal I can handle, no clue how to DIY a cold storage solution.
DIY
You'd first create a new keypair preferably BIP-38 encrypted and preferably on an offline device. Then just get a engraving pen on Amazon and find some suitable heat resistant metal slates. I like ISO-4955 treated metals but you could also use Titanium or other metals. Then engrave the BIP-38 public and private keys on the card and you're done. Alternatively you can get the metal lasered including fancy QR codes for public and private key.
There is also companies who offer these cards and you can (kinda) trust them because a BIP-38 key is useless without the coresponding passphrase used to encrypt it. However, I don't trust anyone I cannot punch so I make my own.
The other alternative I've mentioned already. Get 3 USB stick for a fiver each and PGP. Put your keys into a notepad, throw it on all three pen-drives and encrypt them. Three because you don't want to wake up to a unresponsive pen-drive.
I can punch/engrave metal. I hope I can, since that's part of my job as a welder... LOL
wait, you're a welder? then you know all about heat treatment of metals anyway. you've got this! just be creative there is so many ways to store private keys securely. You could probably create something that looks awesome out of metal and embed a key in 100 different ways in the sculpture or artwork. Nobody will ever know.
Yes. I can. I'm planning to do that, eventually. But, I need to understand what I'm doing first. 😅
oh boy. I'm right there with you.
After reading all the responses I think I'm more confused than I was before. They're very clear explanations but I must be missing something.
In any case, you're not wondering about how to store the private keys, right? (You're wondering why have a wallet if you have already secured the keys?)
That's part of it, yes. The other part is how you can do something offline to generate keys offline that can be both unique and accepted by the rest of the blockchain. Plus, you still need to use something of the generated thing to to online/on chain stuff. How? I don't get it.
I'm relatively new to the world of bitcoin. The philosophy and implications for freedom and human flourishing made sense to me almost immediately, but every time I think I understand a little bit more of the technical side I realize how much I still have to learn. Analogies help a lot (or would help) but I don't know if there are analogs in the physical world for some of this stuff.
Anyway - I'll keep following your questions and looking things up. I bet in a year we'll understand more than we do now.