Bitcoin Wallet Fundamentals


The Bitcoin wallet is software that keeps track of your Bitcoin ACCOUNTs and PASSWORDs.
Wallets can be online, on one's computer, and/or on one's cellphone.

Cold wallets are offline, and their job is to calculate correctly the ACCOUNTs based on PASSWORDS that either you provide or they generate at random. A cold wallet can receive Bitcoin (you publish only the ACCOUNT to the sender) but not spend it, because it is offline.

Hot wallets do the above plus are able to initiate transactions.


BITCOIN CASH, a.k.a. "Paper Wallet".

A common practice for some transactions is the following: Move some Bitcoin to a new temporary account, and then for this temporary ACCOUNT print on a piece of paper both the ACCOUNT and the PASSWORD. Fold the piece of paper and take it with you. When it is time to pay, unfold only the part that shows the ACCOUNT, and let the proposed recipient scan it, to confirm that the Bitcoin is still there. Once you have decided to pay, give the recipient the rest of the paper (effectively creating a joint ACCOUNT). They will scan in the PASSWORD, and use it to move the Bitcoin from the joint account to one of their own. Neither you nor the recipient should ever use the joint ACCOUNT again.

A related practice is when you do not know in advance how much Bitcoin to put on the paper wallet.

If you think you will need between, say 0.32 and 0.33BTC, you could print 6 wallets:
one for .32 and five for .02 each. Once the price is determined, spend only what you need.

Security in randomness

The PASSWORD generates the ACCOUNT.

Protection comes from enabling a very large number of PASSWORDs.

Just how large?

The odds of someone guessing the Powerball Lottery lucky numbers are 1.8 x 10 to the 8th power (1.8E8) and the reward is 10s of millions of dollars. Source: http://www.calottery.com/play/draw-games/powerball/faqs)


The odds of someone guessing the PASSWORD to a specific Bitcoin ACCOUNT are  1.76 x 10 to the 78th power - and the reward is smaller.


The odds of someone guessing your actual bank password are MUCH LARGER.

So the safety comes by making every PASSWORD (and its corresponding ACCOUNT) a needle in a very large haystack.

Another element of the safety is creating one ACCOUNT/PASSWORD pair for each transaction, each invoice, each payment.

If you do not care about details, then all you need to know is that all wallets (except ours) can create easily such an ACCOUNT/PASSWORD pair with one click, and without asking you any questions.


More about the PASSWORD generation

PASSWORD Option A: The simplest option is to create the PASSWORD at random. All wallets offer this option except our spreadsheet.


PASSWORD Option B: The other option is to have a “brain wallet”: Start with a SEED (something that you remember but is very difficult for others to guess) and apply the PASSWORD_FORMULA to it, to get the PASSWORD.


You can think of it this way: SEED + PASSWORD_FORMULA make the PASSWORD.

Those who like math and functions can write: PASSWORD = PASSWORD_FORMULA(SEED)


The SEED can be a memorable phrase or in and of itself a random number.


The PASSWORD_FORMULA is in the public domain. It has also been implemented in the attached spreadsheet.

Creating the ACCOUNT from the PASSWORD:


Another formula, the ACCOUNT_FORMULA is applied to the PASSWORD, and that gives the ACCOUNT.


You can think of it this way: PASSWORD + ACCOUNT_FORMULA make the ACCOUNT


or think of it as a mathematical function: ACCOUNT = ACCOUNT_FORMULA(PASSWORD)


This ACCOUNT_FORMULA is also public.


The security of this component is based on the fact that the ACCOUNT_FORMULA cannot be reversed. Strong mathematicians and cryptographers understand why it cannot be reversed. We have also implemented it in the attached spreadsheet, so the general public has yet another source to read it.



TERMINOLOGY


In this page we have used simplified terminology.
If you are going to dive into the spreadsheet, please be sure to learn the actual terminology.
1. What we call the SEED, is sometimes known as the Passphrase.
2. What we call a PASSWORD, is formally known as "Private Key/Wallet Import Format".
3. What we call ACCOUNT bitcoiners call "Bitcoin Account"


A MOST EDUCATIONAL EXAMPLE


A great place to see this wallet operation in action is https://www.bitaddress.org/
Go through the process of creating a random pair (100%).
Then click on the label “Brain Wallet”.
Enter this SEED (passphrase) without the quotes: “It was the best of times. It was the worst of times.”
You will get the PASSWORD: 5JJ2unrnNEPmvrsmCShXsqLUvfHAUtJJm47v8a5CAcFsfuzPEnA
You will get the ACCOUNT:1L3RFusijhwcgDee4eUFQTjCSN8GCJ6gAK
You can check the balance of that account here:


Hopefully nobody has put any bitcoin in this, because it is easy to guess, and others might take this Bitcoin from them. Also this SEED only contains letters, making it easy to crack. It is best to use numbers and symbols as well.


Technical people also use narrower definitions for Bitcoin: a protocol; a computer program; a ledger; units on the ledger; a payment network; and others. Find out more at https://bitcoin.org/
The network is supported by a group called miners. If you already know what this is, this site is NOT for you!

More topics


LINKS




No comments:

Post a Comment