Bitcoin Forum
May 24, 2024, 11:44:34 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: key questions  (Read 544 times)
mank (OP)
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
August 27, 2013, 02:01:26 AM
 #1

How does the system make the base 58 public addresses.  There is also a public key and private.  Those look to be in hex.  Does the system first come up with the 58 number or does it somehow work the other way?
Foxpup
Legendary
*
Offline Offline

Activity: 4368
Merit: 3045


Vile Vixen and Miss Bitcointalk 2021-2023


View Profile
August 27, 2013, 03:03:35 AM
 #2

It doesn't. Computers work in binary (base 2). The conversion to hex (base 16) or base58 or any other base happens later and is purely for the benefit of us humans.

Will pretend to do unspeakable things (while actually eating a taco) for bitcoins: 1K6d1EviQKX3SVKjPYmJGyWBb1avbmCFM4
I am not on the scammers' paradise known as Telegram! Do not believe anyone claiming to be me off-forum without a signed message from the above address! Accept no excuses and make no exceptions!
DannyHamilton
Legendary
*
Offline Offline

Activity: 3402
Merit: 4656



View Profile
August 27, 2013, 03:46:16 AM
 #3

First there is a 256 bit private key.  This private key may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

Then the computer computes a 256 bit public key.  This public key may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

Then the computer calculates a 256 bit SHA256 hash of the public key.  This SHA256 hash may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

Then the computer calculates a 160 bit RIPEMD-160 hash of the SHA256 hash value.  This RIPEMD-160 hash may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

Finally the computer calculates a 32 bit checksum of the RIPEMD-160 value.  This checksum may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

The computer concatenates a version number, the RIPEMD-160 hash, and the checksum.  This concatenated value is what is known as a Bitcoin Address.  It may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses
b!z
Legendary
*
Offline Offline

Activity: 1582
Merit: 1010



View Profile
August 27, 2013, 09:58:36 AM
 #4

First there is a 256 bit private key.  This private key may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

Then the computer computes a 256 bit public key.  This public key may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

Then the computer calculates a 256 bit SHA256 hash of the public key.  This SHA256 hash may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

Then the computer calculates a 160 bit RIPEMD-160 hash of the SHA256 hash value.  This RIPEMD-160 hash may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

Finally the computer calculates a 32 bit checksum of the RIPEMD-160 value.  This checksum may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

The computer concatenates a version number, the RIPEMD-160 hash, and the checksum.  This concatenated value is what is known as a Bitcoin Address.  It may be converted to Hex or Base58 for the purposes of display to humans in some cases, but internally the computer represents it in binary.

https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses

Very interesting read. I didn't know exactly how addresses are formed until I read this.
mank (OP)
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
September 05, 2013, 05:22:52 PM
 #5

OK on that.  What I am trying to d is write up a paper on all of this.  It is hard to do something will make sense to a laymen.  I can explain the public point to SHA 256 and then repmd 160 to base 58 so that a human can possibly remember it.  All of that is good.  The issue that is up front is in the wallet creation.  Not being a programmer I am looking at it and this does not make sense.  The main problem is that in looking at the code it first make a random seed of 64 bits.  Then it somehow does the Koblitz curve line private public set from this.  The public address is an 04 then two 256 bit line points.  Even though there are big endian they normally settle in a higher range on purpose by how the code is written.  I also cannot figure out how to decode this into the negative values.  Look at the signatures are here:

https://en.bitcoin.it/wiki/Protocol_specification

Then look at Satoshi zero here:

http://blockexplorer.com/block/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

Then the associated wallet for the 50 coins which has grown:

http://blockexplorer.com/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

 Jim over at multibit thinks that maybe Reiner can talk on this.  I am just wondering how to walk a laymen through this process to have it make sense.
Pages: [1]
  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!