crypto.bi – ELI5 Cryptography, cryptocurrency and programming

ELI5 Don’t ever mix paper and electronic wallets!

Whatever cryptocurrency you might use, don’t ever mix paper and electronic wallets!

In this article we give a ELI5 overview of paper wallets and what you need to know to keep your crypto safe from theft or accidental loss.

Paper Wallets

First, let’s take a quick look at how paper wallets work.

Cryptocurrencies use what we call asymmetric cryptography. Which means there are at least two different keys used to manage your funds. The public key, which can be freely, and safely, shared with anyone. And the private key, which must be carefully stored and protected from unauthorized access.

When you print the private key to paper, you’ve got a paper wallet. That’s all there is to the simplest kind of paper wallet.

A fun fact about Elliptic Curve Cryptography (as well as RSA) is that the public key can be derived from the private one! So if you have a private key printed on a sheet of paper, then you can derive the public key from it! But the reverse operation is intractable. Meaning, if you tried it, you could probably find that key in a few million years of brute force attempts.

So, that’s the theory behind paper wallets. It’s simply a private key printed on paper in a way that you can easily recover it, import it, type it or whatever. As long as you’re able to insert that data back into a computer, the paper wallet has completed its mission. To make this as easy as possible, there’s a ton of different encodings they use, like QR Codes, bar codes, shortened strings and so forth.

What about the “wallet addresses” we see printed everywhere?

Those addresses are actually a specially encoded public key.

Platforms are free to implement their own encoding rules, as long as the public key can be somehow derived from the address. So you may hear about several different encoding mechanisms like BECH32, Base58 and so on. Don’t worry about the technical details. All you need to know is that the key is encoded somewhere in the address. Or the address can easily be derived from the public key, so when a transaction comes it, the receiver can verify that the sender is who they claim to be.

For example, merchants can display the public key at the cash register, usually encoded in some way, e.g. in a QR Code, so that customers can scan it and make payments to that address instantly.

So, in summary, there’s two things you can print on paper : the private and the public key.

Well there’s a also a “third thing” you can print, called mnemonic phrases, but that’s the subject of another article, because it’s a special type of “wallet”. In fact, it’s a wallet that can generate almost an infinite number of addresses.

If you print the private key, then that piece of paper will hold all your treasures. So you must take special care to keep it in the safest place possible.

So, what’s wrong with paper wallets?

There’s nothing wrong with them, as long as you understand how they work.

Like we mentioned just now, a paper wallet is simply ONE private key printed on a piece of paper.

One private key is matched by exactly one, and only one, public key. One public key means, for all practical purposes, one single address.

So, in short, one private key means one address. And that’s the “problem” with paper wallets – they can’t be used to generate change, AKA return, addresses.

Let’s use a practical example to see how this can be a problem.

You’re buying a Lambo using part of the balance in a paper wallet. You load your Bitcoin private key into a modern wallet and send the funds to a hot wallet.

What happens during this first transfer is determined by how this “modern” wallet is implemented!

If the wallet generates a new change address for each transaction, then your paper wallet funds will get 100% send out : the requested amount goes to the target address, and the rest goes to the change address. The change address now contains the rest of your original paper wallet balance. If you want to keep those BTC in your paper wallet (not recommended after the first use) then you must explicitly send the Bitcoin back to the original paper wallet address. Note : the change does not automatically get sent back to the original paper wallet.

The worst case scenario here is you delete the newly created modern wallet after its first use. Then the change, which didn’t go back to the paper wallet, is lost. Always make sure to check where the change got sent before destroying the newly created hot wallet.

Modern Platforms Fix This

Now, imagine you’re buying a Lambo using your Avalanche AVAX balance. Avalanche has a special wallet implementation just for this!

You load your cold wallet private key into Avalanche Wallet:

Then, send 500 coins to the hot wallet. The Avalanche wallet is smart enough to know that a wallet loaded from a private key using the above form is what we call a “singleton wallet”, which only has one address. So, Avalanche will automatically send the change back to the paper wallet address itself. Problem solved.

Note: this solves the paper wallet problem, but is definitely not recommended. You should always create a new, unused, paper wallet and send the funds there manually. Keys shouldn’t get reused, and paper wallets only hold one key.

Conclusion

When using paper wallets, never mix it with a modern wallet of any kind. And if you do, then don’t expect, or assume, that the funds were returned to the original wallet after a transaction.

There are countless wallet implementations – and most modern ones use a privacy-centered scheme where there’s a new change address generated for each transaction. In those cases, your remaining paper wallet funds may go to a change address and not back to the paper wallet. Make sure to double-check both the new hot wallet and the old paper wallet before you consider the transaction finished.

The safest way is to create a new paper wallet and manually send the remaining funds there once you’ve verified the payment you needed to make. If using Bitcoin, then send the funds back to a new paper wallet, make sure that they’ve been correctly deposited with at least 3 block confirmations. After you’ve made sure the funds are where you expected them to be, only then can you throw away the old wallet without making an expensive mistake.

Links

PSA: Using paper wallets, understanding change addresses

Where does the change go in blockchain.info when using a paper wallet?

Bitcoin Wiki: Paper Wallets and Address reuse

Exit mobile version