Bitcoin Forum
November 19, 2024, 07:27:37 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 »  All
  Print  
Author Topic: Bitcoin Wallet generation by hand  (Read 6768 times)
Sothh (OP)
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
September 02, 2013, 05:37:54 PM
 #1

Not sure this really belongs here, but I did not know where else to post it.

How difficult would it be to create a formula that allows one to create a private and public key using just paper and a pencil?

To me this would be the most secure possible method for making a wallet, as the private key will never have existed on a computer, even one thats offline.

Of course one would also need a hardware random number generator, but that can be easily done.  (Using dice, a falling pen, ect.)

I know the math has to be pretty extreme, so its just a thought.
bitfreak!
Legendary
*
Offline Offline

Activity: 1536
Merit: 1000


electronic [r]evolution


View Profile WWW
September 02, 2013, 06:17:05 PM
 #2

Well I imagine that creating the raw private key in hex format wouldn't be exceedingly difficult, but deriving the bitcoin address from the private key would be because there is hashing involved.

XCN: CYsvPpb2YuyAib5ay9GJXU8j3nwohbttTz | BTC: 18MWPVJA9mFLPFT3zht5twuNQmZBDzHoWF
Cryptonite - 1st mini-blockchain altcoin | BitShop - digital shop script
Web Developer - PHP, SQL, JS, AJAX, JSON, XML, RSS, HTML, CSS
str4wm4n
Legendary
*
Offline Offline

Activity: 1611
Merit: 1001


View Profile
September 03, 2013, 06:39:08 PM
 #3

I've wondered if this was possible myself...even if you could use a calculator
jackjack
Legendary
*
Offline Offline

Activity: 1176
Merit: 1280


May Bitcoin be touched by his Noodly Appendage


View Profile
September 03, 2013, 10:24:45 PM
 #4

Hashes are impossible by hand...
Wouldn't a LiveCD on an offline HDD-less PC enough?

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
tspacepilot
Legendary
*
Offline Offline

Activity: 1456
Merit: 1081


I may write code in exchange for bitcoins.


View Profile
September 04, 2013, 03:28:05 PM
 #5

Hashes are impossible by hand...
Wouldn't a LiveCD on an offline HDD-less PC enough?

I haven't looked at the details of the hashing algorithm used to generate the public address from the private key.  However, I don't think impossible is correct.  I mean, everything a computer does can (in principle) be simulated using a very long tape and a pencil (see universal Turing machine).

Im just saying, difficult/tedious != impossible.
yakov
Newbie
*
Offline Offline

Activity: 40
Merit: 0


View Profile
September 04, 2013, 04:00:47 PM
Last edit: September 04, 2013, 04:13:33 PM by yakov
 #6

Well only the public key needs to be hashed to create an address. You can safely type the public key into a computer to obtain an address.

All you need to do by hand is obtain a private key and derive the public key, NOT calculate the hash.
str4wm4n
Legendary
*
Offline Offline

Activity: 1611
Merit: 1001


View Profile
September 04, 2013, 05:05:41 PM
 #7

I am offering a 1btc bounty for someone who can demonstrate a repeatable method for calculating a private key using only paper pencil and brain
Sothh (OP)
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
September 04, 2013, 05:47:46 PM
Last edit: September 04, 2013, 06:01:23 PM by Sothh
 #8

I am offering a 1btc bounty for someone who can demonstrate a repeatable method for calculating a private key using only paper pencil and brain

Bounty noted.  I am actually working on it right now.

EDIT: Okay, I am ready to claim.  Since you said private key, and not a WIF key or public key, its actually pretty easy.

Here is the method, which requires two dice or any other randomizing method.  Roll the two six sided dice 64 times.  Right down the numbers like this:

If the number is 0-9 right now the number.  If the number is 10-12 right now a-c.  Do this with each roll of the dice and you will get a valid hex private key, such as A9 87 3C 79 B6 D8 70  A0 1B 61 57 78 63 33 89 B4 45 32 13 30 3A A6 1C 20 CC 67 2C 23 36 B3 32 62

This is a valid bitcoin private key.  Note that this does not use all the hex characters, and as such can not generate all possible private keys, but its easy to do with just two dice.

You could also buy a 16 sided dice or something and use 0-F which would be more proper.  If you do it this way, the max address you can use is FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141

str4wm4n
Legendary
*
Offline Offline

Activity: 1611
Merit: 1001


View Profile
September 04, 2013, 06:08:33 PM
 #9

nice! do you mind trying to work through some more things such as public key?
jackjack
Legendary
*
Offline Offline

Activity: 1176
Merit: 1280


May Bitcoin be touched by his Noodly Appendage


View Profile
September 04, 2013, 06:18:59 PM
Last edit: September 04, 2013, 06:44:05 PM by jackjack
 #10

Hashes are impossible by hand...
Wouldn't a LiveCD on an offline HDD-less PC enough?

I haven't looked at the details of the hashing algorithm used to generate the public address from the private key.  However, I don't think impossible is correct.  I mean, everything a computer does can (in principle) be simulated using a very long tape and a pencil (see universal Turing machine).

Im just saying, difficult/tedious != impossible.

You want to play with semantics?

Ok, let's play.

Let's take a human, the super-hero kind, who can:
 a/ Calculate a 32-bit operation in 10 seconds
 b/ Work from midnight to midnight everyday
 c/ Calculate a 32-bit operation without any errors

A hash takes about 5000 32-bit operations. So make it 10000 for ripemd160(sha256()).
That makes (10*10000) = 100k seconds = 38.4 hours = 1.6 day non-stop.
Possible.

Now here comes the fun.



This time we take a real human, the super smart kind.

