From d93b10c189460c6852391a39ef95823d7a18aafd Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 11:09:07 +0000 Subject: [PATCH 001/190] Reword --- _docs/overview.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 4f44007..22b4f00 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -6,8 +6,9 @@ redirect_from: - /docs/ --- -Glacier is a step-by-step protocol for storing bitcoins in a highly secure -manner. It is intended for: +Glacier is a step-by-step, highly secure protocol for storing bitcoin. + +It is intended for: * **Personal storage**: Glacier does not address institutional security needs such as internal controls, transparent auditing, and preventing access From b97fa17473acd7b213b08ecb81c1ffc5e60e7903 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 11:52:35 +0000 Subject: [PATCH 002/190] "Not intended for" section added --- _docs/overview.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 22b4f00..83747b7 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -10,9 +10,7 @@ Glacier is a step-by-step, highly secure protocol for storing bitcoin. It is intended for: -* **Personal storage**: Glacier does not address institutional security -needs such as internal controls, transparent auditing, and preventing access -to funds by a single individual. +* **Personal storage**: Bitcoin owned solely by a single individual. * **Large amounts of money ($100,000+)**: Glacier thoroughly considers corner cases such as obscure vectors for malware infection, personal estate planning, human error resulting in loss of funds, and so on. @@ -27,14 +25,19 @@ amounts of funds. * **Long-term storage**: Glacier not only considers the Bitcoin security landscape today, but also a future world where Bitcoin is much more valuable and attracts many more security threats. -* **Infrequently-accessed funds**: Accessing highly secure bitcoins is -cumbersome and introduces security risk through the possibility of human -error, so it is best done infrequently. * **Technically unskilled users**: Although the Glacier protocol is long, it is clear and straightforward to follow. No technical expertise is required. -The Glacier protocol covers bitcoin storage, not procurement. It assumes you -already possess bitcoins and wish to store them more securely. +It is not intended for: + +* **Institutional storage**: Internal controls, transparent auditing, and +preventing access to funds by a single individual are outside the scope of this +document. +* **Frequently-accessed funds**: Accessing highly secured bitcoin is cumbersome, +introducing security risk through the possibility of human error with each +interaction. +* **Procurement**: This document covers bitcoin storage, not procurement. It assumes you +already possess bitcoin and wish to store it more securely. If you are already familiar with Bitcoin security concepts and are certain that you want high security cold storage, you may prefer to read From 9f8470eeae6c7fda3695c5edaa596ba754477de3 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 12:26:43 +0000 Subject: [PATCH 003/190] Text moved out to protocol description Info not specific to bullet point --- _docs/overview.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 83747b7..5fe7b76 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -6,19 +6,19 @@ redirect_from: - /docs/ --- -Glacier is a step-by-step, highly secure protocol for storing bitcoin. +Glacier is a step-by-step, highly secure protocol for storing bitcoin. It +thoroughly considers corner cases such as obscure vectors for malware +infection, personal estate planning, human error resulting in loss of funds, +etc. It is intended for: * **Personal storage**: Bitcoin owned solely by a single individual. -* **Large amounts of money ($100,000+)**: Glacier thoroughly considers corner -cases such as obscure vectors for malware infection, personal estate -planning, human error resulting in loss of funds, and so on. -Even if your Bitcoin holdings are more modest, it's worth considering using -Glacier. If Bitcoin proves successful as a global currency, it will appreciate -10x (or much more) in the coming years. Security will become increasingly -important if your holdings appreciate and Bitcoin becomes a more attractive -target for thieves. +* **Large amounts of money ($100,000+)**: Even if your Bitcoin holdings are +more modest, it's worth considering using Glacier. If Bitcoin proves successful +as a global currency, it will appreciate 10x (or much more) in the coming years. +Security will become increasingly important if your holdings appreciate and +Bitcoin becomes a more attractive target for thieves. The "Protocol Overview" section also describes some lower-security, lower-cost approaches to self-managed storage that may be more appropriate for smaller amounts of funds. From 39f66e4bbd75635072dfc9de89b7c82c7f9777be Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 12:32:51 +0000 Subject: [PATCH 004/190] Price speculation is unsuitable in a technical document Will age badly --- _docs/overview.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 5fe7b76..eaee870 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -15,10 +15,9 @@ It is intended for: * **Personal storage**: Bitcoin owned solely by a single individual. * **Large amounts of money ($100,000+)**: Even if your Bitcoin holdings are -more modest, it's worth considering using Glacier. If Bitcoin proves successful -as a global currency, it will appreciate 10x (or much more) in the coming years. -Security will become increasingly important if your holdings appreciate and -Bitcoin becomes a more attractive target for thieves. +more modest, it's worth considering using Glacier. Security will become +increasingly important if your holdings appreciate and bitcoin becomes a more +attractive target for thieves. The "Protocol Overview" section also describes some lower-security, lower-cost approaches to self-managed storage that may be more appropriate for smaller amounts of funds. From 02e9e65b583ffa69532bdc5863a85448db56462c Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 12:43:07 +0000 Subject: [PATCH 005/190] Too specific, too America-centric --- _docs/overview.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index eaee870..8ba8655 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -14,10 +14,9 @@ etc. It is intended for: * **Personal storage**: Bitcoin owned solely by a single individual. -* **Large amounts of money ($100,000+)**: Even if your Bitcoin holdings are -more modest, it's worth considering using Glacier. Security will become -increasingly important if your holdings appreciate and bitcoin becomes a more -attractive target for thieves. +* **Investment-level value**: Bitcoin holdings around the level of a small +property in the local economy. Consideration should also be given to potential +future value appreciation. The "Protocol Overview" section also describes some lower-security, lower-cost approaches to self-managed storage that may be more appropriate for smaller amounts of funds. From cfd3bfca570350441bfaf342d47d1f64acccb129 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 12:50:36 +0000 Subject: [PATCH 006/190] Lower security option shouldn't be offered Implementation should either meet or fail to meet Glacier Protocol --- _docs/before-you-start/overview.md | 30 ------------------------------ _docs/overview.md | 3 --- 2 files changed, 33 deletions(-) diff --git a/_docs/before-you-start/overview.md b/_docs/before-you-start/overview.md index 29e31d7..05ecfc9 100644 --- a/_docs/before-you-start/overview.md +++ b/_docs/before-you-start/overview.md @@ -145,36 +145,6 @@ funds. gives additional detail about how to increase Bitcoin anonymity using Monero & Tor. -## Lower-security Protocol Variants - -If you are willing to accept lower security for lower cost, you can do so with only slight modifications: - -1. **Perform this protocol using only one quarantined computer**. Glacier protocol -repeats all operations on two computers to detect defects or tampering in -the key generation process. However, this is costly and adds significantly -to the labor required to execute the protocol. The risks it mitigates are -small: that malware conducting flawed key-generation attacks found its way -onto the eternally quarantined systems, or that the computer firmware was -tampered with at the manufacturer to include such malware. If you are -willing to accept this risk, you could skip buying the parallel hardware -stack (and needing the second setup computer) and skip the process of -re-generating and verifying keys & transactions on the parallel hardware -stack. - -2. **Use existing hardware**. An even lower-security variant is to use nothing -but existing laptops you already possess, disabling all network -connections during protocol execution, instead of purchasing new -quarantined hardware. This fails to protect against some malware -attacks, but provides additional savings in cost and effort. - -Such as an -[existing infection of a laptop's firmware](https://www.youtube.com/watch?v=sNYsfUNegEA), -malware which overrides -OS settings to disable wireless connectivity, or certain undiscovered -vulnerabilities in the software used by the protocol. - -These modifications are left as an exercise to the reader. - ## Out of scope There's always more one could do to increase security. While diff --git a/_docs/overview.md b/_docs/overview.md index 8ba8655..6e1821e 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -17,9 +17,6 @@ It is intended for: * **Investment-level value**: Bitcoin holdings around the level of a small property in the local economy. Consideration should also be given to potential future value appreciation. -The "Protocol Overview" section also describes some lower-security, lower-cost -approaches to self-managed storage that may be more appropriate for smaller -amounts of funds. * **Long-term storage**: Glacier not only considers the Bitcoin security landscape today, but also a future world where Bitcoin is much more valuable and attracts many more security threats. From 3097695870ec74b613bdcd308c4aa00dd135594c Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 13:01:05 +0000 Subject: [PATCH 007/190] Text does not explain the bullet Moved to section description --- _docs/overview.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 6e1821e..1384ab4 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -6,10 +6,12 @@ redirect_from: - /docs/ --- -Glacier is a step-by-step, highly secure protocol for storing bitcoin. It -thoroughly considers corner cases such as obscure vectors for malware -infection, personal estate planning, human error resulting in loss of funds, -etc. +Glacier is a step-by-step, highly secure protocol for storing bitcoin. + +It thoroughly considers corner cases such as obscure vectors for malware +infection, personal estate planning and human error resulting in loss of funds, as +well as the future Bitcoin landscape where bitcoin is much more valuable and +attracting many more security threats. It is intended for: @@ -17,9 +19,7 @@ It is intended for: * **Investment-level value**: Bitcoin holdings around the level of a small property in the local economy. Consideration should also be given to potential future value appreciation. -* **Long-term storage**: Glacier not only considers the Bitcoin security -landscape today, but also a future world where Bitcoin is much more valuable -and attracts many more security threats. +* **Long-term storage**: Several months to years. * **Technically unskilled users**: Although the Glacier protocol is long, it is clear and straightforward to follow. No technical expertise is required. From 7c9818a95a4ebecef58fe7a3aa01446f2629c6f0 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 13:03:16 +0000 Subject: [PATCH 008/190] Most pertinent point moved to start of line --- _docs/overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 1384ab4..bc5de44 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -20,8 +20,8 @@ It is intended for: property in the local economy. Consideration should also be given to potential future value appreciation. * **Long-term storage**: Several months to years. -* **Technically unskilled users**: Although the Glacier protocol is long, it is -clear and straightforward to follow. No technical expertise is required. +* **Technically unskilled users**: No technical expertise is required. Although +the Glacier protocol is long, it is clear and straightforward to follow. It is not intended for: From 6c4fbc297ad07ad04e67ce891f18cb2f0f8504a6 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 13:06:09 +0000 Subject: [PATCH 009/190] Text moved for more logical decision point --- _docs/overview.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index bc5de44..5d12f91 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -34,11 +34,6 @@ interaction. * **Procurement**: This document covers bitcoin storage, not procurement. It assumes you already possess bitcoin and wish to store it more securely. -If you are already familiar with Bitcoin security concepts and are certain that -you want high security cold storage, you may prefer to read -[Trusting This Protocol](#trusting-this-protocol) and then skip to the section -[Choosing a Multisignature Withdrawal Policy](/docs/overview/multi-signature-security#choosing-a-multisignature-withdrawal-policy). - ## Trusting this protocol Funds secured using Glacier can only be as secure as its design. @@ -59,6 +54,10 @@ will tend to lose popularity over time. If you like, you may review the [design document](/docs/design-doc/overview) for details on the technical design. +If you are already familiar with Bitcoin security concepts and are certain that +you want high security cold storage, you may prefer to skip to the section +[Choosing a Multisignature Withdrawal Policy](/docs/overview/multi-signature-security#choosing-a-multisignature-withdrawal-policy). + ## Background ### Self-Managed Storage vs. Online From afa0a0b658f63179722b63aa6aea33d1fac6af9f Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 13:08:55 +0000 Subject: [PATCH 010/190] Rewritten in passive voice to give objective tone --- _docs/overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 5d12f91..438213c 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -31,8 +31,8 @@ document. * **Frequently-accessed funds**: Accessing highly secured bitcoin is cumbersome, introducing security risk through the possibility of human error with each interaction. -* **Procurement**: This document covers bitcoin storage, not procurement. It assumes you -already possess bitcoin and wish to store it more securely. +* **Procurement**: This document covers bitcoin storage, not procurement. It assumes +bitcoin has been procured and is ready to store. ## Trusting this protocol From b68632f9a3a2b36ea7c3ea2896677e63b6334c5c Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 13:33:00 +0000 Subject: [PATCH 011/190] References to "trust" removed and statement tense changed to current --- _docs/overview.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 438213c..6b9dcb1 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -34,12 +34,10 @@ interaction. * **Procurement**: This document covers bitcoin storage, not procurement. It assumes bitcoin has been procured and is ready to store. -## Trusting this protocol +Protocol credentials: -Funds secured using Glacier can only be as secure as its design. -Here's what you can trust about this protocol: -* **Expert advisors**: The development of Glacier was guided with input from -Bitcoin technology and security experts. See our advisor list. +* **Expert advisors**: Development is guided with input from Bitcoin technology and +security experts. See our advisor list. * **Open source**: GlacierScript, the Glacier companion software, is open source. The code is straightforward and well-commented to facilitate easy review for flaws or vulnerabilities. [View it on Github](https://github.com/GlacierProtocol/GlacierProtocol). From 35ad7c7e9ab95ece8df2189bd6ba3bdced124149 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 13:34:06 +0000 Subject: [PATCH 012/190] Benefit of open source highlighted --- _docs/overview.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 6b9dcb1..62f0d96 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -38,9 +38,10 @@ Protocol credentials: * **Expert advisors**: Development is guided with input from Bitcoin technology and security experts. See our advisor list. -* **Open source**: GlacierScript, the Glacier companion software, is open -source. The code is straightforward and well-commented to facilitate easy review -for flaws or vulnerabilities. [View it on Github](https://github.com/GlacierProtocol/GlacierProtocol). +* **Open source**: GlacierScript, the Glacier companion software, is open source. +This means the code is freely available for anyone to review for flaws and +vulnerabilities. The code is straightforward, well-commented and available on +Github. [View it on Github](https://github.com/GlacierProtocol/GlacierProtocol). * **Community review**: The protocol has evolved in conjunction with the wider Bitcoin community. Early versions were circulated during development, and community feedback integrated. [See our list of contributors](/docs/contribute/acknowledgments/). From b288fd0718a7c75c171bc74dca347b6179fc9837 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 14:03:00 +0000 Subject: [PATCH 013/190] Comm. review is covered in previous point, github protocol link added --- _docs/overview.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 62f0d96..db2b99a 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -38,13 +38,14 @@ Protocol credentials: * **Expert advisors**: Development is guided with input from Bitcoin technology and security experts. See our advisor list. -* **Open source**: GlacierScript, the Glacier companion software, is open source. -This means the code is freely available for anyone to review for flaws and -vulnerabilities. The code is straightforward, well-commented and available on -Github. [View it on Github](https://github.com/GlacierProtocol/GlacierProtocol). -* **Community review**: The protocol has evolved in conjunction with the wider -Bitcoin community. Early versions were circulated during development, and -community feedback integrated. [See our list of contributors](/docs/contribute/acknowledgments/). +* **Open source**: Both GlacierScript, the Glacier companion software, and the +protocol document are open source. This means they are freely available for anyone +to review for flaws or vulnerabilities. The protocol has evolved in conjunction with the wider +Bitcoin community, and the code is straightforward and well-commented. Both are available on +Github. +[View code on Github](https://github.com/GlacierProtocol/GlacierProtocol) +[View protocol on Github](https://github.com/GlacierProtocol/glacierprotocol.github.io) +[View list of contributors](/docs/contribute/acknowledgments/) * **Natural selection**: All documentation and code related to this protocol is under open licenses (Creative Commons for the document, MIT license for the code), enabling others to publish their own revisions. Inferior alternatives From b4a0aa2310bfb00a8550b8442f224233dd371b5d Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Thu, 15 Nov 2018 14:30:34 +0000 Subject: [PATCH 014/190] Natural selection removed Point wrt failure of alternatives is unsuitable for technical document --- _docs/overview.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index db2b99a..5e8ffe4 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -46,10 +46,6 @@ Github. [View code on Github](https://github.com/GlacierProtocol/GlacierProtocol) [View protocol on Github](https://github.com/GlacierProtocol/glacierprotocol.github.io) [View list of contributors](/docs/contribute/acknowledgments/) -* **Natural selection**: All documentation and code related to this protocol is -under open licenses (Creative Commons for the document, MIT license for the -code), enabling others to publish their own revisions. Inferior alternatives -will tend to lose popularity over time. If you like, you may review the [design document](/docs/design-doc/overview) for details on the technical design. From 10397fd7455dc788ce0eedbb472bef560c487d4e Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 10:33:59 +0000 Subject: [PATCH 015/190] Bullet descriptions converted to headings --- _docs/overview.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 5e8ffe4..5299ebc 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -6,14 +6,14 @@ redirect_from: - /docs/ --- -Glacier is a step-by-step, highly secure protocol for storing bitcoin. +## A step-by-step, highly secure protocol for storing bitcoin It thoroughly considers corner cases such as obscure vectors for malware infection, personal estate planning and human error resulting in loss of funds, as well as the future Bitcoin landscape where bitcoin is much more valuable and attracting many more security threats. -It is intended for: +### Intended for * **Personal storage**: Bitcoin owned solely by a single individual. * **Investment-level value**: Bitcoin holdings around the level of a small @@ -23,7 +23,7 @@ future value appreciation. * **Technically unskilled users**: No technical expertise is required. Although the Glacier protocol is long, it is clear and straightforward to follow. -It is not intended for: +### Not intended for * **Institutional storage**: Internal controls, transparent auditing, and preventing access to funds by a single individual are outside the scope of this @@ -34,7 +34,7 @@ interaction. * **Procurement**: This document covers bitcoin storage, not procurement. It assumes bitcoin has been procured and is ready to store. -Protocol credentials: +### Protocol credentials * **Expert advisors**: Development is guided with input from Bitcoin technology and security experts. See our advisor list. From c1e3dd79b4a94c17b3bf885bede5de95b000ea3d Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 10:37:28 +0000 Subject: [PATCH 016/190] List of links pulled into body text for readability --- _docs/overview.md | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 5299ebc..c0686f3 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -37,19 +37,13 @@ bitcoin has been procured and is ready to store. ### Protocol credentials * **Expert advisors**: Development is guided with input from Bitcoin technology and -security experts. See our advisor list. -* **Open source**: Both GlacierScript, the Glacier companion software, and the -protocol document are open source. This means they are freely available for anyone -to review for flaws or vulnerabilities. The protocol has evolved in conjunction with the wider -Bitcoin community, and the code is straightforward and well-commented. Both are available on -Github. -[View code on Github](https://github.com/GlacierProtocol/GlacierProtocol) -[View protocol on Github](https://github.com/GlacierProtocol/glacierprotocol.github.io) -[View list of contributors](/docs/contribute/acknowledgments/) - -If you like, you may review the [design document](/docs/design-doc/overview) -for details on the technical design. - +security experts. See the [advisor list](https://glacierprotocol.org/contributors/) and [contributor list](/docs/contribute/acknowledgments/). +* **Open source**: The [design document](/docs/design-doc/overview), the [protocol document](https://github.com/GlacierProtocol/glacierprotocol.github.io) +and the [GlacierScript](https://github.com/GlacierProtocol/GlacierProtocol) companion +software are all open source. This allows for continuous peer review and +examination to eliminate flaws and vulnerabilities. The protocol has evolved in +conjunction with the wider Bitcoin community, and the code is straightforward and +well commented. Both are available on Github. If you are already familiar with Bitcoin security concepts and are certain that you want high security cold storage, you may prefer to skip to the section [Choosing a Multisignature Withdrawal Policy](/docs/overview/multi-signature-security#choosing-a-multisignature-withdrawal-policy). From 51be2f29be97af29e1fd2949b1ecef87691e9e15 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 10:38:34 +0000 Subject: [PATCH 017/190] Option to skip section moved --- _docs/overview.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index c0686f3..ee255d6 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -44,11 +44,10 @@ software are all open source. This allows for continuous peer review and examination to eliminate flaws and vulnerabilities. The protocol has evolved in conjunction with the wider Bitcoin community, and the code is straightforward and well commented. Both are available on Github. -If you are already familiar with Bitcoin security concepts and are certain that -you want high security cold storage, you may prefer to skip to the section -[Choosing a Multisignature Withdrawal Policy](/docs/overview/multi-signature-security#choosing-a-multisignature-withdrawal-policy). ## Background +A reader familiar with Bitcoin security concepts may prefer to skip to the section +[Choosing a Multisignature Withdrawal Policy](/docs/overview/multi-signature-security#choosing-a-multisignature-withdrawal-policy). ### Self-Managed Storage vs. Online From e69deed4226e06dd8700e2062df9eb1db5de21d6 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 13:51:45 +0000 Subject: [PATCH 018/190] Informal, passive text removed --- _docs/overview.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index ee255d6..dd7cadd 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -51,8 +51,6 @@ A reader familiar with Bitcoin security concepts may prefer to skip to the secti ### Self-Managed Storage vs. Online -Let's start by assessing whether Glacier is right for you. - There is no such thing as perfect security. There are only degrees of security, and those degrees come at a cost (in time, money, convenience, etc.) So the first question is: How much security are you willing to invest in? From bf41a935d12e7004952c32b31d51e3b3563b4372 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 13:54:06 +0000 Subject: [PATCH 019/190] Title restructured --- _docs/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs/overview.md b/_docs/overview.md index dd7cadd..4c4feb1 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -49,7 +49,7 @@ well commented. Both are available on Github. A reader familiar with Bitcoin security concepts may prefer to skip to the section [Choosing a Multisignature Withdrawal Policy](/docs/overview/multi-signature-security#choosing-a-multisignature-withdrawal-policy). -### Self-Managed Storage vs. Online +### Self-Managed vs. Online Storage There is no such thing as perfect security. There are only degrees of security, and those degrees come at a cost (in time, money, convenience, etc.) So the From 1c93a702b13aff4b913054a94f8e62112bded1e3 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 13:55:13 +0000 Subject: [PATCH 020/190] Online wallet list removed Protocol should not vouch for security of 3rd party site --- _docs/overview.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 4c4feb1..3766abe 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -57,11 +57,7 @@ first question is: How much security are you willing to invest in? For most people, most of the time, the authors recommend storing Bitcoin using a high-quality online storage service. The pros and cons of the various online services are beyond the scope of this document, but most popular ones are fairly -secure and easy to use. Some popular options are -[Blockchain](https://blockchain.info/), -[Coinbase](https://www.coinbase.com/), -[Gemini](https://gemini.com/), -and [Kraken](https://www.kraken.com/). +secure and easy to use. However, all online storage services still come with some notable risks which self-managed storage does not have: From 72d80cbf0c31a7bc1323efb67731938fe0e8729b Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 13:58:54 +0000 Subject: [PATCH 021/190] Reword --- _docs/overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 3766abe..c22301d 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -51,8 +51,8 @@ A reader familiar with Bitcoin security concepts may prefer to skip to the secti ### Self-Managed vs. Online Storage -There is no such thing as perfect security. There are only degrees of security, -and those degrees come at a cost (in time, money, convenience, etc.) So the +There is no such thing as perfect security, only degrees of security with corresponding +trade-offs in time, money, convenience, etc. So the first question is: How much security are you willing to invest in? For most people, most of the time, the authors recommend storing Bitcoin using a high-quality online storage service. The pros and cons of the various online From 50041d03cc73f97858523247862474c5c1e0b2db Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 14:00:02 +0000 Subject: [PATCH 022/190] Informal, passive text removed --- _docs/overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index c22301d..4f2dd00 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -52,8 +52,8 @@ A reader familiar with Bitcoin security concepts may prefer to skip to the secti ### Self-Managed vs. Online Storage There is no such thing as perfect security, only degrees of security with corresponding -trade-offs in time, money, convenience, etc. So the -first question is: How much security are you willing to invest in? +trade-offs in time, money, convenience, etc. + For most people, most of the time, the authors recommend storing Bitcoin using a high-quality online storage service. The pros and cons of the various online services are beyond the scope of this document, but most popular ones are fairly From 19d35ca5292f207c5d24376458c5da1ea1b555df Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 14:14:57 +0000 Subject: [PATCH 023/190] Personal reference removed Entire document is author's recommendation, no need to specify here --- _docs/overview.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 4f2dd00..6a6ddd8 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -54,10 +54,9 @@ A reader familiar with Bitcoin security concepts may prefer to skip to the secti There is no such thing as perfect security, only degrees of security with corresponding trade-offs in time, money, convenience, etc. -For most people, most of the time, the authors recommend storing Bitcoin using a -high-quality online storage service. The pros and cons of the various online -services are beyond the scope of this document, but most popular ones are fairly -secure and easy to use. +For most people, most of the time, storing Bitcoin using a high-quality online storage +service is sufficient. The pros and cons of the various online services are beyond the +scope of this document, but most popular ones are fairly secure and easy to use. However, all online storage services still come with some notable risks which self-managed storage does not have: From 2d1994424eb225fc4a894283d75d3eba9ce7c3a6 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sat, 17 Nov 2018 14:40:22 +0000 Subject: [PATCH 024/190] Sections retitled/rearranged "vs." sections are an assessment of alternative rather than comparisons --- _docs/overview.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 6a6ddd8..71484a7 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -45,11 +45,14 @@ examination to eliminate flaws and vulnerabilities. The protocol has evolved in conjunction with the wider Bitcoin community, and the code is straightforward and well commented. Both are available on Github. -## Background +## Alternatives +The Glacier Protocol focuses exclusively on self-managed storage, but there are lower +security, more convenient options. + A reader familiar with Bitcoin security concepts may prefer to skip to the section [Choosing a Multisignature Withdrawal Policy](/docs/overview/multi-signature-security#choosing-a-multisignature-withdrawal-policy). -### Self-Managed vs. Online Storage +### Online Storage There is no such thing as perfect security, only degrees of security with corresponding trade-offs in time, money, convenience, etc. @@ -112,9 +115,7 @@ money. We recommend self-managed storage for large investments, but ultimately it's a personal decision based on your risk tolerance and costs you're willing to pay (in money and time) for security. -Glacier focuses exclusively on self-managed storage. - -### Glacier vs. Hardware Wallets +### Hardware Wallets Many people who choose self-managed storage (as opposed to an online storage service) use "hardware From a451ea958013519aa5fb1cf03462f8c1569eefa3 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sun, 18 Nov 2018 14:03:46 +0000 Subject: [PATCH 025/190] Point made is not specific to online storage Moved up to parent section --- _docs/overview.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 71484a7..6f574ec 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -46,17 +46,15 @@ conjunction with the wider Bitcoin community, and the code is straightforward an well commented. Both are available on Github. ## Alternatives -The Glacier Protocol focuses exclusively on self-managed storage, but there are lower -security, more convenient options. +There is no such thing as perfect security, only degrees of security with corresponding +trade-offs in time, money, convenience, etc. The Glacier Protocol focuses exclusively +on self-managed storage, but there are cheaper, lower security and more convenient options. A reader familiar with Bitcoin security concepts may prefer to skip to the section [Choosing a Multisignature Withdrawal Policy](/docs/overview/multi-signature-security#choosing-a-multisignature-withdrawal-policy). ### Online Storage -There is no such thing as perfect security, only degrees of security with corresponding -trade-offs in time, money, convenience, etc. - For most people, most of the time, storing Bitcoin using a high-quality online storage service is sufficient. The pros and cons of the various online services are beyond the scope of this document, but most popular ones are fairly secure and easy to use. From cc2edb3ce3b47d51cfa7198208e1103de8821f9b Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sun, 18 Nov 2018 14:05:41 +0000 Subject: [PATCH 026/190] Better not to mention assumed security level of third party --- _docs/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs/overview.md b/_docs/overview.md index 6f574ec..d14ad53 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -57,7 +57,7 @@ A reader familiar with Bitcoin security concepts may prefer to skip to the secti For most people, most of the time, storing Bitcoin using a high-quality online storage service is sufficient. The pros and cons of the various online services are beyond the -scope of this document, but most popular ones are fairly secure and easy to use. +scope of this document. However, all online storage services still come with some notable risks which self-managed storage does not have: From 3862d6971ddc0dfa620c6d1df2b540b171712f31 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sun, 18 Nov 2018 14:45:55 +0000 Subject: [PATCH 027/190] Reword, restructure "constant attack" made two separate points --- _docs/overview.md | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index d14ad53..c952602 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -57,24 +57,21 @@ A reader familiar with Bitcoin security concepts may prefer to skip to the secti For most people, most of the time, storing Bitcoin using a high-quality online storage service is sufficient. The pros and cons of the various online services are beyond the -scope of this document. +scope of this document. However, all online storage services entail risks which are +not present in a self-managed storage system: -However, all online storage services still come with some notable risks -which self-managed storage does not have: - -1. **Identity spoofing**: Your account on the service could be hacked (including -through methods such as identity theft, where someone convinces the service they -are you). -2. **Network exposure**: Online services still need to transmit security-critical +1. **Identity spoofing**: Online accounts can be compromised, allowing a hacker to +assume the identity of a legitimate user. +2. **Network exposure**: Online services need to transmit security-critical information over the Internet, which creates an opportunity for that information to be stolen. In contrast, self-managed storage can be done with no network exposure. -3. **Under constant attack**: Online services can be hacked by attackers from -anywhere in the world. People know these services store lots of funds, which -makes them much larger targets. If there's a flaw in their security, it's more -likely to be found and exploited. -4. **Internal theft**: They have to protect against internal theft from a large -group of employees & contractors. +3. **Under constant attack**: Online services can be hacked by attackers from anywhere in +the world at any time of the day, week or year. +4. **Vastly larger target**: Customer funds are a part of a considerably larger asset pool, making +them much more attractive targets for hackers. +5. **Internal theft**: A large group of employees & contractors are trusted with internal +access to service funds. 5. **Intentional seizure**: They have the ability (whether of their own volition, or under pressure from governments) to seize your funds. There is historical precedent for this, even if funds are not suspected of From 4d13ada0cb53a33a7d72a0ca23f860cc72c18821 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sun, 18 Nov 2018 15:26:27 +0000 Subject: [PATCH 028/190] Point separated into two separate points, reworded and examples given Subscription link replaced, MtGox/Bitfinex users will be/were reimbursed --- _docs/overview.md | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index c952602..7cdf629 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -72,29 +72,22 @@ the world at any time of the day, week or year. them much more attractive targets for hackers. 5. **Internal theft**: A large group of employees & contractors are trusted with internal access to service funds. -5. **Intentional seizure**: They have the ability (whether of their own volition, -or under pressure from governments) to seize your funds. -There is historical precedent for this, even if funds are not suspected of -criminal involvement. In 2010, -[Cyprus unilaterally seized many bank depositors' funds ](https://www.theguardian.com/world/2013/mar/25/cyprus-bailout-deal-eu-closes-bank) -to cope with an economic crisis. In 1933, the US abruptly -[demanded citizens surrender almost all gold they owned to the government](https://en.wikipedia.org/wiki/Executive_Order_6102). -Regardless of how one views the political desirability of these particular -decisions, there is precedent for governments taking such an action, and one -cannot necessarily predict the reasons they might do so in the future. -Furthermore,Bitcoin still operates in a political and legal grey zone, which -increases these political risks. +6. **Seizure by service**: The service has the ability to seize customer funds. There are +examples where a hacked system has chosen to socialise its losses across all users. In 2016, +[all users shared the total loss after Bitfinex was hacked](http://www.bbc.com/news/technology-37009319). +There are also examples of withdrawals being closed before the company files for bankruptcy protection. +In 2014, [Mt. Gox filed for bankruptcy after being hacked](https://www.bbc.co.uk/news/technology-25233230). +Both scenarios lead to huge losses for customers. +7. **Seizure by government decree**: Currently, in many countries, Bitcoin operates in a political +and legal grey zone. There is historical precedence of citizen funds being seized without any +suspicion of criminal activity. In 2010, [Cyprus unilaterally seized many bank depositors' funds](https://www.theguardian.com/world/2013/mar/25/cyprus-bailout-deal-eu-closes-bank) +to cope with an economic crisis and, in 1933, [the US government demanded citizens surrender almost all gold](https://en.wikipedia.org/wiki/Executive_Order_6102). Similar action during a future financial +crisis cannot be discounted. Some online wallet services have insurance to cover losses, although that insurance doesn't protect against all of these scenarios, and often has limits on the amount insured. -These risks are not theoretical. Many online services have lost customers' funds -(and not reimbursed them), including -[Mt. Gox](https://www.bloomberg.com/news/articles/2014-02-28/mt-gox-exchange-files-for-bankruptcy), -[Bitfinex](http://www.bbc.com/news/technology-37009319), -and many more. - Recently, some providers are rolling out services which are a hybrid of an online service and self-managed storage. Examples include [Coinbase's multisig vault](https://www.coinbase.com/vault) From 8917e0a9532d8ebb30e8aca04047750d2c1d0dc7 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sun, 18 Nov 2018 17:55:03 +0000 Subject: [PATCH 029/190] Hybrid wallet links removed Risky to vouch for third party software --- _docs/overview.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 7cdf629..8bf7d57 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -88,15 +88,10 @@ Some online wallet services have insurance to cover losses, although that insurance doesn't protect against all of these scenarios, and often has limits on the amount insured. -Recently, some providers are rolling out services which are a hybrid -of an online service and self-managed storage. Examples include -[Coinbase's multisig vault](https://www.coinbase.com/vault) -and [Green Address](https://greenaddress.it/en/). -The design of these services -significantly reduces (though does not eliminate) the risks described above. - -However, they also require some care and technical competence to securely -manage the electronic "keys" which provide access to funds. +Hybrid services, combining features of online and self-managed storage, are available. The design +of these services reduce, without eliminating entirely, some of the risks described above. However, +they still require care and technical competence to securely manage the electronic "keys" which +provide access to funds. Many people do use online or hybrid solutions to store sizeable amounts of money. We recommend self-managed storage for large investments, but ultimately From c0216bbf49fd8df6e43fbeae52af5bebac0ea533 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sun, 18 Nov 2018 17:55:30 +0000 Subject: [PATCH 030/190] Paragraph removed Points covered in section intro --- _docs/overview.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 8bf7d57..8048603 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -93,11 +93,6 @@ of these services reduce, without eliminating entirely, some of the risks descri they still require care and technical competence to securely manage the electronic "keys" which provide access to funds. -Many people do use online or hybrid solutions to store sizeable amounts of -money. We recommend self-managed storage for large investments, but ultimately -it's a personal decision based on your risk tolerance and costs you're willing -to pay (in money and time) for security. - ### Hardware Wallets Many people who choose From dd5509293a815ec113028ee823f127960e06bded Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sun, 18 Nov 2018 18:18:19 +0000 Subject: [PATCH 031/190] Hardware wallet links removed Risky to vouch for third party hardware --- _docs/overview.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index 8048603..cff87b8 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -95,15 +95,9 @@ provide access to funds. ### Hardware Wallets -Many people who choose -self-managed storage (as opposed to an online storage service) use "hardware -wallets" such as the -[Trezor](https://trezor.io/), -[Ledger](https://www.ledgerwallet.com/), -and [KeepKey](https://www.keepkey.com/) -to store their bitcoins. While these are great products that provide strong security, -Glacier is intended to offer an even higher level of protection than today's -hardware wallets can provide. +Hardware wallets can provide a form of self-managed storage with good security. Again, the pros +and cons of the various hardware wallets are beyond the scope of this document. However, all +hardware wallets entail risks which are not present in a system adhering to The Glacier Protocol: The primary security consideration is that all hardware wallets today operate via a physical USB link to a regular From e78220fcab6b1828bce65e72a84c5976551b352a Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Sun, 18 Nov 2018 18:19:50 +0000 Subject: [PATCH 032/190] Restructured for consistent critiquing style, con added from design doc --- _docs/overview.md | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/_docs/overview.md b/_docs/overview.md index cff87b8..740de80 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -99,17 +99,13 @@ Hardware wallets can provide a form of self-managed storage with good security. and cons of the various hardware wallets are beyond the scope of this document. However, all hardware wallets entail risks which are not present in a system adhering to The Glacier Protocol: -The primary security consideration is that -all hardware wallets today operate via a physical USB link to a regular -computer. While they employ extensive safeguards to prevent any sensitive -data (such as private keys) from being transmitted over this connection, -it's possible that an undiscovered vulnerability could be exploited by -malware to steal private keys from the device. - -For details on this and other security considerations, see the -"No Hardware Wallets" section of the [design document](/docs/design-doc/overview) -As with online multisig -vaults, many people do use hardware wallets to store sizeable amounts of -money. We personally recommend Glacier for large investments, but ultimately -it's a personal decision based on your risk tolerance and costs you're -willing to pay (in money and time) for security. +1. **USB link**: All hardware wallets operate via a physical USB link to a regular computer. While +they employ extensive safeguards to prevent any sensitive data (such as private keys) from being +transmitted over this connection, it is possible that an undiscovered vulnerability could be +exploited by malware to steal private keys from the device. +2. **Potential tampering**: Verification that the hardware or software has not been tampered with is +nearly impossible. An attacker could compromise the manufacturing processes, or ship a malicious +device that looks like the hardware wallet you ordered. + +For details on this and other security considerations, see the "No Hardware Wallets" section of the +[design document](/docs/design-doc/overview). \ No newline at end of file From e2b7800ea311d81a68df9cf7a6d9c887a496349e Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 10:20:12 +0000 Subject: [PATCH 033/190] "MacOS" stylized consistently Occurances of "macos", "macOS" and "macOs" corrected --- _docs/before-you-start/hardware.md | 2 +- _docs/setup/create-boot-usb.md | 16 ++++++++-------- _docs/setup/non-quarantined-hardware.md | 2 +- _docs/setup/verify.md | 6 +++--- dockerfiles/spellcheck/.spelling | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/_docs/before-you-start/hardware.md b/_docs/before-you-start/hardware.md index c0979af..e6a2820 100644 --- a/_docs/before-you-start/hardware.md +++ b/_docs/before-you-start/hardware.md @@ -32,7 +32,7 @@ manufacturer than the drives for Set 1: ### Used/existing computing equipment * Two computers with Internet connectivity, administrator access, and about -2GB of free disk space. **Each computer must be running Windows 10, macOS, or +2GB of free disk space. **Each computer must be running Windows 10, MacOS, or Linux.** One of these two computers should be a computer that you do not own (unless diff --git a/_docs/setup/create-boot-usb.md b/_docs/setup/create-boot-usb.md index df20701..89cb5af 100644 --- a/_docs/setup/create-boot-usb.md +++ b/_docs/setup/create-boot-usb.md @@ -16,7 +16,7 @@ way.) The *first two* USB drives ("Setup Boot USBs") are the USB drives you labeled "SETUP 1 BOOT" and "SETUP 2 BOOT" in Section II. They will be prepared using -your Setup Computers, which may be running Windows, macOS, or something else. +your Setup Computers, which may be running Windows, MacOS, or something else. The *last two* USB drives ("Quarantined Boot USBs") are the USB drives you labeled "Q1 BOOT" and "Q2 BOOT" in Section II. They will be prepared using your @@ -44,7 +44,7 @@ copy there. 4. Open a terminal window. 1. **Windows**: Press Windows-R, type "powershell" and click OK. - 2. **macOS**: Click the Searchlight (magnifying glass) icon in the menu bar, + 2. **MacOS**: Click the Searchlight (magnifying glass) icon in the menu bar, and type "terminal". Select the Terminal application from the search results. 3. **Linux**: Varies; on Ubuntu, press Ctrl-Alt-T. (On Ubuntu, press Ctrl-Alt-T.) @@ -55,13 +55,13 @@ copy there. downloaded Ubuntu, customizing the folder name if necessary: 1. **Windows**: `> cd $HOME/Downloads` - 2. **macOs**: `$ cd $HOME/Downloads` + 2. **MacOS**: `$ cd $HOME/Downloads` 3. **Linux**: `$ cd $HOME/Downloads` 2. View the fingerprint of the file: 1. **Windows**: `> Get-FileHash -a sha256 ubuntu-16.04.1-desktop-amd64.iso` - 2. **macOs**: `$ shasum -a 256 ubuntu-16.04.1-desktop-amd64.iso` + 2. **MacOS**: `$ shasum -a 256 ubuntu-16.04.1-desktop-amd64.iso` 3. **Linux**: `$ sha256sum ubuntu-16.04.1-desktop-amd64.iso` 3. The following fingerprint should be displayed: @@ -103,13 +103,13 @@ copy there. "DD Image Mode", select "ISO Image Mode" and press OK. 10. The program will take a few minutes to write the USB. - 2. **macOS** + 2. **MacOS** 1. Prepare the Ubuntu download for copying to the USB. ``` $ cd $HOME/Downloads $ hdiutil convert ubuntu-16.04.1-desktop-amd64.iso -format UDRW -o ubuntu-16.04.1-desktop-amd64.img ``` - 2. Determine the macOS "device identifier" for the Boot USB. + 2. Determine the MacOS "device identifier" for the Boot USB. 1. `$ diskutil list` 2. Insert the SETUP 1 BOOT USB in an empty USB slot. 3. Wait 10 seconds for the operating system to recognize the USB. @@ -143,7 +143,7 @@ copy there. 4. Wait several minutes for the copying process to complete. When it does, you may see an error box pop up. This is expected; it's because the USB is written in a format readable by Ubuntu, but not - readable by macOS. + readable by MacOS. 5. Click Ignore. 4. Verify the integrity of the SETUP 1 BOOT USB (i.e. no errors or @@ -310,7 +310,7 @@ copy there. This setup process is the ONE exception. 2. Because you have booted the SETUP 1 computer off the SETUP 1 BOOT USB, you will follow the instructions for Ubuntu, even if your computer - normally runs Windows or macOS. + normally runs Windows or MacOS. 3. Immediately after you are finished executing steps 1-6 with the Q1 BOOT USB, remove the Q1 BOOT USB from the SETUP 1 computer. 1. On your desktop, right-click the corresponding USB drive icon diff --git a/_docs/setup/non-quarantined-hardware.md b/_docs/setup/non-quarantined-hardware.md index 3721f36..3b8a2f0 100644 --- a/_docs/setup/non-quarantined-hardware.md +++ b/_docs/setup/non-quarantined-hardware.md @@ -29,7 +29,7 @@ software installed, here are some options: * Windows: [Kaspersky](https://usa.kaspersky.com/) ($39.99/yr), [Avira](https://www.avira.com) (Free) - * macOS: [BitDefender](https://www.bitdefender.com/) ($59.95/yr), + * MacOS: [BitDefender](https://www.bitdefender.com/) ($59.95/yr), [Sophos](https://home.sophos.com/) (Free) * Linux: Unnecessary diff --git a/_docs/setup/verify.md b/_docs/setup/verify.md index 34f0f02..46f36e3 100644 --- a/_docs/setup/verify.md +++ b/_docs/setup/verify.md @@ -87,14 +87,14 @@ that's fine; proceed as normal.) 1. **Windows**: Download and install the latest available version of [Gpg4win](https://www.gpg4win.org/). Use the default options. - 2. **macOS**: Download and install the latest available version of + 2. **MacOS**: Download and install the latest available version of [GPG Suite](https://gpgtools.org/). 3. **Linux**: GnuPG comes pre-installed with Linux distributions. 9. Open a terminal window: 1. **Windows**: Press Windows-R, type "powershell" and click OK. - 2. **macOS**: Click the Searchlight (magnifying glass) icon in the menu bar, and + 2. **MacOS**: Click the Searchlight (magnifying glass) icon in the menu bar, and type a terminal window. "terminal". Select the Terminal application from the search results. 3. **Linux**: Varies; on Ubuntu, press Ctrl-Alt-T. @@ -104,7 +104,7 @@ commands below are based on common default settings; if you put your downloads is in a different place, you will need to customize this command. 1. **Windows**: `> cd $HOME/Downloads/glacier` - 2. **macOS**: `$ cd $HOME/Downloads/glacier` + 2. **MacOS**: `$ cd $HOME/Downloads/glacier` 3. **Linux**: `$ cd $HOME/Downloads/glacier` 11. Verify the integrity of the diff --git a/dockerfiles/spellcheck/.spelling b/dockerfiles/spellcheck/.spelling index 5615923..4e2a7b5 100644 --- a/dockerfiles/spellcheck/.spelling +++ b/dockerfiles/spellcheck/.spelling @@ -8,7 +8,7 @@ Kraken Bitfinex SanDisk Cruzer -macOS +MacOS TerraSlate Inspiron Bitclip From d47feb913a007fdda3fd52cca5f798f2be6ab6a2 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 15:15:58 +0000 Subject: [PATCH 034/190] Rewritten in passive voice, section link added --- _docs/overview/key-concepts.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/_docs/overview/key-concepts.md b/_docs/overview/key-concepts.md index b2359cb..08a1e4d 100644 --- a/_docs/overview/key-concepts.md +++ b/_docs/overview/key-concepts.md @@ -1,17 +1,17 @@ --- title: Key concepts -description: Overview of some of the key concepts leveraged by Glacier to make - sure your Bitcoin keys are kept safe. +description: Overview of key concepts leveraged by Glacier to provide +Bitcoin key security --- ## Private Key -Your currency balance is effectively stored in the Bitcoin -blockchain -- the global decentralized ledger. You can imagine a locked box -with all of your bitcoins sitting inside of it. This box is unlocked with -a piece of information known as "private key". (Some boxes require multiple -private keys to unlock; see the section "Multisignature Security" -below.) +Bitcoin balances are stored in the Bitcoin blockchain, a global +decentralized ledger, which can be unlocked with a piece of information +known as a "private key". This is analogous to storing coins in a +padlocked box, of which there can be multiple padlocks - see the +[Multi-signature Security](/docs/overview/multi-signature-security) + section. Unlike a password, a private key is not meant for you to remember. It's a long string of gibberish. From 5d6f5ce646374e6755c8483d89cee62c549771a7 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 15:17:30 +0000 Subject: [PATCH 035/190] Passive voice, "gibberish" explained, law enforcement statement removed There are current examples of law enforcement investigations --- _docs/overview/key-concepts.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/_docs/overview/key-concepts.md b/_docs/overview/key-concepts.md index 08a1e4d..bb3aacb 100644 --- a/_docs/overview/key-concepts.md +++ b/_docs/overview/key-concepts.md @@ -4,7 +4,7 @@ description: Overview of key concepts leveraged by Glacier to provide Bitcoin key security --- -## Private Key +## Private Keys Bitcoin balances are stored in the Bitcoin blockchain, a global decentralized ledger, which can be unlocked with a piece of information @@ -13,14 +13,13 @@ padlocked box, of which there can be multiple padlocks - see the [Multi-signature Security](/docs/overview/multi-signature-security) section. -Unlike a password, a private key is not meant for you to remember. -It's a long string of gibberish. -The private key is what you need to keep -secure. If anyone gets it, they can take your money. Unlike traditional -financial instruments, there is no recourse. There is no company that is -liable, because Bitcoin is a decentralized system not run by any person or -entity. And no law enforcement agency is likely to investigate your -case. +Unlike a password, a private key is not meant to be memorized. It is a +256-bit number, usually expressed as a 64-character hexadecimal string. +It is important to understand that the holder of the private key is the +owner of the bitcoin and, unlike traditional financial instruments, +there is no legal recourse in the event of the key falling into the +hands of someone else. Bitcoin is decentralized, meaning there is no +company, person or entity that is liable. ## Offline Key Storage ("Cold Storage") From 0048f92a1edf322740e7f9ed6898045c5ac543b7 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 15:28:35 +0000 Subject: [PATCH 036/190] Consistent section title case applied --- _docs/before-you-start/hardware.md | 2 +- _docs/before-you-start/overview.md | 12 ++++++------ _docs/before-you-start/structure.md | 4 ++-- _docs/extend/ecosystem.md | 2 +- _docs/extend/improvements.md | 18 +++++++++--------- _docs/overview.md | 4 ++-- _docs/overview/key-concepts.md | 6 +++--- _docs/overview/multi-signature-security.md | 8 ++++---- _docs/setup/create-app-usb.md | 2 +- 9 files changed, 29 insertions(+), 29 deletions(-) diff --git a/_docs/before-you-start/hardware.md b/_docs/before-you-start/hardware.md index e6a2820..decce08 100644 --- a/_docs/before-you-start/hardware.md +++ b/_docs/before-you-start/hardware.md @@ -41,7 +41,7 @@ Linux.** * Smartphone with a working camera -### Other Equipment +### Other equipment * Two factory-sealed USB drives (2GB+): [Verbatim 2GB](http://a.co/jieluaE) diff --git a/_docs/before-you-start/overview.md b/_docs/before-you-start/overview.md index 05ecfc9..08c2d51 100644 --- a/_docs/before-you-start/overview.md +++ b/_docs/before-you-start/overview.md @@ -14,7 +14,7 @@ As described previously, the Glacier protocol involves putting bitcoins in cold storage, using multisignature security, with the keys stored only on paper. -## Eternally Quarantined Hardware +## Eternally quarantined hardware This bulk of the Glacier protocol consists of ways to safeguard against theft of private keys due to malware infection. To accomplish this, @@ -36,7 +36,7 @@ an available interface (e.g. the Internet, if a quarantined laptop is later used to access the web). Eternal quarantining renders the hardware essentially useless for anything else but executing this protocol. -## Parallel Hardware Stacks +## Parallel hardware stacks There is a class of attacks which rely not on stealing your sensitive data (e.g. private keys), but in subverting the process of @@ -76,7 +76,7 @@ automates much of the manual work involved in executing the protocol. GlacierScript's [open source code](https://github.com/GlacierProtocol/GlacierProtocol) is straightforward and extensively commented to facilitate easy review for flaws or vulnerabilities. -## Protocol Output +## Protocol output The end result of the Glacier protocol is a set of paper information packets, one for each private key needed for the multisignature withdrawal @@ -90,7 +90,7 @@ by all private keys. Technical details: The Glacier protocol reuses Bitcoin addresses. See the [design document](../design-doc/overview.md) for a detailed analysis. -## Protocol Cost +## Protocol cost The Glacier protocol requires over $600 in equipment, and approximately 8 hours of work to perform an initial cold storage deposit. This excludes time for: @@ -102,14 +102,14 @@ The Glacier protocol requires over $600 in equipment, and approximately 8 hours Subsequent deposits and withdrawals re-use the same equipment and take a fraction of the time. -## No Formal Support +## No formal support As a free, volunteer-developed community project, there is no formal support channel for Glacier should you encounter any issues. However, you may be able to ask advice of community members on our [Gitter chat room](https://gitter.im/glacierprotocol/Lobby) or other Bitcoin community forums. -## Privacy Considerations +## Privacy considerations Because the Bitcoin blockchain is public, the way you route and store funds has privacy implications. For example, any person to whom you give your cold storage diff --git a/_docs/before-you-start/structure.md b/_docs/before-you-start/structure.md index 4993dcf..87feac2 100644 --- a/_docs/before-you-start/structure.md +++ b/_docs/before-you-start/structure.md @@ -15,7 +15,7 @@ bitcoin address. * **Maintenance**: For ensuring funds in cold storage remain accessible and secure. -## Sensitive Data +## Sensitive data *Critically-sensitive data* (e.g. private keys) will be highlighted in red, like this: critically-sensitive-data-here. @@ -65,7 +65,7 @@ If you use only hardcopies, you'll need to manually type in a large amount of gibberish data, by hand, with no errors, every time you withdraw funds from cold storage. -### Terminal Usage +### Terminal usage Many protocol steps involve typing commands into a *terminal window*. Working in a terminal window is diff --git a/_docs/extend/ecosystem.md b/_docs/extend/ecosystem.md index d52e42d..285335e 100644 --- a/_docs/extend/ecosystem.md +++ b/_docs/extend/ecosystem.md @@ -8,7 +8,7 @@ The Glacier protocol is lengthy and complex because the tools for high-security Ideally, the Bitcoin community (and other cryptocurrency communities) will create these tools as soon as possible and render Glacier obsolete. We invite inquiry and consultation by others interested in developing these tools. -## Cold Storage Hardware Wallets +## Cold storage hardware wallets * Function like conventional hardware wallets, but eternally quarantined (no wireless or wired connections) diff --git a/_docs/extend/improvements.md b/_docs/extend/improvements.md index 69fd274..cedf6ca 100644 --- a/_docs/extend/improvements.md +++ b/_docs/extend/improvements.md @@ -5,7 +5,7 @@ description: Here's a list of improvements that can be made to Glacier, the --- -## Don't store electronic copy of Cold Storage Information Page +## Don't store electronic copy of cold storage information page Glacier recommends stores an electronic copy of the Cold Storage Information Page for easy copy-pasting for subsequent deposits or withdrawals. However, this is slightly less secure & complicated -- and @@ -17,7 +17,7 @@ Printing QR codes on the Cold Storage Information Page would be another way to avoid the need to manually transcribe the deposits and withdrawals -## No Address Reuse +## No address reuse Currently, Glacier reuses addresses for both depositing and withdrawing funds. As discussed in the [protocol design document](../design-doc/overview.md), this has both privacy and security implications. @@ -34,13 +34,13 @@ be given as to whether there is another way to safely test funds access, perhaps using something like the signrawtransaction Bitcoin Core RPC. -## BIP39 Mnemonic Support +## BIP39 mnemonic support [BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) supports the creation of private keys encoded as an English mnemonic for ease and reliability of transcription. It's not yet supported by Glacier because it's not supported by Bitcoin Core. -## Sign Withdrawal Transactions With Individual Signatures +## Sign withdrawal transactions with individual signatures Bringing multiple private keys together in the same physical location for the Withdrawal Protocol entails risk (they could be physically stolen). It @@ -49,7 +49,7 @@ a time, probably by bringing a QR-encoded physical hardcopy of the partially-signed transaction to the storage location of each private key. -## Consider Shamir's Secret Sharing or Vanilla Multisig vs. P2SH Transactions +## Consider Shamir's Secret Sharing or vanilla multisig vs. P2SH transactions Glacier currently uses P2SH transactions. This allows all signatories storing private keys to view the user's balance, because a copy of the redeem script must be kept with each private key. @@ -63,19 +63,19 @@ using [Shamir's Secret Sharing](https://en.wikipedia.org/wiki/Shamir%27s_Secret_ the number of keyholders, but would require additional cryptographic software be integrated into Glacier. -## Automate Quarantined USB creation +## Automate quarantined USB creation Many of the steps for creating the Quarantined USBs could be automated in a simple script. -## Security With Biased Dice +## Security with biased dice Assess integration of this paper and/or [this algorithm](http://pit-claudel.fr/clement/blog/generating-uniformly-random-data-from-skewed-input-biased-coins-loaded-dice-skew-correction-and-the-von-neumann-extractor/) so that the quality of our randomness is not vulnerable to dice bias. -## Entropy Quality Testing +## Entropy quality testing Use an entropy test suite such as [ent](http://www.fourmilab.ch/random/) to verify the quality of generated entropy before it's used. -## Bitcoin Core Version +## Bitcoin Core version Pinning Currently, we download Bitcoin Core on to the Quarantined App USBs via the Ubuntu Package archive. However, because Bitcoin is a privately-managed archive, it only hosts the latest release, rather than diff --git a/_docs/overview.md b/_docs/overview.md index 740de80..7d72992 100644 --- a/_docs/overview.md +++ b/_docs/overview.md @@ -53,7 +53,7 @@ on self-managed storage, but there are cheaper, lower security and more convenie A reader familiar with Bitcoin security concepts may prefer to skip to the section [Choosing a Multisignature Withdrawal Policy](/docs/overview/multi-signature-security#choosing-a-multisignature-withdrawal-policy). -### Online Storage +### Online storage For most people, most of the time, storing Bitcoin using a high-quality online storage service is sufficient. The pros and cons of the various online services are beyond the @@ -93,7 +93,7 @@ of these services reduce, without eliminating entirely, some of the risks descri they still require care and technical competence to securely manage the electronic "keys" which provide access to funds. -### Hardware Wallets +### Hardware wallets Hardware wallets can provide a form of self-managed storage with good security. Again, the pros and cons of the various hardware wallets are beyond the scope of this document. However, all diff --git a/_docs/overview/key-concepts.md b/_docs/overview/key-concepts.md index bb3aacb..3a38a21 100644 --- a/_docs/overview/key-concepts.md +++ b/_docs/overview/key-concepts.md @@ -4,7 +4,7 @@ description: Overview of key concepts leveraged by Glacier to provide Bitcoin key security --- -## Private Keys +## Private keys Bitcoin balances are stored in the Bitcoin blockchain, a global decentralized ledger, which can be unlocked with a piece of information @@ -21,7 +21,7 @@ there is no legal recourse in the event of the key falling into the hands of someone else. Bitcoin is decentralized, meaning there is no company, person or entity that is liable. -## Offline Key Storage ("Cold Storage") +## Offline key storage ("cold storage") You don't want to store your private key on any computer that's connected to the Internet ("hot @@ -39,7 +39,7 @@ Online keys are inherently exposed to hackers. You therefore need to make sure your private key stays offline ("cold storage") at all times. -## Paper Key Storage +## Paper key storage Because the private key is a relatively small piece of information, it can be stored diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index 58b3b36..deebf96 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -9,7 +9,7 @@ Central to our security protocols is a technique called "multisignature security." You'll need a quick primer on this topic to understand the Glacier protocol. -## Regular Private Keys are Risky +## Regular private keys are risky Remember that anybody with access to your private key can access your funds. And if you lose your private key, you cannot access your money; it is @@ -31,7 +31,7 @@ slip of paper sitting in a safe) might break into the safe and steal the wallet. Or a major natural disaster might prevent you from returning home for an extended period, during which time your safe is looted. -## What is Multisignature Security? +## What is multisignature security? To address these issues, Bitcoin provides a way to secure funds with a set of private keys, @@ -53,7 +53,7 @@ security is analogous to a bank requiring signatures from multiple people (for example, any 2 of a company's 3 designated officers) to access funds in an account. -## How Does Multisignature Security Help? +## How does multisignature security help? Multisignature security protects against the following scenarios: @@ -68,7 +68,7 @@ security, entrusting them with a key will not enable them to steal your funds (unless they steal additional key(s), or collude with another signatory). -## Choosing a Multisignature Withdrawal Policy +## Choosing a multisignature withdrawal policy Below are common options for withdrawal policies. You will need to select one before beginning the protocol. diff --git a/_docs/setup/create-app-usb.md b/_docs/setup/create-app-usb.md index c7895b4..25f8609 100644 --- a/_docs/setup/create-app-usb.md +++ b/_docs/setup/create-app-usb.md @@ -1,5 +1,5 @@ --- -title: Create App USBs +title: Create app USBs description: Learn how to prepare your USB drives for Glacier, the step-by-step protocol for storing bitcoins in a highly secure way --- From 2b8f4bbc8549c63ea48ea9fc48235ccf30eed7f7 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 15:50:25 +0000 Subject: [PATCH 037/190] Reword --- _docs/overview/key-concepts.md | 41 ++++++++++++++-------------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/_docs/overview/key-concepts.md b/_docs/overview/key-concepts.md index 3a38a21..8382ce5 100644 --- a/_docs/overview/key-concepts.md +++ b/_docs/overview/key-concepts.md @@ -1,7 +1,7 @@ --- title: Key concepts description: Overview of key concepts leveraged by Glacier to provide -Bitcoin key security + Bitcoin key security --- ## Private keys @@ -21,31 +21,24 @@ there is no legal recourse in the event of the key falling into the hands of someone else. Bitcoin is decentralized, meaning there is no company, person or entity that is liable. -## Offline key storage ("cold storage") +## Offline key storage -You don't want to store your -private key on any computer that's connected to the Internet ("hot -storage"), because that exposes it to more hacking attempts. There are -viruses out there that search computers for private keys and steal them -(thereby stealing your money). +Private keys should only ever be offline, or "in cold storage". They should +never be stored on any internet-connected computer, or "in hot storage", +because it provides an opportunity for hacking attempts or virus infection +via the internet. Viruses can attack in many ways, including searching the +local system for private keys or keylogging data entry. -One way to protect against this is by -encrypting your private key, so even if a thief steals it, they can't read -it. This helps, but is not foolproof. For example, a thief might install -[keylogger malware](https://en.wikipedia.org/wiki/Keystroke_logging) -so that they steal your password too. - -Online keys are -inherently exposed to hackers. You therefore need to make sure your private -key stays offline ("cold storage") at all times. +A private key can be encrypted, meaning a private key in a hacker's +possession is unreadable, but this would not protect against [keylogging malware](https://en.wikipedia.org/wiki/Keystroke_logging) where the encryption +password was also stolen. ## Paper key storage -Because -the private key is a relatively small piece of information, it can be stored -on paper as easily as it can be stored on a computer. And when it comes to -key storage, paper has various advantages compared to computers: It's always -offline (no chance of accidentally connecting it to the Internet!), it's -easy & cheap to make multiple copies for backups (and different keys for -multisignature security -- see below), and it's not susceptible to -mechanical failure. +Private keys, being relatively small pieces of information, can be stored +on paper as easily as they can in digital format. Paper has the following +advantages: + +* **Always offline**: No chance of accidental network connection +* **Easy & cheap**: Multiple copies of multiple keys can be made for backups +* **Durable**: Robust against mechanical failure \ No newline at end of file From e72b13907e6a8ac243257af9763898e797ad5abc Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 16:27:07 +0000 Subject: [PATCH 038/190] "owner" changed to "holder" --- _docs/overview/key-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs/overview/key-concepts.md b/_docs/overview/key-concepts.md index 8382ce5..ecee934 100644 --- a/_docs/overview/key-concepts.md +++ b/_docs/overview/key-concepts.md @@ -16,7 +16,7 @@ padlocked box, of which there can be multiple padlocks - see the Unlike a password, a private key is not meant to be memorized. It is a 256-bit number, usually expressed as a 64-character hexadecimal string. It is important to understand that the holder of the private key is the -owner of the bitcoin and, unlike traditional financial instruments, +holder of the bitcoin and, unlike traditional financial instruments, there is no legal recourse in the event of the key falling into the hands of someone else. Bitcoin is decentralized, meaning there is no company, person or entity that is liable. From e9dfa00898815836702484ebc502b712e5b3847f Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 16:28:09 +0000 Subject: [PATCH 039/190] Critique is on single private keys - "regular" is too vague --- _docs/overview/multi-signature-security.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index deebf96..56fa58d 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -9,7 +9,7 @@ Central to our security protocols is a technique called "multisignature security." You'll need a quick primer on this topic to understand the Glacier protocol. -## Regular private keys are risky +## Single private keys are risky Remember that anybody with access to your private key can access your funds. And if you lose your private key, you cannot access your money; it is From 15331d952c97397e34892290fe31cfc3543fb117 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 16:32:00 +0000 Subject: [PATCH 040/190] Hyphen removed for consistency --- _docs/overview/key-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs/overview/key-concepts.md b/_docs/overview/key-concepts.md index ecee934..5fc9129 100644 --- a/_docs/overview/key-concepts.md +++ b/_docs/overview/key-concepts.md @@ -10,7 +10,7 @@ Bitcoin balances are stored in the Bitcoin blockchain, a global decentralized ledger, which can be unlocked with a piece of information known as a "private key". This is analogous to storing coins in a padlocked box, of which there can be multiple padlocks - see the -[Multi-signature Security](/docs/overview/multi-signature-security) +[Multisignature Security](/docs/overview/multi-signature-security) section. Unlike a password, a private key is not meant to be memorized. It is a From 440a1db24d42e0d9ee60ee069656b346437c8e26 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 16:53:34 +0000 Subject: [PATCH 041/190] Multisig INTRODUCES the opportunity for betrayal in personal storage It REDUCES it for a wallet controlled by multiple people - outside scope --- _docs/overview/multi-signature-security.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index 56fa58d..e61f57c 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -61,12 +61,6 @@ Multisignature security protects against the following scenarios: enough to steal the money. * **Loss**: If a key is destroyed or simply misplaced, you can recover your money using the remaining keys. -* **Betrayal**: -You may want to entrust one or more signatories with keys to facilitate -access to your funds when you are dead or incapacitated. With multisignature -security, entrusting them with a key will not enable them to steal your -funds (unless they steal additional key(s), or collude with another -signatory). ## Choosing a multisignature withdrawal policy From 7b8b3688da94c19bf4d1f5ff958030730c697044 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 18:02:21 +0000 Subject: [PATCH 042/190] reword and restructure --- _docs/overview/multi-signature-security.md | 80 +++++++++------------- 1 file changed, 33 insertions(+), 47 deletions(-) diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index e61f57c..4d82a57 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -1,66 +1,52 @@ --- title: Multi-signature security -description: Glacier uses multiple keys to protect your Bitcoins. This makes it - harder for someone to steal your Bitcoins, and allows you to still access them - even if you lose one keys. +description: Glacier uses multiple private keys. This provides greater security, + and protects against total loss in the event of the loss of a single key. --- -Central to our security protocols is -a technique called "multisignature security." You'll need a quick primer on -this topic to understand the Glacier protocol. +Central to The Glacier Protocol is a technique called "multisignature security", +or "multisig", which utilises multiple private keys to provide greater security, +while also protecting against total loss in the event of the loss of a single key. + +The "signature" part of "multisignature" comes from the process of using a private +key to access bitcoins, referred to as "signing a transaction". ## Single private keys are risky -Remember that anybody with access to your private key can access your -funds. And if you lose your private key, you cannot access your money; it is -lost forever. There is no mechanism for reversal, and nobody to appeal -to. +The bearer asset nature of bitcoin makes it very difficult to secure. For example, +a private key, on paper, in a safe deposit box at a bank may seem secure, but +there are various eventualities that could lead to total loss. The box could be +destroyed in a disaster, [seized](http://abcnews.go.com/GMA/story?id=4832471), +accessed after identity theft, or the entire bank could be robbed. -This makes it difficult to keep funds highly secure. For example, you -might store a private key on paper in a safe deposit box at a bank, and feel -fairly safe. But even this is not the most robust solution. The box could be -destroyed in a disaster, or be robbed (perhaps via identity theft), or -[intentionally seized](http://abcnews.go.com/GMA/story?id=4832471). +Self storage, perhaps in a fireproof safe at home, can mitigate some of these issues, +but it also introduces new risks. A home safe is considerably easier to access and +enter than a bank, as well as potentially introducing personal harm to home +occupants. -You can try to mitigate these risks by storing the key yourself, perhaps in a -fireproof home safe (as opposed to a bank). But this introduces new risks. A -determined thief (perhaps a professional who brings safe-drilling tools on their -burglary jobs, or who somehow got wind of the fact that you have a $100,000 -slip of paper sitting in a safe) might break into the safe and steal the wallet. +## What is multisignature security? -Or a major natural disaster might prevent you from returning home for an -extended period, during which time your safe is looted. +Multisignature security is analogous to a bank requiring signatures from multiple +people (for example, any two of a company's three designated officers) to access +funds in a company account. -## What is multisignature security? +Bitcoin provides a way to secure funds with a set of private keys, such that some +of the keys, but not necessarily all, are required to sign a transaction. For +example, a "2-of-3" withdrawal policy means that, of the three existing keys, two +are required. In general, a multisignature policy is described as being "m-of-n", +where n>=m. -To address these -issues, Bitcoin provides a way to secure funds with a set of private keys, -such that some of the keys (but not necessarily all) are required to -withdraw funds. For example, you might secure your bitcoins with 3 keys but -only need any 2 of those keys to withdraw funds. (This example is known as -a "2-of-3" withdrawal policy.) - -The keys are then stored in different -locations, so someone who gets access to one key will not automatically -have access to the others. Sometimes, a key is entrusted to the custody of -another person, known as a "signatory." - -This approach of using multiple -keys is known as "multisignature security." The "signature" part of -"multisignature" comes from the process of using a private key to access -bitcoins, which is referred to as "signing a transaction." Multisignature -security is analogous to a bank requiring signatures from multiple people -(for example, any 2 of a company's 3 designated officers) to access funds in -an account. +The keys can then be stored in different locations to reduce the chance of any single +third party gaining access to the minimum required number of keys. Keys can also be +entrusted to the custody of another person, known as a "signatory." ## How does multisignature security help? -Multisignature security protects against the following scenarios: +Multisignature security mitigates risk in the following scenarios: -* **Theft**: Even if somebody physically breaks into a safe, any one key is not -enough to steal the money. -* **Loss**: If a key is destroyed or simply misplaced, you can recover your money -using the remaining keys. +* **Theft**: Control of a single key does not give access to the bitcoin +* **Loss**: Bitcoin can be recovered after the loss of a single key, if +misplaced or if the owner is incapacitated, by using the remaining keys ## Choosing a multisignature withdrawal policy From 65403d09e46b2e2ae82ed0c674275d6a0df689dc Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Mon, 19 Nov 2018 18:13:21 +0000 Subject: [PATCH 043/190] Link removed - Too US-centric --- _docs/overview/multi-signature-security.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index 4d82a57..ca00d6e 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -65,8 +65,7 @@ stolen. The keys will be distributed as follows: * One in a safe at home -* The remaining three in safe deposit boxes or [private vaults](https://www.google.com/search?q=private+safe+deposit+box) at -different locations +* Three in safe deposit boxes, or private vaults, at different locations It's important to think about estate planning -- making arrangements for your designated agents to be able to access your funds when From 8e914e3157a6aa5612226567a8fd1d0d295e0439 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Tue, 20 Nov 2018 10:26:06 +0000 Subject: [PATCH 044/190] Reword --- _docs/overview/multi-signature-security.md | 36 +++++++++------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index ca00d6e..94ac6fe 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -50,37 +50,31 @@ misplaced or if the owner is incapacitated, by using the remaining keys ## Choosing a multisignature withdrawal policy -Below are common options for withdrawal policies. You will need to select one -before beginning the protocol. +Below are common options for withdrawal policies, with option 1 being The Glacier +Protocol recommendation. ### Option 1: Self-custody of keys -Our default -recommendation is a 2-of-4 withdrawal policy where you manage all of your -own keys (i.e. you do not entrust any to the custody of friends or family). -2-of-4 means there are four keys, and any two of those keys can be combined -to access your money, ensuring access even if two keys are lost or -stolen. +A 2-of-4 withdrawal policy, with all private keys in the custody of the bitcoin owner, +where any two private keys can be combined to sign a transaction. This provides access +even in a scenario where two keys are lost or stolen. -The keys will be distributed as follows: +The keys should be distributed as follows: * One in a safe at home * Three in safe deposit boxes, or private vaults, at different locations -It's important to think about estate planning -- making -arrangements for your designated agents to be able to access your funds when -you are dead (e.g. for distribution to your heirs) or incapacitated (e.g. to -pay medical bills). This usually requires significant legal arrangements to -be made in advance. +In a self-custody system, estate planning becomes critical. Arrangements must be made +to provide third party access to funds in the event of death (e.g. for inheritance) or +incapacitation (e.g. for medical bills). This usually requires significant legal +arrangement to be made in advance. -The most failsafe way to ensure your agents will have access to your safe -deposit box is to check with the bank. Standard estate planning legal documents -should allow your agent to access the box upon your incapacity, and to get into -it upon your death. But banks can be fussy and sometimes prefer their own forms. +The most failsafe way to ensure third party access to a safe deposit box is directly +via the bank. Standard estate planning legal documents should allow access to each box +upon personal incapacity or death, although banks may offer their own forms. -If you have a living trust, one option may be to have your trust as the co-owner -of your safe deposit box. That generally allows a successor trustee to access -the box. +Another option may be to arrange a living trust, or local equivalent, where the trust +is the co-owner of the safe deposit box. A successor trustee could then access the box. ### Option 2: Distributed custody of keys From b0aa27ee6d8003fb5225274cc7705800321f54ad Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Tue, 20 Nov 2018 12:00:45 +0000 Subject: [PATCH 045/190] "Signing" explanation moved to Key Concepts --- _docs/overview/key-concepts.md | 5 +++++ _docs/overview/multi-signature-security.md | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/_docs/overview/key-concepts.md b/_docs/overview/key-concepts.md index 5fc9129..7c2322e 100644 --- a/_docs/overview/key-concepts.md +++ b/_docs/overview/key-concepts.md @@ -4,6 +4,11 @@ description: Overview of key concepts leveraged by Glacier to provide Bitcoin key security --- +## Signing + +The process of using a private key to access bitcoins, referred to as "signing +a transaction". + ## Private keys Bitcoin balances are stored in the Bitcoin blockchain, a global diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index 94ac6fe..cbc5c1e 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -8,8 +8,6 @@ Central to The Glacier Protocol is a technique called "multisignature security", or "multisig", which utilises multiple private keys to provide greater security, while also protecting against total loss in the event of the loss of a single key. -The "signature" part of "multisignature" comes from the process of using a private -key to access bitcoins, referred to as "signing a transaction". ## Single private keys are risky From e67d4efbfa21fb866dbd6994aff949165e1024f0 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Tue, 20 Nov 2018 12:05:35 +0000 Subject: [PATCH 046/190] Multisig explanation moved, and single sig added, to Key Concepts --- _docs/overview/key-concepts.md | 26 ++++++++++++++-------- _docs/overview/multi-signature-security.md | 4 +--- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/_docs/overview/key-concepts.md b/_docs/overview/key-concepts.md index 7c2322e..95dba71 100644 --- a/_docs/overview/key-concepts.md +++ b/_docs/overview/key-concepts.md @@ -9,23 +9,31 @@ description: Overview of key concepts leveraged by Glacier to provide The process of using a private key to access bitcoins, referred to as "signing a transaction". -## Private keys +## Private key -Bitcoin balances are stored in the Bitcoin blockchain, a global -decentralized ledger, which can be unlocked with a piece of information -known as a "private key". This is analogous to storing coins in a -padlocked box, of which there can be multiple padlocks - see the -[Multisignature Security](/docs/overview/multi-signature-security) - section. +A 256-bit number, usually expressed in 64-character hexadecimal, which can unlock +bitcoin balances stored in the Bitcoin blockchain, a global decentralized ledger. -Unlike a password, a private key is not meant to be memorized. It is a -256-bit number, usually expressed as a 64-character hexadecimal string. +Unlike a password, a private key is not meant to be memorized. It is important to understand that the holder of the private key is the holder of the bitcoin and, unlike traditional financial instruments, there is no legal recourse in the event of the key falling into the hands of someone else. Bitcoin is decentralized, meaning there is no company, person or entity that is liable. +## Single signature security + +This is analogous to storing coins in a padlocked box, with a single key and padlock. + +## Multisignature, or multisig, security + +Utilises multiple private keys to provide greater security, while also protecting +against total loss in the event of the loss of some keys. + +This is analogous to storing coins in a padlocked box, with multiple keys and +padlocks which open in different combinations. See the [Multisignature Security](/docs/overview/multi-signature-security) +section for more detail. + ## Offline key storage Private keys should only ever be offline, or "in cold storage". They should diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index cbc5c1e..77405ab 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -4,9 +4,7 @@ description: Glacier uses multiple private keys. This provides greater security, and protects against total loss in the event of the loss of a single key. --- -Central to The Glacier Protocol is a technique called "multisignature security", -or "multisig", which utilises multiple private keys to provide greater security, -while also protecting against total loss in the event of the loss of a single key. +Multisignature security, or multisig, is central to The Glacier Protocol. ## Single private keys are risky From de300b85558cb4f9ab039d7864c66b9cbb576881 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Tue, 20 Nov 2018 12:11:32 +0000 Subject: [PATCH 047/190] Reword --- _docs/overview/multi-signature-security.md | 23 ++++++++++------------ 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index 77405ab..5bcd3b1 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -74,19 +74,16 @@ is the co-owner of the safe deposit box. A successor trustee could then access t ### Option 2: Distributed custody of keys -Another option is to distribute some of your -keys to individuals who you trust ("signatories"). This can offer some -advantages: - -* **Availability**: If you live in a rural area, there may not be many vaults -or safe deposit boxes that are practical to get to. -* **Ease of setup**: It may be simpler to distribute keys to signatories than -to find available vaults, travel to them, and set up accounts. -* **Ease of estate planning**: You don't need to make complicated legal -arrangements for your signatories to access your funds. They'll have the keys -they need to do so. - -However, there are significant drawbacks: +Another option is to distribute a number of keys to trusted individuals, or signatories, +which has the following advantages: + +* **Availability**: Vaults or safe deposit boxes may not be available in the local area. +* **Ease of setup**: It may be simpler to distribute keys to signatories than to travel +to multiple available vaults and set up accounts. +* **Ease of estate planning**: No complicated legal arrangements for signatories to +access funds. + +Key distribution also has the following disadvantages: * **Privacy**: Other signatories will have the ability to see your balance. Technical details: Every private key needs to be packaged with the multisig From eddf23a308fe33fbb6aae703cc8c1c16b9ba7a5b Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Tue, 20 Nov 2018 12:26:30 +0000 Subject: [PATCH 048/190] Redeem script explanation moved to Key Concepts, link added There is no Appendix C --- _docs/overview/key-concepts.md | 6 ++++++ _docs/overview/multi-signature-security.md | 11 ++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/_docs/overview/key-concepts.md b/_docs/overview/key-concepts.md index 95dba71..3ec6f27 100644 --- a/_docs/overview/key-concepts.md +++ b/_docs/overview/key-concepts.md @@ -34,6 +34,12 @@ This is analogous to storing coins in a padlocked box, with multiple keys and padlocks which open in different combinations. See the [Multisignature Security](/docs/overview/multi-signature-security) section for more detail. +## Redeem script + +Multisignature requires each of the multiple private keys to be accompanied by a +redeem script. This script, each of which is identical, defines how the keys +combine to release funds. Losing all redeem scripts leads to the total loss of funds. + ## Offline key storage Private keys should only ever be offline, or "in cold storage". They should diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index 5bcd3b1..f80efc3 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -85,13 +85,10 @@ access funds. Key distribution also has the following disadvantages: -* **Privacy**: Other signatories will have the ability to see your balance. -Technical details: Every private key needs to be packaged with the multisig -redemption script (since losing all redemption scripts is just as bad as losing -all keys). Redemption scripts, however, allow one to view funds. An alternate -version of this protocol could be created using a different multisig approach -besides P2SH transactions, which would eliminate the ability of signatories to -view balances; see Appendix C for details. +* **Privacy**: All signatories can see the balance via the multisignature redeem script. +An alternate version of this protocol could be created using a different multisig +approach besides P2SH transactions, which would eliminate the ability of signatories to +view balances. See [Possible improvements to Glacier](/docs/extend/improvements#consider-shamirs-secret-sharing-or-vanilla-multisig-vs-p2sh-transactions) for details. * **Signatory collusion**: Although possessing one key won't allow a signatory to access your funds, two signatories might collude with each other to steal your money. From 0aeb44695abf6dc7029b2b80f8ca40f965eaa292 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Tue, 20 Nov 2018 12:32:03 +0000 Subject: [PATCH 049/190] Reword --- _docs/overview/multi-signature-security.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index f80efc3..d218a56 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -89,13 +89,9 @@ Key distribution also has the following disadvantages: An alternate version of this protocol could be created using a different multisig approach besides P2SH transactions, which would eliminate the ability of signatories to view balances. See [Possible improvements to Glacier](/docs/extend/improvements#consider-shamirs-secret-sharing-or-vanilla-multisig-vs-p2sh-transactions) for details. -* **Signatory collusion**: Although possessing one key won't allow a signatory -to access your funds, two signatories might collude with each other to steal -your money. -* **Signatory reliability**: A signatory may fail to store the key securely, or -they may lose it. -* **Signatory safety**: Giving your signatories custody of a valuable key may -expose them to the risk of targeted physical theft. +* **Signatory collusion**: Two signatories may collude to gain access to funds. +* **Signatory reliability**: A signatory may fail to store the key securely. +* **Signatory safety**: Signatories may be exposed to the risk of targeted physical theft. * **Kidnapping risk**: If you anticipate traveling in [high-crime areas with kidnapping risk](http://www.nytimes.com/2012/05/03/business/kidnapping-becomes-a-growing-travel-risk.html), your funds will be at greater risk because you'll From 699569548c211e9cbd7e951c8aecedfeadc8cc86 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Tue, 20 Nov 2018 13:43:00 +0000 Subject: [PATCH 050/190] Kidnapping risk- relies on kidnapper believing/understanding explanation More likely to increase chance of death when funds cannot be provided --- _docs/overview/multi-signature-security.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index d218a56..a00d007 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -92,16 +92,6 @@ view balances. See [Possible improvements to Glacier](/docs/extend/improvements# * **Signatory collusion**: Two signatories may collude to gain access to funds. * **Signatory reliability**: A signatory may fail to store the key securely. * **Signatory safety**: Signatories may be exposed to the risk of targeted physical theft. -* **Kidnapping risk**: If you anticipate traveling in -[high-crime areas with kidnapping risk](http://www.nytimes.com/2012/05/03/business/kidnapping-becomes-a-growing-travel-risk.html), -your funds will be at greater risk because you'll -have the ability to access them remotely (by contacting your signatories and -asking for their keys). -Financially-motivated kidnapping hinges on your ability to access funds to give -to the kidnappers. If you are literally unable to access additional funds -(because the keys are stored in remote vaults which you must be physically -present to access, as opposed to held by friends or family who you can call), -kidnappers will have no incentive to hold you. For distributed custody, we recommend a 2-of-5 withdrawal policy. The extra key (5 keys, rather than the recommended From dd6998dc46536888799efff317dc58b99835aca8 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Tue, 20 Nov 2018 14:42:10 +0000 Subject: [PATCH 051/190] Reqord, restructure, "protecting the key against loss" removed See Github issue #18 for justification of removal of "loss" --- _docs/overview/multi-signature-security.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/_docs/overview/multi-signature-security.md b/_docs/overview/multi-signature-security.md index a00d007..84ddea2 100644 --- a/_docs/overview/multi-signature-security.md +++ b/_docs/overview/multi-signature-security.md @@ -74,8 +74,10 @@ is the co-owner of the safe deposit box. A successor trustee could then access t ### Option 2: Distributed custody of keys -Another option is to distribute a number of keys to trusted individuals, or signatories, -which has the following advantages: +A 2-of-5 withdrawal policy is recommended, with private keys distributed to a number +of trusted individuals, or signatories. The extra key, five rather than the recommended +four in Option 1, mitigates the extra risk of signatories not sufficiently protecting +the key against loss. This has the following advantages: * **Availability**: Vaults or safe deposit boxes may not be available in the local area. * **Ease of setup**: It may be simpler to distribute keys to signatories than to travel @@ -93,13 +95,9 @@ view balances. See [Possible improvements to Glacier](/docs/extend/improvements# * **Signatory reliability**: A signatory may fail to store the key securely. * **Signatory safety**: Signatories may be exposed to the risk of targeted physical theft. -For distributed custody, we recommend a 2-of-5 withdrawal policy. The extra key -(5 keys, rather than the recommended -4 keys in Option 1) is recommended since you have less control over whether -a signatory effectively protects their key against theft or loss +Thorough estate planning arrangements, which allow executors to access the keys if +necessary, will allow the policy to be reduced from 2-of-5 to 2-of-4. Two keys should +be issued to trusted signatories rather than three. -If you have estate planning arrangements which you are confident will allow your -agents to access the keys in your custody when needed, you should be fine with -4 keys instead of 5 (two keys going to trusted signatories rather than three). -Make sure your executors and signatories know to get in touch with each other -when needed. +Whether 2-of-5 or 2-of-4, each signatory should be able to communicate with each other +when needed. \ No newline at end of file From 4e531c136cade21a72c8012a5c81d7789a5ac53e Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Wed, 21 Nov 2018 09:08:07 +0000 Subject: [PATCH 052/190] Reword, restructure, links explained, dead link removed "Example 1" link is no use to pdf reader --- _docs/overview/attack-surface.md | 174 ++++++++++++++++++------------- 1 file changed, 104 insertions(+), 70 deletions(-) diff --git a/_docs/overview/attack-surface.md b/_docs/overview/attack-surface.md index 1ebb0fd..02fc7ed 100644 --- a/_docs/overview/attack-surface.md +++ b/_docs/overview/attack-surface.md @@ -4,65 +4,100 @@ description: Learn about the attack survace for Glacier, the step-by-step protocol for storing bitcoins in a highly secure way --- -This list describes the attack surface and other failure points for Glacier. We -include only attacks and failures limited in scope to specific coins. -Attacks and failures related to the Bitcoin ecosystem as a whole (newly -discovered cryptographic flaws, critical Bitcoin protocol security or -scalability failures, etc.) are not included as most are equally likely to -impact the value of all Bitcoins whether or not they are secured with Glacier. +This section describes the attack surface and failure points for The Glacier +Protocol. Only attacks and failures related to The Glacier Protocol, as +opposed to other methods, are included. Any attack or failure related +to the Bitcoin system as a whole is ignored. A newly discovered cryptographic +flaw, or a critical Bitcoin protocol security or scalability failure, would +impact all bitcoins, regardless of whether they are secured with Glacier or +some other method. -This list assumes no security measures from [Extend Glacier security](../extend/security.md) are implemented. +It is assumed that no security measures from the [Extend Glacier security](../extend/security.md) +section are implemented. -Most attacks require the presence of malware, either in or near the quarantined environment. We'll therefore inventory two layers of Glacier's attack surface: - -* Ways in which a malware infection might occur -* Ways in which a critical failure might happen (possibly, but not necessarily, due to a malware infection) +There are two layers to Glacier's attack surface, malware and critical failure. ## Malware infection vectors -* Software - * OS/App software has malware (i.e. malicious code) built into official distributions. In particular, Glacier relies on the following packages and their dependencies NOT to distribute malicious code: - * Ubuntu desktop - * Bitcoin Core - * zbar-tools (via Ubuntu Package archive) - * qrencode (via Ubuntu Package archive) - * Malware on Setup Computer infects Setup USB software AND malware on Setup USB infects Quarantined USB software AND checksum verifications produces false positives - * Checksum false positives could happen becuase: - * Malware might interfere with the verification process (or the display of its results). - * The checksum verification software could be compromised. - * Verifying the integrity of GnuPG requires one have access to a trusted installation of GnuPG, but many Glacier users won't have that. Glacier currently recommends users simply trust the version of GnuPG they download. - * Malware on Setup Computer infects OS/App USB software AFTER checksum verification produces a true positive (i.e. before/during copying of software to the USB, or during USB ejection) -* Firmware - * Malware on Setup Computer infects Setup Boot USB firmware AND malware on Setup Boot USB infects Quarantined Boot/App USB - * Laptop or USB firmware has malware in the shrinkwrapped package -* Hardware - * Laptop or USB hardware has "malware" in the shrinkwrapped package - -e.g. a [USB JTAG exploit](http://www.itnews.com.au/news/intel-debugger-interface-open-to-hacking-via-usb-446889) or chip-level backdoors (such as -[this rootkit](https://www.wired.com/2016/06/demonically-clever-backdoor-hides-inside-computer-chip/)). "Malware" usually refers to software, but we're using it here more broadly to mean "computing technology which undermines the integrity of the computing environment in which it resides." +Most attacks require the presence of malware, malicious code, either in or near the quarantined environment. + +### Software + +The operating system or application distributions could be compromised. In particular, +Glacier relies on the following packages and their dependencies: +* Ubuntu desktop +* Bitcoin Core +* zbar-tools (via Ubuntu Package Archive) +* qrencode (via Ubuntu Package Archive) + +An infected Setup Computer could infect the Setup USB software, which could infect the +Quarantined USB software. This could produce false positives during the checksum +verification process or alter the display of the verification process results. Verifying +the integrity of GnuPG requires access to a trusted installation of GnuPG, which many +users won't have. The current recommendation is to trust the downloaded version of GnuPG. + +An infected Setup Computer could infect the operating system or application USB software +AFTER checksum verification produces a true positive, either before/during copying of +software to the USB, or during USB ejection. + +### Firmware + +An infected Setup Computer could infect the Setup Boot USB firmware, which could infect +the Quarantined Boot/App USB. + +A laptop or USB firmware could have been infected at any point between manufacture and +delivery, before being shrinkwrapped. + +### Hardware + +A laptop or USB hardware could have been infected at any point between manufacture and +delivery, before being shrinkwrapped. "Malware" usually refers to software, but we're +using it here more broadly to mean "computing technology which undermines the integrity +of the computing environment in which it resides.", as in a +[USB JTAG exploit](http://www.itnews.com.au/news/intel-debugger-interface-open-to-hacking-via-usb-446889) +or [chip-level backdoor](https://www.wired.com/2016/06/demonically-clever-backdoor-hides-inside-computer-chip/). ## Failure scenarios -### Electronic failures - -* Exfiltration of critically sensitive data (e.g. private keys) - * A Quarantined Computer leaks critically sensitive data over a - [side channel](https://en.wikipedia.org/wiki/Side-channel_attack) - (possibly due to malware) AND complementary malware on a (networked or attacker-controlled) device in range steals the data - * Visual side channel (does not require malware on the quarantined computer, since sensitive data is displayed on the screen as part of the protocol). - If the protocol is followed, the attack surface here should be narrow, as users are instructed to block all visual side channels. However, at a minimum, they are using their smartphone for reading QR codes, and that has a camera on it. - * Acoustic side channel, if inadequately blocked (i.e. insufficient sound blockage or masking noise). [See example](https://www.wired.com/2016/06/clever-attack-uses-sound-computers-fan-steal-data/). - * Radio side channel ( [example 1](https://www.usenix.org/legacy/event/sec09/tech/full_papers/vuagnoux.pdf) , [example 2](http://cyber.bgu.ac.il/content/how-leak-sensitive-data-isolated-computer-air-gap-near-mobile-phone-airhopper) , [example 3](https://www.wired.com/2015/06/radio-bug-can-steal-laptop-crypto-keys-fits-inside-pita/) ) - * Seismic side channel ( [example](https://www.cc.gatech.edu/fac/traynor/papers/traynor-ccs11.pdf)) - * Thermal side channel ( [example](http://cyber.bgu.ac.il/blog/bitwhisper-heat-air-gap)) - * Magnetic side channel ( [example](http://fc15.ifca.ai/preproceedings/paper_14.pdf) ) - * Malware on a Quarantined Computer exfiltrates critically sensitive data via QR codes AND cooperating malware on the QR reading device steals the data. - The risk of this scenario is negligible; unless the attacker simultaneously compromised every major smartphone QR reader with cooperating malware, any manipulation of QR codes would be quickly detected by people using non-compromised QR reader software, leading to widespread awareness and isolation of the threat. This makes it a very unattractive attack vector. - * Critically sensitive data is leaked (intentionally or otherwise) as part of the payload of valid data (e.g. if the nonce used for a transaction signature contains bits of the private key) -* Undetected generation of flawed sensitive data. -(Requires compatible malware present on BOTH quarantined environments) - * Private key creation is compromised to make keys easily guessable - * Transaction creation is compromised to use output addresses belonging to an attacker, AND cooperating malware on a networked computer sends the malicious transaction before the manual address verification is done) +Scenarios in which a critical failure might happen. Possibly, but not necessarily, due +to a malware infection. + +### Exfiltration of critically sensitive data +A Quarantined Computer could leak critically sensitive data over a side channel, which +is an attack based on information gained from the implementation of a computer system, +rather than weaknesses in the implemented algorithm itself. Complementary malware on a +networked or attacker-controlled device in range then steals the data. Possibilities include: + * **Visual side channel**: Exploit of sensitive visual data. Data is displayed on the + screen as part of the protocol, so does not require malware on the quarantined computer. + If the protocol is followed, the attack surface here should be narrow, as users are + instructed to block all visual side channels. However, at a minimum, a smartphone with a + camera is used for reading QR codes. + * **Acoustic side channel**: Exploit of sounds emitted by computer or other device, if + inadequately blocked by sound insulation or masking noise. [Data theft by fan noise](https://www.wired.com/2016/06/clever-attack-uses-sound-computers-fan-steal-data), for example. + * **Radio side channel**: [Exploit of electromagnetic emanations from wired and wireless + keyboards](https://www.usenix.org/legacy/event/sec09/tech/full_papers/vuagnoux.pdf), + [transmission of radio signals from monitor to FM radio receiver](http://cyber.bgu.ac.il/content/how-leak-sensitive-data-isolated-computer-air-gap-near-mobile-phone-airhopper) + or [radio waves leaked by a processor's power use](https://www.wired.com/2015/06/radio-bug-can-steal-laptop-crypto-keys-fits-inside-pita/), + for example. + * **Seismic side channel**: Decoding vibrations from nearby keyboard using mobile phone accelerometer, for example. + * **Thermal side channel**: [Exploit using thermal sensors to detect heat emission](http://cyber.bgu.ac.il/blog/bitwhisper-heat-air-gap), for example. + * **Magnetic side channel**: [Exploit using smartphone magnetic field sensors to extract hard drive data](http://fc15.ifca.ai/preproceedings/paper_14.pdf), for example. + * **Rogue QR code**: Malware on a Quarantined Computer could exfiltrate critically + sensitive data via QR codes IF cooperating malware on the QR reading device is prepared + to steal the data. The risk of this scenario is negligible; unless the attacker + simultaneously compromised every major smartphone QR reader with cooperating malware, + any manipulation of QR codes would be quickly detected by users of non-compromised QR + reader software, leading to widespread awareness and isolation of the threat. This makes + it a very unattractive attack vector. + * **Data leak**: Critically sensitive data could be leaked, intentionally or otherwise, as part of the + payload of valid data. For example, the nonce used for a transaction signature could contains + bits of the private key. + * **Flawed data generation**: Undetected generation of flawed sensitive data IF compatible + malware is present on BOTH quarantined environments. + * **Guessable private keys**: Private key creation could be compromised to make keys easily guessable. + * **Compromised addresses**: Transaction creation is compromised to use output addresses belonging to an attacker, + AND cooperating malware on a networked computer sends the malicious transaction before the + manual address verification is done. ### Physical failures @@ -72,6 +107,7 @@ e.g. a [USB JTAG exploit](http://www.itnews.com.au/news/intel-debugger-interfac * Malware on the quarantined machines writes sensitive data to persistent media (USB or laptop hard drive) AND the hardware is physically stolen afterward ### Glacier protocol failures + * Glacier hosting (i.e. DNS, Github, website hosting, etc.) is compromised to inject weaknesses into the protocol documentation or GlacierScript * Protocol delivery is compromised (e.g. with @@ -83,25 +119,23 @@ software * Human error during protocol execution * Design failure in the protocol misses or inadequately addresses a risk -For potential man-in-the-middle vulnerabilities, we mitigate this by signing a -checksum of the Glacier document itself, and including steps in the protocol for -users to verify the signature and checksum. But this is not foolproof: - +Potential man-in-the-middle vulnerabilities are mitigated by including steps in +the protocol for verifying the signature and checksum of the Glacier document +itself. Unfortunatley, vulnerabilities remain: -An attacker could remove the self-verification procedure from the protocol document, -and many users would not notice. -* An attacker could compromise our keypair and create a fraudulent signature -(although this is exceedingly unlikely, due to Keybase's key verification systems) -* The protocol document does begin with document self-verification on one Setup -Computer. However, it doesn't guide the user through self-verification on the second -Setup Computer. Nor does it have them re-verify the document when they first boot +* An attacker could remove the self-verification procedure from the protocol document. +* An attacker could compromise the Glacier Protocol keypair and create a fraudulent +signature. This is exceedingly unlikely, due to Keybase's key verification systems. +* The protocol document begins with document self-verification on one Setup +Computer. However, it does not guide the user through self-verification on the second +Setup Computer. Nor does it have the user re-verify the document when they first boot into Ubuntu on the Setup Computers to create the Quarantined Boot USBs. If the -portion of the protocol document related to creating the Quarantined Boot USBs were -compromised between the initial self-validation & the later re-validation (when -creating the Quarantined App USBs), the user would probably not notice, even without +portion of the protocol document related to creating the Quarantined Boot USBs had been +compromised between the initial self-validation and the later re-validation, when +creating the Quarantined App USBs, the user would probably not notice, even without a forged signature. -* Protocol hardcopy is compromised (e.g. by malware to alter the user's hardcopy as -it is printed) -* A flaw in GlacierScript causes sensitive data to be leaked or flawed -* Human error during protocol execution -* Design failure in the protocol misses or inadequately addresses a risk +* The protocol hardcopy could be compromised. For example, malware could alter the +hardcopy as it is printed) +* A flaw in GlacierScript could cause sensitive data to be leaked or flawed +* Human error could occur during protocol execution +* Design failure in the protocol could miss or inadequately address a risk \ No newline at end of file From f99d75e5e2be920bf546d9e30984408622d87222 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Wed, 21 Nov 2018 09:45:02 +0000 Subject: [PATCH 053/190] "Attack surface and failure points" moved to new Vulnerabilities section Core concepts used (quarantined boot USB etc) that havent been explained --- _data/docs_toc.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_data/docs_toc.yml b/_data/docs_toc.yml index b128d95..6680a0a 100644 --- a/_data/docs_toc.yml +++ b/_data/docs_toc.yml @@ -3,7 +3,6 @@ - overview - overview/key-concepts - overview/multi-signature-security - - overview/attack-surface - title: Before you start docs: - before-you-start/overview @@ -33,6 +32,9 @@ docs: - check-balance/overview - check-balance/maintenance +- title: Protocol vulnerabilities + docs: + - overview/attack-surface - title: Extend Glacier docs: - extend/security From c5513b9b5a3265912a022b10e027ae077d98e096 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Wed, 21 Nov 2018 10:01:00 +0000 Subject: [PATCH 054/190] Relative section links removed for consistency --- _docs/before-you-start/overview.md | 4 ++-- _docs/deposit/generate-cold-storage-data.md | 2 +- _docs/extend/ecosystem.md | 2 +- _docs/extend/improvements.md | 4 ++-- _docs/extend/security.md | 2 +- _docs/overview/attack-surface.md | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_docs/before-you-start/overview.md b/_docs/before-you-start/overview.md index 08c2d51..ee17d80 100644 --- a/_docs/before-you-start/overview.md +++ b/_docs/before-you-start/overview.md @@ -8,7 +8,7 @@ redirect_from: /docs/before-you-start/ This section establishes a basic understanding of the Glacier protocol in order to facilitate its execution. For more background on the protocol's design, see -the Glacier [design document](../design-doc/overview.md). +the Glacier [design document](/docs/design-doc/overview). As described previously, the Glacier protocol involves putting bitcoins in cold storage, using multisignature @@ -88,7 +88,7 @@ policy. Each packet includes the following information: by all private keys. Technical details: The Glacier protocol reuses Bitcoin addresses. See the -[design document](../design-doc/overview.md) for a detailed analysis. +[design document](/docs/design-doc/overview) for a detailed analysis. ## Protocol cost diff --git a/_docs/deposit/generate-cold-storage-data.md b/_docs/deposit/generate-cold-storage-data.md index 926d4ec..075b922 100644 --- a/_docs/deposit/generate-cold-storage-data.md +++ b/_docs/deposit/generate-cold-storage-data.md @@ -48,7 +48,7 @@ prepare your quarantined workspace. 1. Type "DICE ENTROPY" into both Quarantined Scratchpads. 2. Roll 62 six-sided dice, shaking the dice thoroughly each roll. 62 dice rolls corresponds to 160 bits of entropy. See the - [design document](../design-doc/overview.md) for details. + [design document](/docs/design-doc/overview) for details. 3. If you are rolling multiple dice at the same time, read the dice left-to-right. **This is important.** Humans are [horrible at generating random data](http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0041531) diff --git a/_docs/extend/ecosystem.md b/_docs/extend/ecosystem.md index 285335e..448771d 100644 --- a/_docs/extend/ecosystem.md +++ b/_docs/extend/ecosystem.md @@ -4,7 +4,7 @@ description: Here's a list of how the Bitcoin ecosystem could be improved with increased security. --- -The Glacier protocol is lengthy and complex because the tools for high-security cold storage do not exist. This appendix briefly outlines some of the tool functionality that would address this gap. For additional technical details, see the Glacier [design document](../design-doc/overview.md). +The Glacier protocol is lengthy and complex because the tools for high-security cold storage do not exist. This appendix briefly outlines some of the tool functionality that would address this gap. For additional technical details, see the Glacier [design document](/docs/design-doc/overview). Ideally, the Bitcoin community (and other cryptocurrency communities) will create these tools as soon as possible and render Glacier obsolete. We invite inquiry and consultation by others interested in developing these tools. diff --git a/_docs/extend/improvements.md b/_docs/extend/improvements.md index cedf6ca..ad9ba57 100644 --- a/_docs/extend/improvements.md +++ b/_docs/extend/improvements.md @@ -19,8 +19,8 @@ withdrawals ## No address reuse Currently, Glacier reuses addresses for -both depositing and withdrawing funds. As discussed in the [protocol design -document](../design-doc/overview.md), this has both privacy and security implications. +both depositing and withdrawing funds. As discussed in the protocol [design +document](/docs/design-doc/overview), this has both privacy and security implications. This could be implemented with HD wallets, which would allow one to generate one master diff --git a/_docs/extend/security.md b/_docs/extend/security.md index 3334827..5e60d0b 100644 --- a/_docs/extend/security.md +++ b/_docs/extend/security.md @@ -44,7 +44,7 @@ software (including a non-Linux-derived OS and a different Bitcoin wallet), different smartphones (and different smartphone software, i.e. QR code readers). Different software stacks eliminate the risk that a software bug or vulnerability may generate a flawed key. See the -[design document](../design-doc/overview.md) for details on why this risk is +[design document](/docs/design-doc/overview) for details on why this risk is small enough to justify leaving it unaddressed in the formal protocol. * **Dedicated pair of environments for each private key**: Use extra environments such that each environment only touches one key both when diff --git a/_docs/overview/attack-surface.md b/_docs/overview/attack-surface.md index 02fc7ed..eda674d 100644 --- a/_docs/overview/attack-surface.md +++ b/_docs/overview/attack-surface.md @@ -12,7 +12,7 @@ flaw, or a critical Bitcoin protocol security or scalability failure, would impact all bitcoins, regardless of whether they are secured with Glacier or some other method. -It is assumed that no security measures from the [Extend Glacier security](../extend/security.md) +It is assumed that no security measures from the [Extend Glacier security](/docs/extend/security) section are implemented. There are two layers to Glacier's attack surface, malware and critical failure. From 1dcf8bd88d03a86005cb1c1921041c29acd7d213 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Wed, 21 Nov 2018 14:53:26 +0000 Subject: [PATCH 055/190] attack-surface.md moved for consistent folder structure Missed in f99d75e5e2be920bf546d9e30984408622d87222 --- _data/docs_toc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/docs_toc.yml b/_data/docs_toc.yml index 6680a0a..c7c9fd9 100644 --- a/_data/docs_toc.yml +++ b/_data/docs_toc.yml @@ -34,7 +34,7 @@ - check-balance/maintenance - title: Protocol vulnerabilities docs: - - overview/attack-surface + - protocol-vulnerabilities/attack-surface - title: Extend Glacier docs: - extend/security From 567a42b78a7e78f6a942d5392d9105e842891039 Mon Sep 17 00:00:00 2001 From: GraniteKeep Date: Wed, 21 Nov 2018 15:08:03 +0000 Subject: [PATCH 056/190] "About" page renamed, moved and links updated for consistency --- _data/docs_toc.yml | 2 +- _docs/{overview.md => overview/about.md} | 0 _docs/{overview => protocol-vulnerabilities}/attack-surface.md | 0 _includes/topbar.html | 2 +- index.html | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) rename _docs/{overview.md => overview/about.md} (100%) rename _docs/{overview => protocol-vulnerabilities}/attack-surface.md (100%) diff --git a/_data/docs_toc.yml b/_data/docs_toc.yml index c7c9fd9..0b11e1f 100644 --- a/_data/docs_toc.yml +++ b/_data/docs_toc.yml @@ -1,6 +1,6 @@ - title: Glacier overview docs: - - overview + - overview/about - overview/key-concepts - overview/multi-signature-security - title: Before you start diff --git a/_docs/overview.md b/_docs/overview/about.md similarity index 100% rename from _docs/overview.md rename to _docs/overview/about.md diff --git a/_docs/overview/attack-surface.md b/_docs/protocol-vulnerabilities/attack-surface.md similarity index 100% rename from _docs/overview/attack-surface.md rename to _docs/protocol-vulnerabilities/attack-surface.md diff --git a/_includes/topbar.html b/_includes/topbar.html index 506f355..fc2d380 100644 --- a/_includes/topbar.html +++ b/_includes/topbar.html @@ -14,7 +14,7 @@