From f3c9ba00ac45416ea43ea1047bed5049f92be20b Mon Sep 17 00:00:00 2001 From: "Andreas M. Antonopoulos" Date: Fri, 30 May 2014 21:12:19 -0400 Subject: [PATCH] finished vanity section --- ch04.asciidoc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ch04.asciidoc b/ch04.asciidoc index c3e3cbd7..64887336 100644 --- a/ch04.asciidoc +++ b/ch04.asciidoc @@ -455,11 +455,9 @@ image::images/chained_wallet.png["chained wallet"] .Type-2 Hierarchical Deterministic Wallet: A Tree of Keys Generated from a Seed image::images/HD_wallet.png["HD wallet"] - ==== Advanced Keys and Addresses - ===== Encrypted Private Keys (BIP0038) @@ -520,13 +518,17 @@ Vanity addresses can be used to enhance _and_ to defeat security measures, they He could advertise a randomly generated address (e.g. 1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy) to which people to send their donations. Or, Eugenio could generate a vanity address that starts with 1Kids, to make it more distinctive. -In both cases, one of the risks of using a single fixed address (rather than a separate dynamic address per donor) is that a thief might be able to infiltrate your website and replace it with their own address, thereby diverting donations to themselves. If you have advertised your donation address in a number of different places, your users may visually inspect the address before making a payment to ensure it is the same one they saw on your website, on your email, and on your flyer. In the case of a random address like "1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy", the average user will inspect the first few characters "1J7mdg" perhaps and be satisfied that the address matches. So does a vanity address increase security? If Eugenio generates the vanity address "1Kids33q44erFfpeXrmDSz7zEqG2FesZEN" - +In both cases, one of the risks of using a single fixed address (rather than a separate dynamic address per donor) is that a thief might be able to infiltrate your website and replace it with their own address, thereby diverting donations to themselves. If you have advertised your donation address in a number of different places, your users may visually inspect the address before making a payment to ensure it is the same one they saw on your website, on your email, and on your flyer. In the case of a random address like "1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy", the average user will inspect the first few characters "1J7mdg" perhaps and be satisfied that the address matches. Using a vanity address generator, someone with the intent to steal by substituting a similar-looking address can quickly generate addresses that match the first few characters: -==== Key Storage - -===== Software Wallets +.Generating vanity addresses to match a random address +|======= +| Original Random Address | 1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy +| Vanity (4 character match) | 1J7md1QqU4LpctBetHS2ZoyLV5d6dShhEy +| Vanity (4 character match) | 1J7mdi84uzJTDHhi56Xj8UuCWXPydTxAKc +| +|======= -===== Hardware Wallets +So does a vanity address increase security? If Eugenio generates the vanity address "1Kids33q44erFfpeXrmDSz7zEqG2FesZEN", +users are likely to look at the vanity pattern word _and a few characters beyond_, for example noticing the "1Kids33" part of the address. That would force an attacker to generate a vanity address matching at least 6 characters, expending an effort that is 3,364 times (58 x 58) higher than the effort Eugenio expended for a 4 character vanity. Essentially, the effort Eugenio expends (or pays a vanity pool for) "pushes" the attacker into having to produce a longer pattern vanity. If Eugenio pays a pool to generate an 8 character vanity address, the attacker would be pushed into the realm of 10 characters which is infeasible on a personal computer and expensive even with a custom vanity-mining rig or vanity pool. ===== Paper Wallets