Bitcoin Forum
July 02, 2024, 07:22:36 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Codice per generare indirizzo in C  (Read 1715 times)
il_minatore (OP)
Sr. Member
****
Offline Offline

Activity: 292
Merit: 250



View Profile
January 01, 2017, 08:54:56 PM
 #1

Buonasera,
sapreste darmi qualche indicazione per scrivere un banale programma in C che generi un indirizzo BTC?

i "passaggi" per generare l'indirizzo dalla chiave privata li ho trovati (e capiti poco dato che non so nulla di crittografia), per quanto invece riguarda lo "start" sono fermo al fatto che devo che dveo importare le librerie openssl. Avreste della documentazione (meglio se in italiano) per partire?

Grazie
picchio
Legendary
*
Offline Offline

Activity: 2506
Merit: 1120



View Profile
January 01, 2017, 10:21:26 PM
 #2

Buonasera,
sapreste darmi qualche indicazione per scrivere un banale programma in C che generi un indirizzo BTC?

i "passaggi" per generare l'indirizzo dalla chiave privata li ho trovati (e capiti poco dato che non so nulla di crittografia), per quanto invece riguarda lo "start" sono fermo al fatto che devo che dveo importare le librerie openssl. Avreste della documentazione (meglio se in italiano) per partire?

Grazie
Prova a copiare da https://github.com/samr7/vanitygen fa questo e anche molto altro ...

Waves mi piaceva ora non più.
il_minatore (OP)
Sr. Member
****
Offline Offline

Activity: 292
Merit: 250



View Profile
January 01, 2017, 11:21:52 PM
 #3

Si ho già dato un'occhiata, ma speravo di riuscire a trovare qualche spiegazione più dettagliata che sta a monte del tutto...
ziomik
Legendary
*
Offline Offline

Activity: 1946
Merit: 1009


SELL bitcoinmarket.net | bitcoinitalia.com SELL


View Profile WWW
January 02, 2017, 07:56:59 AM
 #4

0 - Having a private ECDSA key

   18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
1 - Take the corresponding public key generated with it (65 bytes, 1 byte 0x04, 32 bytes corresponding to X coordinate, 32 bytes corresponding to Y coordinate)

   0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A 299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
2 - Perform SHA-256 hashing on the public key

   600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
3 - Perform RIPEMD-160 hashing on the result of SHA-256

   010966776006953D5567439E5E39F86A0D273BEE
4 - Add version byte in front of RIPEMD-160 hash (0x00 for Main Network)

   00010966776006953D5567439E5E39F86A0D273BEE
(note that below steps are the Base58Check encoding, which has multiple library options available implementing it)
5 - Perform SHA-256 hash on the extended RIPEMD-160 result

   445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
6 - Perform SHA-256 hash on the result of the previous SHA-256 hash

   D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
7 - Take the first 4 bytes of the second SHA-256 hash. This is the address checksum

   D61967F6
8 - Add the 4 checksum bytes from stage 7 at the end of extended RIPEMD-160 hash from stage 4. This is the 25-byte binary Bitcoin Address.

   00010966776006953D5567439E5E39F86A0D273BEED61967F6
9 - Convert the result from a byte string into a base58 string using Base58Check encoding. This is the most commonly used Bitcoin Address format

   16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

DOMINI IN VENDITA/NOLEGGIO
bitcoinmarket.net | bitcoinitalia.com

Contattatemi pure per info.
---- +++ ----
"Se domani senti due massaie che parlano di bitcoin tra di loro dal macellaio, forse e' il momento di vendere.. se pero' le sentirai fra 10 anni forse staranno solo pagando il conto" GBianchi
---- +++ ----
il_minatore (OP)
Sr. Member
****
Offline Offline

Activity: 292
Merit: 250



View Profile
January 03, 2017, 09:40:58 PM
 #5

Dite che se parto dalle chiavi generate con questa libreria ottengo un risultato corretto?

https://www.cryptopp.com/wiki/Elliptic_Curve_Digital_Signature_Algorithm#Private_Key_2

Grazie
il_minatore (OP)
Sr. Member
****
Offline Offline

Activity: 292
Merit: 250



View Profile
January 03, 2017, 10:10:54 PM
 #6

altra domanda.. Per avere un indirizzo in formato "compressed" devo partire da una chiave privata in formato "compressed" oppure no?
TheBomber999
Legendary
*
Offline Offline

Activity: 1274
Merit: 1001


"shh, he's coding..."


View Profile
January 04, 2017, 03:11:43 PM
 #7

altra domanda.. Per avere un indirizzo in formato "compressed" devo partire da una chiave privata in formato "compressed" oppure no?

no, son due cose distinte e indipendenti

You either die a developer, or live long enough to see yourself become the scammer.
O muori da programmatore, o vivi tanto a lungo da diventare uno scammer.
centurionMiner
Sr. Member
****
Offline Offline

Activity: 401
Merit: 251

Still learning


View Profile WWW
April 05, 2017, 08:47:51 PM
 #8

Buonasera,
sapreste darmi qualche indicazione per scrivere un banale programma in C che generi un indirizzo BTC?

i "passaggi" per generare l'indirizzo dalla chiave privata li ho trovati (e capiti poco dato che non so nulla di crittografia), per quanto invece riguarda lo "start" sono fermo al fatto che devo che dveo importare le librerie openssl. Avreste della documentazione (meglio se in italiano) per partire?

Grazie

per installare da linux-> sudo apt-get install openssl libssl*

oppure puoi compilarli direttamente da terminale:

wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
tar -xzvf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e
./configure
make

\-> http://steneumpool.ddns.net/stats <-/       \-> http://campuspool.ddns.ne/stats <-/      \-> http://godserver.ddns.net <-/       \-> https://electroneum-classic.ddns.net <-/
                          Steneum-Pool                                                        CampusCoin-Pool                    .                          MultiPool                 .                Electroneum-Classic [DEDICATED]
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!