A/ He calculates a 32-bit operation in 30 seconds (please try a 32-bit addition and tell me how much time it took)
This raises the total time to calculate one hash to 115.2 hours

B/ The guy must sleep, so he can "only" work from 8am to midnight.
This makes the total time to calculate one hash equal to 4.8 days.
Still possible.

C/ The lower brain failure rate in the best conditions is 5%. As he's super smart his is only 1%.
The probability of him finding the correct hash on one try is P = 1/2^(100000*1%) = 1/2^1000 ~ 1/10^300

D/ He starts the hashing calculation at birth and will stop at 100 years old.
This is (100*365) = 36500 days of calculation.
One try is 4.8 days, so he has 7604 tries available.
The odd of our super smart guy FINDING AT LEAST ONCE the correct hash in his entire lifetime is then:
  R = 1-Q where Q = (1-P)^7604 = ( 1 - 1/2^1000 )^7604

Basic maths gives that Q > 1 - 7604/2^1000 = 1 - 10^(-297.149) > 1 - 10^(-297)
So R < 10^(-297) < 1/2^986
Yes, R < 1/2^986



TLDR

It's easier to crack 6 different bitcoin addresses with only 6 guesses than to a human to calculate a correct bitcoin address hash in his lifetime
Yes, I call that impossible

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
Sothh (OP)
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
September 04, 2013, 06:28:38 PM
 #11

@jackjack,

Yep.  So I guess that answers all this.  Its not possible to create a public key without some form of computer.

@str4wm4n,

Technically I still fulfilled the requirements for your bounty. My address: 1Hd9sBNf8Z892jRGgrTzL9EuVUEhjfJvVc

 Grin
jackjack
Legendary
*
Offline Offline

Activity: 1176
Merit: 1280


May Bitcoin be touched by his Noodly Appendage


View Profile
September 04, 2013, 06:42:45 PM
 #12

@jackjack,

Yep.  So I guess that answers all this.  Its not possible to create a public key without some form of computer.

I was only talking about hashes though, you could follow this post:
Well only the public key needs to be hashed to create an address. You can safely type the public key into a computer to obtain an address.

All you need to do by hand is obtain a private key and derive the public key, NOT calculate the hash.


If you are REALLY motivated you can do it in a few days I think

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
BombaUcigasa
Legendary
*
Offline Offline

Activity: 1442
Merit: 1005



View Profile
September 04, 2013, 06:58:18 PM
 #13

http://cs.ucsb.edu/~koc/ccs130h/notes/ecdsa-cert.pdf
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
BombaUcigasa
Legendary
*
Offline Offline

Activity: 1442
Merit: 1005



View Profile
September 04, 2013, 07:05:26 PM
 #14

Technically I still fulfilled the requirements for your bounty. My address: 1Hd9sBNf8Z892jRGgrTzL9EuVUEhjfJvVc
Is this the public key you obtained from the private key you posted? How did you do it on paper?
Sothh (OP)
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
September 04, 2013, 07:08:44 PM
 #15

Technically I still fulfilled the requirements for your bounty. My address: 1Hd9sBNf8Z892jRGgrTzL9EuVUEhjfJvVc
Is this the public key you obtained from the private key you posted? How did you do it on paper?

No, but he offered the bounty for just the private key.
BombaUcigasa
Legendary
*
Offline Offline

Activity: 1442
Merit: 1005



View Profile
September 04, 2013, 07:57:39 PM
 #16

Technically I still fulfilled the requirements for your bounty. My address: 1Hd9sBNf8Z892jRGgrTzL9EuVUEhjfJvVc
Is this the public key you obtained from the private key you posted? How did you do it on paper?

No, but he offered the bounty for just the private key.
Where?

Topic: Bitcoin Wallet generation by hand  (Read 207 times)

How difficult would it be to create a formula that allows one to create a private and public key using just paper and a pencil?

PROTIP: The private key is super easy to calculate compared to the public key complexity: https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses

https://i.imgur.com/f1zd9uE.png
Sothh (OP)
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
September 04, 2013, 08:02:34 PM
 #17

Technically I still fulfilled the requirements for your bounty. My address: 1Hd9sBNf8Z892jRGgrTzL9EuVUEhjfJvVc
Is this the public key you obtained from the private key you posted? How did you do it on paper?

No, but he offered the bounty for just the private key.
Where?

Topic: Bitcoin Wallet generation by hand  (Read 207 times)

How difficult would it be to create a formula that allows one to create a private and public key using just paper and a pencil?

PROTIP: The private key is super easy to calculate compared to the public key complexity: https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses

https://i.imgur.com/f1zd9uE.png

I am offering a 1btc bounty for someone who can demonstrate a repeatable method for calculating a private key using only paper pencil and brain
str4wm4n
Legendary
*
Offline Offline

Activity: 1611
Merit: 1001


View Profile
September 04, 2013, 08:38:24 PM
 #18

paid the bounty, now how can i get a public key with not using a computer, nearly impossible I gather?
Sothh (OP)
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
September 04, 2013, 09:00:26 PM
 #19

paid the bounty, now how can i get a public key with not using a computer, nearly impossible I gather?

...I was not serious, but thanks man!

Loads of rep to you.

It does look nearly impossible, though if you generate it by hand (because its the best random number generation possible) and then get the public key on an offline machine then you should be fine.
jackjack
Legendary
*
Offline Offline

Activity: 1176
Merit: 1280


May Bitcoin be touched by his Noodly Appendage


View Profile
September 04, 2013, 10:03:26 PM
 #20

paid the bounty, now how can i get a public key with not using a computer, nearly impossible I gather?
Absolutely impossible unless you are god
https://bitcointalk.org/index.php?topic=286534.msg3081885#msg3081885

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
Pages: [1] 2 3 4 »  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!