edgecase_datafeed1582020-07-26
This is the date at the time of creation of this datafeed article. A checkpoint article containing a hash of this datafeed article may be created on this date or at a later date.14492020-05-28bitcoinb27618deae05910f529240cc6960aeb87f017b12d302327253ee893825ce2bd46321001HtwyqFWNVDoSEVqZwjBRRAV2oEsi8aQXr13MfGs39pR5aEK4iKdoLjVYXKwi6Y3uyPqHow_to_write_a_Bitcoin_address_on_paperstjohn_piano2020-07-23yes
When you are writing a Bitcoin address on paper, the goal is 100% accuracy. An address with an error in it becomes a completely different address, with an unrelated private key. This new private key is unlikely to be known by anyone, since there are 2^256 possible private keys in the Bitcoin cryptosystem. Any bitcoin sent to this new address will be lost.
Note: A Bitcoin address does have a layer of protection against transcription errors. There is a hash-based checksum embedded within it. Most errors will cause the address to have an invalid checksum value, and a well-constructed Bitcoin software tool will detect this and refuse to send bitcoin to the invalid address. Nonetheless: It is unlikely but possible that transcription errors might create a new address that is valid but whose private key is unknown, and any bitcoin sent to it would be lost.
Here is an example Bitcoin private key:
7972b641101c0ad67b0e401b800a9b6f3225c97fc6b8115042cf66968c2fb2e5
And the corresponding Bitcoin address:
16ASCUS3s7D4UQh6J9oHGuT19agPvD3PFj
The possible characters in a Bitcoin address are:
- 0-9 with no 0
- A-Z with no I or O
- a-z with no l
The 0, I, O, and l characters were excluded due to possible confusion with i and o.
Approach 1: Single line
Write down the address in exactly the form shown here:
16ASCUS3s7D4UQh6J9oHGuT19agPvD3PFj
This is the address format that a
articleEdgecase_Bitcoin_Storage_Toolset_version_2edgecase148Bitcoin software tool
would accept.
Problems:
- It's difficult to tell if you've skipped a character.
- If you are making another copy of this address (by writing it out again on another piece of paper), then it will be difficult to compare the two copies against each other and confirm that they are the same.
Approach 2: Grid pattern
I prefer to divide an address into groups of 4 characters and lines of 4 groups. Usually, some letters will be left over that do not form a complete group.
16AS CUS3 s7D4 UQh6
J9oH GuT1 9agP vD3P
Fj
With this format, it's easier to:
- Read on a computer screen and write onto paper.
- Read on paper and type into an offline computer.
- Compare two keys and find any differences.
The division process can be automated:
[spiano@shovel ~]$ echo -n "16ASCUS3s7D4UQh6J9oHGuT19agPvD3PFj" | fold --width 16 | sed 's/.\\{4\\}/& /g'; echo "";
16AS CUS3 s7D4 UQh6
J9oH GuT1 9agP vD3P
Fj
Notes on writing a Bitcoin address clearly on paper
When writing an Bitcoin address on paper, I have found it best to take these steps in order to reduce ambiguity:
- Underline every capital letter, taking care not to allow the underline to touch the character or any other nearby character.
- For a "1" character, include the extra bottom and diagonal lines (i.e. "1"), rather than writing only a single vertical line (i.e. "|").
- Add a tail to u/U to distinguish it from v/V.
- Cross the middle of z/Z to distinguish it from 2.
- Cross the top of a capital J to distinguish it from j.
- Be careful when underlining F, as if the underline is too close, it could look like E.
- Make sure to close the loop properly on 6, so that it doesn't look like G. Similarly, be careful not to close the loop on G, so that it doesn't look like 6.
- Underline 6 to distinguish it from b. This makes the overall underlining rule into "Underline capital letters and 6, and be careful when underlining F".
- Extend the tail in g so that it forms into a loop, preventing g from looking like q or 9.
- Add an upwards-diagonal tail to q, so that it doesn't look like 9.
This article consists of information originally published in
articleAn_investigation_into_recovering_from_transcription_errors_in_Bitcoin_private_keysedgecase143An investigation into recovering from transcription errors in Bitcoin private keys
, re-edited to focus on the titular problem.
iQIcBAABCgAGBQJfHWD9AAoJEC8RP+HmG9MXXGUP/AtQouLcW5ro3HbJtddCmVGl
I8tjsY3qT+6RRU1908Hth+8heXZ1QRP4paGiQkmdMTMKZ3l8K2TdNWrVzbNTDc2S
YJ5hUIPh/gHcn4hbl9GX9C89nnYG8D7Fl7+hhN+r3kIiJr6GApa7hDf4iZc66h5u
/fm1duAnu3ZHK9BgVi3uukqLHMIaJCldYPe/dR00O9OkYholPjiJk98wjwogs3O4
G6LeOKKzDhccX7wdzTa+L82kxfT48K1VCeZ11Em836zpTZKvrkXef+4lcuH+qFnI
37jODCMXdPkLk8KaKuFquRH+25O3zlHGAlaKwdpnksePFP44C4PlMNWyAE/nSzKD
z1PbKHSoSkaeKeo2/2ZXye+JQEVmr4AOGdy1glMS5WHnorCOnik3fRJdIKRHNzx9
+R2YKXKSTDOKwX6IZOohFjmJ9Cw2rTMqscbvoXSOImsGXk0X2LuA1TDcLjPdX4YT
CU6H6ub+Ca5zMrEUqIF6gtqI3NfdTnd+F037NP7HIdcNwvbpRjY4BADKISlNNabZ
zqQ7Y5g3mQ0ptNyARuRRk7vDcsec/jOriG9q+9YOV69eYJd9qVlq1Y5aXre8UU5m
yAJ4S5CP2dMuRTZobA9bUKvZP18UTBMWBkzh1tYtgSryMWcGdKYfOrGhP9hBEIEL
5oHQx1HfSbySaJeeZzPA
=e3RK
iQIcBAABCgAGBQJfHWE4AAoJECL1OzZgiBhwgnEP/05lkikjuxLCtceIDBk4BH2l
OR0z9+IUOABn8uPfnnFEDbX+4y8ycR0GLRflC/4XwCHSQjeWi2M6qeimr3jMgkij
JcYEqkcmyy1XpvWZXXg3XEKamAj+i+tHwUwrpePA02VX+6sJGJ2drSbWFOXyhdoR
Ejxul59+qTW3Q4HvZdRaLESWvQH9M+80fA9ZqTD0+QkzjuXSGBFIpj7y/UR0aF/s
ba30x639wRyHZC3iuJrb0eZCqTR3N9f7PQJppR3PEN+3CF0e2BAeDfJlftbDfUJy
AgfRU4HY6zGtXH4SDTMO2+qKHAnwE2jlqAyxIdTreTQC2U7dkMit84o2WsIPVGnE
MW3sVrf9zTXkmj6POYxTh5z6wARfRdck/spuvcBQArlQ+JsHiIogKnGmVyA+0k9s
wT85/DTAoblFADeJydUPR4c9ZxYOaIbM3lD4hXNMUMBPrF9qr3YCfaXJb7eiWiBO
c7oIOG5p5jlDO2BFkIzuzjvhTqsL6buhKHgi1qWFdNXIIF/ILPxQje6YHEq++z6p
AdAfs3Zucr/0OQYMVp5EeXvFvIDGrh+eBpSG+G4aLjawzT7C7deb1dSEfeP7VynO
e5hhFySUyjBwv+qjDIZOamhIj/E50gLJWEIRUAMJ2LUB7czA5L4/jCULm/C4O+Iu
mFNPreS7OTO6/1q3jcM4
=Ef+O