1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-11-29 11:28:20 +00:00
bitcoinbook/ch10.asciidoc

61 lines
7.2 KiB
Plaintext
Raw Normal View History

2014-08-18 22:45:42 +00:00
[[ch10]]
== Bitcoin Security
2014-08-29 14:00:03 +00:00
Securing bitcoin is challenging because bitcoin is not an abstract reference to value, like a balance in a bank account. Bitcoin is very much like digital cash or gold. You've probably heard the expression "Possession is nine tenths of the law". Well, in bitcoin, possession is ten tenths of the law. Possession of the keys to unlock the bitcoin, is entirely equivalent to possession of a chunk of precious metal. You can lose it, misplace it, have it stolen or accidentally send the wrong amount to someone. In every one of those cases, the end-user would have as much recourse as if they dropped cash on the sidewalk.
However, bitcoin has capabilities that cash, gold and bank accounts do not. A bitcoin wallet, containing your keys, can be backed up like any file. It can be stored in multiple copies, even printed on paper for hard-copy backup. You can't "backup" cash, gold or bank accounts. Bitcoin is different enough from anything that has come before that we need to think about bitcoin security in a novel way too.
2014-09-06 15:29:54 +00:00
=== Security principles
The core principle in bitcoin is de-centralization and it has important implications for security. A centralized model, such as a traditional bank or payment network, depends on access control and vetting to keep bad actors out of the system. By comparison, a de-centralized system like bitcoin pushes the responsibility and control to the end-users. Since security of the network is based on Proof-of-Work, not access control, the network can be open and no encryption is required for bitcoin traffic.
On a traditional payment network, such a credit card system, the "payment" is really open-ended because it contains the user's private identifier (the credit card number). Thus, the payment network has to be secured end-to-end with encryption and must ensure that no eavesdroppers or intermediaries can compromise the payment traffic, in transit or when it is stored (at rest). If a bad actor gains access to the system, they can compromise current transactions _and_ payment tokens that can be used to create new transactions. Worse, access to the user identifiers can facilitate identity theft. When customer data is compromised, the customers are exposed to identity theft and must take action to prevent fraudulent use of the compromised accounts.
Bitcoin is dramatically different. A bitcoin transaction authorizes only a specific value to a specific recipient and cannot be forged or modified. It does not reveal any private information, such as the identities of the parties and cannot be used to authorize additional payments. Therefore, a bitcoin payment network does not need to be encrypted or protected from eavesdropping. In fact, you can broadcast bitcoin transactions over an open public channel, such as unsecured Wifi or Bluetooth, with no loss of security.
Bitcoin's de-centralized security model puts a lot of power in the hands of the end-users. With that power comes responsibility for maintaining the secrecy of the keys. For most users that is not easy to do, especially on general purpose computing devices, such as Internet-connected smartphones or laptops. Whereas bitcoin's de-centralized model prevents the type of mass compromise seen with credit cards, many end-users are not able to adequately secure their keys and get hacked one by one.
{For those who do not understand, or fully appreciate, the benefits of de-centralization, there is a temptation to emulate traditional payment }
2014-08-29 14:00:03 +00:00
=== Physical vs. Digital Security
Humans have used physical security controls for thousands of years. By comparison, our experience with digital security is less than fifty years old.
=== Hot vs. Cold storage
Bitcoin keys are nothing more than long numbers. This means that they can be stored in a physical form, such as printed on paper or etched on a metal coin. Securing the keys then becomes as simple as physically securing the printed copy of the bitcoin keys. A set of bitcoin keys that is printed on paper is called a "paper wallet" and there are many free tools that can be used to create them. I personally keep the vast majority of my bitcoins (99% or more) stored on paper wallets and locked in a safe.
=== Balancing Risk (loss vs. theft)
While most users are, rightly, concerned about theft, there is an even bigger risk of loss. Data files get lost all the time, but if they contain bitcoin the loss is much more painful. In the effort to secure their bitcoin wallets, users must be very careful not to go too far and end up losing the bitcoins instead. In the summer of 2010, a well known bitcoin awareness and education project lost almost 7,000 bitcoins. In an effort to prevent theft, the owners had implemented a complex series of encrypted backups. In the end they accidentally lost the encryption keys, making the backups worthless and losing a fortune. Like hiding money by burying it in the desert, if you do it too well you might not be able to find your money again.
=== Diversifying Risk
Would you carry your entire net-worth in cash in your wallet? Most people would consider that reckless, yet bitcoin users often keep all their bitcoin in a single wallet. Instead, users should spread the risk among multiple and diverse bitcoin wallets. The prudent user will keep only a small fraction, perhaps less than 5%, of their bitcoins in an online or mobile wallet as "pocket change". The rest should be split between a few different storage mechanisms, such as a desktop wallet and offline-storage as described below
=== Multi-Factor Authentication
Many first-time bitcoin users will use a web-based wallet or online service as their bitcoin bank. Unfortunately this has led to a rash of thefts from bitcoin users, almost all due to compromised desktop computers. Hackers will install trojans and key-loggers looking for access to well-known bitcoin sites. As soon as a user logs on, their own computer will compromise the account and surreptitiously transfer all their money to another bitcoin address. Once stolen, there is no recovery, as bitcoin transactions are not reversible. The most effective defense against this attack is a two-factor authentication scheme such as sending an SMS code, or using a smartphone application to generate one-time codes (See Google Authenticator)
=== Hardware Wallets
In the longer term, bitcoin security is increasingly implemented with hardware tamper-proof wallets. Unlike a smartphone or desktop computer, a purpose-built bitcoin hardware wallet has only one purpose and function - holding bitcoins securely. Without general purpose software to compromise and with limited interfaces, hardware wallets can deliver an almost foolproof level of security to non-expert users. I expect to see hardware wallets becoming the predominant method of bitcoin storage, or eventually embedded in smartphones as a secure hardware module. For an example of such a hardware wallet, see the Trezor.
=== Multi-sig and Governance
=== Survivability
=== Conclusion
Bitcoin is a completely new, unprecedented and complex technology. Over time we will develop better security tools and practices that are easier to use by non-experts. For now, bitcoin users can use many of the tips above to enjoy a secure and trouble-free bitcoin experience.