Bitcoin Forum
June 18, 2024, 05:24:56 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3]  All
  Print  
Author Topic: Can I create a Bitcoin address with pen and paper ?  (Read 4314 times)
Sumerian
Sr. Member
****
Offline Offline

Activity: 378
Merit: 250


View Profile
January 12, 2015, 08:20:51 AM
 #41

The idea of bitcoin started with pen and paper. I'm pretty sure if you're a math genius you can do a lot with pen and paper. Unfortunately I'm not gifted with such a talent

Want Free Bitcoins? Check out BitcoInvest
e1ghtSpace
Legendary
*
Offline Offline

Activity: 1526
Merit: 1001


Crypto since 2014


View Profile WWW
January 12, 2015, 08:23:47 AM
 #42

Base 16? What are the numbers 10, 11, 12, 13, 14, 15, 16 with that?
newIndia
Legendary
*
Offline Offline

Activity: 2226
Merit: 1049


View Profile
January 12, 2015, 10:31:37 AM
 #43

I think following is the best explanation to create a bitcoin address with pen and paper...

What does 'manually' mean, pen and paper only?
Pen and paper, calculator etc...

As long as it's not made by an application.

Pen and paper would take days.

http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html
This is ONE of the hashing algorithms (SHA-256) and this man says he could do 0.67 hashes per day.

The process of generating a bitcoin address by hand (pen and paper) would be the following.

1. roll a 6 sided dice 99 times.
2. write down each result, writing a "0" for every 6 that comes up.
3. take this long string of numbers from 0-5 and convert it from base 6 to base 10.
   a. This means starting from the first non-zero digit on the left, multiply it by 6 then add it to the next digit, then multiply by 6 then add to the next digit... etc. until you get a long number with digits from 0-9.
4. Now you will have to calculate the public key. This is more easily done if the private key (the long number you made) is in binary form (1 or 0) so convert the number to binary.
5. Use the ECDSA point doubling formula and point addition formula on the generator point to get the public key. This will probably take a few days.
6. Convert the public point's x and y value both into binary. Pad each of them with 0s on the left hand side in case they're shorter than 256.
7. add 00000100 to the far left, then the padded x, then the padded y.
8. follow the video I linked above to perform a single SHA256 on the binary string created in #7
9. once you get the single 256 bit binary string... you must then perform the RIPEMD160 hash algorithm on it.
10. once you get the 160 bit length hash from it, add 00000000 to the far left of it... hold this string for later. We will do two things to it.
11. perform a SHA256 on the string from #10, then perform ANOTHER SHA256 on the result. (double SHA256)
12. take the 32 bits on the far left of the result from #11 and add it to the far right of the result from #10
13. For every 8 zeros on the far left of the result of #12, write down a number 1 on a piece of paper. Then convert the left over bits to base 58 as per the bitcoin base 58 specification (it's slightly disorienting if you're doing by hand, as 0 is represented by 1, 1 is represented by 2, 57 is represented by z etc...)
14. now you have your bitcoin address. To format your private key in the widely used WIF format, perform #10-#13 on the binary private key from #4... except instead of sticking 8 zeroes to the far left, add 10000000 to it instead.

David Rabahy
Hero Member
*****
Offline Offline

Activity: 709
Merit: 503



View Profile
January 12, 2015, 04:44:07 PM
 #44

Base 16? What are the numbers 10, 11, 12, 13, 14, 15, 16 with that?
One common convention is;

base 10 - base 16
---------   ---------
0             0
1             1
2             2
3             3
4             4
5             5
6             6
7             7
8             8
9             9
10            0A  ** the leading zeros help to distinguish these hexdigits from other alphabetic characters
11            0B
12            0C
13            0D
14            0E
15            0F
16            10

I have created another Google sheet https://docs.google.com/spreadsheets/d/1kC3IfxBsl5VGTpc6un59m5U4CrsXtl7tgUeLbcZE7G8 to illustrate; click the "using letters" tab to see the classic base 16.
TimS
Sr. Member
****
Offline Offline

Activity: 250
Merit: 253


View Profile WWW
January 12, 2015, 09:33:58 PM
 #45

Base 16? What are the numbers 10, 11, 12, 13, 14, 15, 16 with that?
One common convention is;

base 10 - base 16
---------   ---------
0             0
1             1
2             2
3             3
4             4
5             5
6             6
7             7
8             8
9             9
10            0A  ** the leading zeros help to distinguish these hexdigits from other alphabetic characters
11            0B
12            0C
13            0D
14            0E
15            0F
16            10

I have created another Google sheet https://docs.google.com/spreadsheets/d/1kC3IfxBsl5VGTpc6un59m5U4CrsXtl7tgUeLbcZE7G8 to illustrate; click the "using letters" tab to see the classic base 16.
I don't think I've ever seen leading zeroes on hexadecimal used in the way you describe. "0x" is the usual prefix to show it's hexadecimal, or if you're filling out 1 byte (2 hexdigits), you include a leading 0 on 0-F, not just A-F. If I saw a leading zero on an otherwise-ambiguous number, I'd assume it's octal (base 8​).
https://en.wikipedia.org/wiki/Hexadecimal is a good resource.
picolo
Hero Member
*****
Offline Offline

Activity: 1022
Merit: 500



View Profile
January 12, 2015, 10:11:07 PM
 #46

I think following is the best explanation to create a bitcoin address with pen and paper...

What does 'manually' mean, pen and paper only?
Pen and paper, calculator etc...

As long as it's not made by an application.

Pen and paper would take days.

http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html
This is ONE of the hashing algorithms (SHA-256) and this man says he could do 0.67 hashes per day.

The process of generating a bitcoin address by hand (pen and paper) would be the following.

1. roll a 6 sided dice 99 times.
2. write down each result, writing a "0" for every 6 that comes up.
3. take this long string of numbers from 0-5 and convert it from base 6 to base 10.
   a. This means starting from the first non-zero digit on the left, multiply it by 6 then add it to the next digit, then multiply by 6 then add to the next digit... etc. until you get a long number with digits from 0-9.
4. Now you will have to calculate the public key. This is more easily done if the private key (the long number you made) is in binary form (1 or 0) so convert the number to binary.
5. Use the ECDSA point doubling formula and point addition formula on the generator point to get the public key. This will probably take a few days.
6. Convert the public point's x and y value both into binary. Pad each of them with 0s on the left hand side in case they're shorter than 256.
7. add 00000100 to the far left, then the padded x, then the padded y.
8. follow the video I linked above to perform a single SHA256 on the binary string created in #7
9. once you get the single 256 bit binary string... you must then perform the RIPEMD160 hash algorithm on it.
10. once you get the 160 bit length hash from it, add 00000000 to the far left of it... hold this string for later. We will do two things to it.
11. perform a SHA256 on the string from #10, then perform ANOTHER SHA256 on the result. (double SHA256)
12. take the 32 bits on the far left of the result from #11 and add it to the far right of the result from #10
13. For every 8 zeros on the far left of the result of #12, write down a number 1 on a piece of paper. Then convert the left over bits to base 58 as per the bitcoin base 58 specification (it's slightly disorienting if you're doing by hand, as 0 is represented by 1, 1 is represented by 2, 57 is represented by z etc...)
14. now you have your bitcoin address. To format your private key in the widely used WIF format, perform #10-#13 on the binary private key from #4... except instead of sticking 8 zeroes to the far left, add 10000000 to it instead.

How many hours do you estimate it will take for someone quite fast but not exceptional?
Pages: « 1 2 [3]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!