What is Armory?
• Armory Bitcoin Wallet is a free, open-source
desktop application for securing Bitcoins yourself
– One of four such applications featured on bitcoin.org
• Known for “security at all costs”
– Sometimes “convenience” is one of those costs...
– Currently a tool tailored to advanced/power users
– Recently funded, will develop beginner's interface
Backup Your Wallets
– The most common reason users lose coins is due to not
having an unencrypted backup!
• You lose all your Bitcoins if your hard drive fails
• You lose all your Bitcoins if you forget your password
• Your family cannot inherit your Bitcoins if you get hit by a
– It is critical your backup be unencrypted!
• An encrypted backup is useless if you forget the password
• An encrypted backup is useless if you get hit by a bus and
your family would like to inherit your fortune
For most users, digital security is the most important
For most users, physical security is not a concern
THEREFORE: Make an unencrypted backup offline and secure it!
(paper, DVD or USB key)
Backups: Digital vs. Paper
• How much are you willing to bet
that your CD or USB key will still
work in 5-10 years from now?
Armory Paper Backup
– If it's more than your wallet value,
don't use it
• If you use digital backups, make
– Store together, at least one will
• Paper fades over time, but the data
will be recoverable in 50+ years
Armory Technologies recommends that you use paper
backups whenever possible
Copy the data by hand if necessary
Most things that destroy paper also destroy digital
• IMPORTANT: At the time of this writing (Dec 2013):
– Bitcoin-Qt wallets must be backed up every 100 transactions
– Multibit and Bitcoin Wallet for Android require regular
backups unless you always reuse addresses (not good practice!)
• Address reuse is bad, but probably better than losing money
– Armory and Electrum wallets only require one backup, ever
• Infinite private keys generated from a single seed
• Print your seed on a piece of paper for reliable storage
If you use Armory or Electrum, make a paper
backup, one time, then never worry again!
In the next few months, all wallet developers will be implementing
the one-time-only backup features
– If you are concerned about physical security, a single-sheet
unencrypted backup is a single-point of failure
– Use M-of-N “Shamir's Secret Sharing”
– For instance, 3-of-5: print 5 “fragments”, need any 3
– Store each fragment in a different location
• Security—Attacker needs to steal multiple fragments
• Redundancy—you can lose pieces and it still works!
Currently, Armory is the only wallet offering this!
It is called “Fragmented Backups”
Graphic for 3-of-5 Backup
• IMPORTANT: Your wallet password is your encryption
key for your wallet!
• If you forget your password, your wallet will be
permanently encrypted and your coins will be lost!
...unless you have an unencrypted backup
• No really: I'm serious your coins will be lost forever
– Users are not used to the idea of truly, irrecoverable data
– Make an unencrypted backup!
If you've ever forgotten a password, make
an unencrypted backup!
• Armory and Bitcoin-Qt both use “key-stretching”
– Converting your password into the encryption key is a
– Armory's key-stretching is resistant to GPU-acceleration
• If someone gets your encrypted wallet, they can guess:
– Without stretching: 1,000,000 - 5,000,000 passwords/sec
– With stretching:
5 - 50 passwords/sec
• If key-stretching is not used, must longer passwords
– Recommended 12-16 characters for no key-stretching
– Recommended 10-12 characters with key-stretching
Use a strong password, make unencrypted backups!
Time to brute-force your wallet password*
6 chars (no stretching)
8 chars (no stretching)
12 chars (no stretching)
6 chars (with stretching)
8 chars (with stretching)
12 chars (with stretching)
If your wallet is valuable enough, a bot-net of 1,000,000
computers could be used to break your wallet encryption
*Caveats: used 30-character alphabet to simulate poor
entropy of human-generated passwords. Truly random
passwords of these lengths will be much more secure.
• If you are sending large amounts of Bitcoin:
– You want to make sure you send it to the right place!
– An attacker could replace the correct address with his
own on its way to your wallet software
• This is a serious security issue!
– The “payment protocol” hopes to solve this by using SSL
concepts to prevent address tampering
– This will not work in all environments (not everyone has
an SSL certificate)
• Pick up the phone and call the other parties
– Make sure they are who you think they are!
– Manually verify the address before execution
– This is much more reliable with an offline computer
Hot vs. Cold
– The private keys are on an
– All wallets are “hot” by
“Cold” wallet (“offline wallet”)
– Gold standard of security
– Private keys created and never
leave the offline computer
– Transactions are signed offline
Hot vs. Cold Security
• All known, major Bitcoin
breaches to date:
– Coins stored on a hot wallet
– Or unencrypted backups
stored on an “hot”
• Compromising a cold wallet
requires one of the following:
– Physical access
– Extremely advanced USB
– User accidentally installing
Setting up the Offline Computer
• (1) Install Armory
• (1) Install Armory
• (2) Create new wallet
• (3) Create paper backup
Copy by hand, if necessary
• (4) Create “watchingonly” copy of wallet
• (5) Copy to USB drive
• (6) Import “watchingonly” wallet
Your “watching-only” wallet has only public
keys, no private keys!
Doing an Offline Transaction
• (1) Create transaction
Same as you would with a
• (2) Save unsigned
transaction to USB
• (3) Load tx from USB
• (4) Review for accuracy!
• (6) Load signed
All benefit is lost if you don't
review on the clean, offline
• (5) Sign the transaction,
save to USB
• The watching-only wallet
behaves identically to a
regular wallet, but
– Generate addresses
– Confirm incoming
– See balances
• An attacker
getting the online
wallet is a breach
of privacy, not
• This computer cannot
– It has no access to the
network to know
where your money is!
– It can review
• Remember, the offline wallet
is the signing authority.
– It does nothing else but read
and sign transactions!
Verify Your Installers
• GPG is a powerful, thoroughly-trusted crypto tool
– Presintalled in Linux & Mac; takes effort in Windows
– Because it's hard in Windows, I verify my Windows installers in Linux
• (1) Get GPG and file-hashing tool
– Linux & Mac: Do nothing, it's all pre-installed!
– Windows: Download gpg4win and SHA256 file hash tool (HashCalc is good)
• (2) Import the GPG keys to your keyring (only done once)
– Most tools have search & import function (Linux & Mac: “gpg --recv-keys <keyID>”
– Each developer's “keyID” should be well-known: mine is 98832223
• (3) Download the installers and signed hash files*
– Hash the installer file (Linux & Mac: “sha256sum <filename>” )
– The result looks something like this: f98c7a798122167c98c0a798122167f9030a7
– Compare to the hashes in the signed file
• (4) Verify the signature on the hashes file
– Win: use right-click gpg4win menu; Linux & Mac: “gpg -v sha256hashes.txt.asc”
– MAKE SURE THE FINGERPRINT MATCHES THE EXPECTED KEY
– Anyone can create a “valid” signature – but not from the developer's key!
*If it is a .deb installer (Linux), it may be signed directly, only need “dpkg-sig –verify *.deb”
Segregate Funds by Security
– Having all your funds in a single wallet, means all funds
have the same security
– Usually means funds are super-secure-but-inconvenient, or
not properly secured
– Use multiple wallets (Armory & Multibit have native support)
– Exercise all the best practices on the majority of your funds
– Keeps most of your funds secured, periodically refill lowsecurity wallets