Author

Topic: Chiave pubblica e Chiave privata: chiarimenti (Read 336 times)

legendary
Activity: 1932
Merit: 2077
jr. member
Activity: 64
Merit: 8
ma quanto è davvero reale la possibilità che una piattaforma di scambio, tipo GDAX per inenderci, da un giorno all'altro ci freghi tutti e blocchi wallet, transazioni e compagnia bella?

https://it.wikipedia.org/wiki/Mt._Gox

Inquietante
member
Activity: 113
Merit: 12


Quindi tutti quegli indirizzi sono miei? E come mai ne ho così tanti?

il numero possibile di chiavi generabili è un numero infinitamente grande, non c'è necessità di andare "al risparmio" e si fa per "sicurezza":
 la buona norma vuole che un indirizzo btc quando viene usato in uscita, siccome in uscita pubblica la sua chiave pubblica sia "meno sicuro" (tra 20 anni un computer quantistico potrebbe forzare l'algoritmo di cifratura e potrebbe risalire alla privata, ma è mooooolto teorico e paranoico come discorso)

e quindi ciò che rimane va messo in un altro che non sia mai stato usato in uscita, ma ti ripeto, è un discorso prettamente paranoico
sr. member
Activity: 490
Merit: 353
this is not a bounty avatar
ma quanto è davvero reale la possibilità che una piattaforma di scambio, tipo GDAX per inenderci, da un giorno all'altro ci freghi tutti e blocchi wallet, transazioni e compagnia bella?

https://it.wikipedia.org/wiki/Mt._Gox
jr. member
Activity: 64
Merit: 8
salve a tutti, mi unisco anche io alla discussione, anche io da completo niubbio.
Aggiungo una domanda al discorso: ma quanto è davvero reale la possibilità che una piattaforma di scambio, tipo GDAX per inenderci, da un giorno all'altro ci freghi tutti e blocchi wallet, transazioni e compagnia bella? Intendiamoci, io faccio scalping su GDAX con somme modeste, 1-2 litecoin a volta. Uno deve davvero preoccuparsi ogni volta di ritirare in fretta fiat o trasferire crypto su wallet personali e sicuri?

Per la cronaca sto avendo molti problemi con Bitgrail, piccola transazione di eth, confermata in blockchain, non ancora depositata dopo 5 giorni, nessuno risponde al supporto. O.o In effeti leggendo anche le vostri opinioni inizio a fare 2+2 e un po' di preoccupazione comincio ad averla. Del resto però uno se vuole comprare crypto alternative tipo raiblocks da qualcuno deve pure andare...
jr. member
Activity: 70
Merit: 4
Ti ringrazio, sei stato molto chiaro.
Solo un ultimo dubbio ...

Quindi data una coppia di chiavi (pubblica,privata)=(a,a') vi posso associare UN SOLO indirizzo r?


Edit

Su electrum per esempio c'è un elenco di indirizzi ... Ad ognuno è associato quindi una sola coppia di chiavi (a indirizzo diverso corrisponde coppia di chiavi diverse, mi pare di capire).

Quindi tutti quegli indirizzi sono miei? E come mai ne ho così tanti?
member
Activity: 113
Merit: 12


Mi avevano scritto da qualche parte che esiste un file .dat che contiene le chiavi e che il wallet genera. Dove sarebbero questi file? Ad esempio, io ho linux.  Dove li trovo?


Quindi in sostanza, se le coins A,B,C funzionano tutte con la stessa blockchain alpha, allora mi basta una coppia di chiavi x per tenere tutte e tre le coins A,B,C?

Invece se ho delle coins D,E,F che funzionano con un'altra blockchain beta, mi servirà una diversa coppia di chiavi y, giusto?


Una volta che ho  un numero N di coins A e M di coins B sulla mia coppia di chiavi x, ovviamente non posso cambiare la chiave pubblica né quella privata ivi associate (cioè quelle x), giusto? O al più posso cambiare quella pubblica, ma non quella privata. Giusto?


Volevo chiedervi se esiste un paper ufficiale o qualcosa del genere dove è spiegato tutto ciò che chiedo.


Vi ringrazio ancora, Forum davvero efficiente.


PS

Ad un indirizzo, chiamiamolo a, è associato un saldo r. Quindi il saldo r lo trovo in corrispondenza dell'indirizzo a, che a sua volta posso trovare in corrispondenza della chiave pubblica x che è associata all'indirizzo a.

Ultima domanda: ho visto gli indirizzi associati alla coppia di chiavi pubblica/privata. Quindi io posso utilizzare uno QUALSIASI di questi indirizzi per inviare BTC nel mio wallet (chiavi pub/priv) e comunque i coin li avrò sempre associati a quella coppia di chiavi? Quindi posso disinteressarmi di salvare l'indirizzo, mi serve solo la coppia di chiavi?

Esempio

mando 4 BTC all'indirizzo a associato alla coppia di chiavi x.
Mando 3 BTC all'indirizzo b associato alla stessa coppia di chiavi.

Quindi su quel wallet avrò 4-3=7 BTC in tutto, giusto? Mi basta salvare le chiavi?

L'indirizzo mi serve per questione di privacy e sicurezza, in pratica così non ''scopro'' mai la chiave pubblica. Tuttavia ad una chiave privata posso associare più chiavi pubbliche?

- Non saprei con precisione, vedi se esiste ~/.bitcoin/wallet.dat

- Si, ma in genere una blockchain è relativa a una sola valuta! Non ci sono che io sappia 3 diverse coin su una stessa blockchain, il tuo esempio non è presente nel mondo crypto (fork a parte)

- Di conseguenza al punto di sopra, il caso più frequente è che hai A,B,C,D,E valute e (a,a'),(b,b')...(e,e') coppie di chiavi (con a indirizzo/publ key e a' privata)

- Se hai N Acoin e M Bcoins, le avrai rispettivamente sull'indirizzo a (che avrà una sua chiave privata a') e l'indirizzo b (che avra b' come private key).
Non esiste una coppia di chiavi x che contiene entrambe le monete. Se parliamo dei token ERC20 di ethereum allora sì (un indirizzo ethereum, con relativa private key, può contenere un'infinità di token erc20 oltre alla vera moneta ETH, ma questo è un altro discorso).
Le coppie di chiavi non si cambiano. Puoi creare però ulteriori coppie c,c'; d,d'.... per ognuna delle due coin (puoi farlo sia per il coin A che il coin B e se vuoi trasferisci i fondi ai nuovi indirizzi). Le chiavi sono immutabili una volta generate rimangono, la quantità di chiavi generabili è impensabile.

- Il funzionamento è spiegato anche solo nei video introduttivi su bitcoin, lo stesso funzionamento è pressoché uguale per tutte le coin.

Risposte dopo il PS:

- Questo passaggio ti è trasparente, non sarà un tuo "dovere" fare questa operazione. Anzi, ogni client ti terrà nascosta la chiave pubblica e si occuperà di:
1) generare una private key del tipo L249329kfakdsadas
2) da questa ottenere la chiave pubblica 1shduashfisahuifhsa
3) da questa si ricava l'indirizzo 1mlmlmlmsda
e tu quando genererai un nuovo indirizzo di ricezione bitcoin vedrai solo 1mlmlmlmsda. e se vorrai potrai esportare la chiave privata.
Il saldo r viene associato all'indirizzo a. Se quel saldo dovrà/vvorrà essere speso servirà utilizzare la chiave privata per firmare la nuova transazione.


Ti sfugge una cosa fondamentale:
1 indirizzo = 1 coppia di chiavi.
L'indirizzo BTC è un "riassunto" della chiave pubblica. È UNICO per coppia di chiavi!

Mandi 4 BTC all'indirizzo a associato alla coppia di chiavi x
Mandi 3 BTC all'indirizzo b associato alla stessa coppia di chiavi x sbagliato, l'indirizzo b=a

Avrai 7 BTC sull'indirizzo a.
Se non prevedi di spendere ma di conservarli per anni, ti segni la chiave privata di a su carta (basta solo quella, la pubblica e quindi l'address vengono generati dalla privata), metti il foglio in cassaforte e disinstalli tutto. È tutto ciò che ti servirà.

Ti avevo fatto l'esempio dei lucchetti, una chiave sola può aprire più lucchetti? Ovviamente no! (senza estremizzare  Grin )

è chiaro?
jr. member
Activity: 70
Merit: 4
Ti ringrazio davvero, mi hai chiarito un sacco di cose che altrove spiegavano confusamente (forse neanche loro lo sapevano).

Mi avevano scritto da qualche parte che esiste un file .dat che contiene le chiavi e che il wallet genera. Dove sarebbero questi file? Ad esempio, io ho linux.  Dove li trovo?


Quindi in sostanza, se le coins A,B,C funzionano tutte con la stessa blockchain alpha, allora mi basta una coppia di chiavi x per tenere tutte e tre le coins A,B,C?

Invece se ho delle coins D,E,F che funzionano con un'altra blockchain beta, mi servirà una diversa coppia di chiavi y, giusto?


Una volta che ho  un numero N di coins A e M di coins B sulla mia coppia di chiavi x, ovviamente non posso cambiare la chiave pubblica né quella privata ivi associate (cioè quelle x), giusto? O al più posso cambiare quella pubblica, ma non quella privata. Giusto?


Volevo chiedervi se esiste un paper ufficiale o qualcosa del genere dove è spiegato tutto ciò che chiedo.


Vi ringrazio ancora, Forum davvero efficiente.


PS

Ad un indirizzo, chiamiamolo a, è associato un saldo r. Quindi il saldo r lo trovo in corrispondenza dell'indirizzo a, che a sua volta posso trovare in corrispondenza della chiave pubblica x che è associata all'indirizzo a.

Ultima domanda: ho visto gli indirizzi associati alla coppia di chiavi pubblica/privata. Quindi io posso utilizzare uno QUALSIASI di questi indirizzi per inviare BTC nel mio wallet (chiavi pub/priv) e comunque i coin li avrò sempre associati a quella coppia di chiavi? Quindi posso disinteressarmi di salvare l'indirizzo, mi serve solo la coppia di chiavi?

Esempio

mando 4 BTC all'indirizzo a associato alla coppia di chiavi x.
Mando 3 BTC all'indirizzo b associato alla stessa coppia di chiavi.

Quindi su quel wallet avrò 4-3=7 BTC in tutto, giusto? Mi basta salvare le chiavi?

L'indirizzo mi serve per questione di privacy e sicurezza, in pratica così non ''scopro'' mai la chiave pubblica. Tuttavia ad una chiave privata posso associare più chiavi pubbliche?
member
Activity: 113
Merit: 12


1)Esiste la possibilità che qualche coppia di chiavi pubblica-privata possa contenere più coin di diverso tipo, ad esempio sia A che B.

2)Questo è per tutelare la privacy? Perché in quel wallet (che alla fine se ho capito bene è la coppia di chiavi, semplicemente) la chiave pubblica è quella e non posso cambiarla, a differenza dell'indirizzo?


3)Dove posso trovare al discussione di cui parli?


Un'altra cosa.
4)Dove trovo le chiavi pubblica-privata del mio wallet? Ad esempio, con Electrum.
5)È conveniente conservare SOLO la coppia di chiavi pubblica-privata e il seed ivi associato (magari annotando tutto su un foglio di carta) e quindi si può stare al sicuro che i nostri coin non verranno né rubati né persi?

1) No, le chiavi sono registrate in una blockchain specifica, relativa al coin A, B o C. Caso particolare le fork, che vengono fatte a partire da una blockchain già esistente e permette di ottenere la nuova coin con la stessa chiave privata (ma diverso indirizzo).

2) Anche, ma più che per privacy, per maggior sicurezza. Il wallet è un contenitore di coppie di chiavi (pubblica,privata) e dalla pubblica si ottiene l'indirizzo. Per semplicità puoi anche ASSUMERE che la chiave pubblica SIA l'indirizzo così non ti confondi le idee Wink. Nient'altro, è un software che gestisce tutte le tue coppie di chiavi. La coppia di chiavi è come il tuo portafogli che hai addosso. Il wallet è uno scatolone pieno di portafogli (ne puoi generare tanti) e ogni portafoglio conterrà btc.

3) non mi ricordo ma cerca, un utente ha fatto questa spiegazione fantastica con l'esempio dei portafogli e delle banconote

4) in addresses trovi i tuoi indirizzi. se clicchi col destro puoi visualizzare la chiave privata. la pubblica non so dove si può vedere, ma non è un'info necessaria...per riottenere moneta basta solo la privata (la pubblica viene generata da questa e dalla pubblica l'indirizzo)

5) si, in teoria puoi generare una volta sola una coppia di chiavi pubblica e privata, segnartele su carta (ti ripeto SERVE L'INDIRIZZO, non la chiave pubblica) e disinstallare ogni tipo di software/wallet/ecc...ogni pagamento te lo farai sull'indirizzo e tra 50 anni se deciderai di spendere scaricherai un wallet e inserirai la tua chiave privata ritrovandoti i btc sani e salvi
jr. member
Activity: 70
Merit: 4
Quindi in pratica ci vuole una coppia di chiavi pubblica-privata per ogni tipo di coin A,B,C, ...

Esiste la possibilità che qualche coppia di chiavi pubblica-privata possa contenere più coin di diverso tipo, ad esempio sia A che B.

Invece è conveniente generare gli indirizzi per i pagamenti in entrata (che ricevo). Ad esempio, ricevo coin di tipo A allora uso la coppia di chiavi x, genero l'indirizzo associato e mi faccio pagare tramite quell'indirizzo. Questo è per tutelare la privacy? Perché in quel wallet (che alla fine se ho capito bene è la coppia di chiavi, semplicemente) la chiave pubblica è quella e non posso cambiarla, a differenza dell'indirizzo?


Dove posso trovare al discussione di cui parli?


Un'altra cosa.
Dove trovo le chiavi pubblica-privata del mio wallet? Ad esempio, con Electrum.
È conveniente conservare SOLO la coppia di chiavi pubblica-privata e il seed ivi associato (magari annotando tutto su un foglio di carta) e quindi si può stare al sicuro che i nostri coin non verranno né rubati né persi?
member
Activity: 113
Merit: 12


Ora invece vorrei chiedervi: come genero la coppia chiave pubblica/chiave privata col mio wallet? È necessario/consigliabile creare sempre coppie nuove di chiavi pubbliche/private per ogni coin che compro/vendo? Anche se sono lo stesso tipo di coin?

Ad esempio, compro 10 coin del tipo A e li metto nel mio wallet mandandoli all'indirizzo associato alla coppia di chiavi pubblica/privata x. Poi compro 5 coin del tipo B e quindi, anche se in teoria si potrebbero mandare nello stesso indirizzo della coppia x, è consigliabile mandarli in un nuovo indirizzo con coppia di chiavi associata y? E lo stesso ragionamento sarebbe valido anche nel caso che i coin fossero gli stessi (A=B)?

In pratica, il wallet è un programma che mi permette di crearmi coppie di chiavi pubblica-privata con indirizzi ivi associati e quindi più che ''wallet'' il programma è una specie di ''configurazione dl wallet'' che in realtà altri non è che la coppia di chiabi pubblica-privata?


Quali sono le transazioni che vengono registrate nella blockchain? E quali transazioni NON vengono registrate nella blockchain?

1) se ne occupa il wallet, esiste un algoritmo che genera le coppie.


2)è teoricamente più sicuro ricevere solamente pagamenti su un indirizzo, e svuotarlo dopo aver effettuato pagamenti in uscita (perché si rivela la chiave pubblica).
dico teoricamente più sicuro perché a oggi è ancora troppo difficile bucare una chiave pubblica quindi in pratica il livello di sicurezza è pressoché uguale a un indirizzo solo usato per pagamenti in entrata e in uscita. ci perdi un po' in privacy.


3) attenzione, per una coin A serve un indirizzo di tipo A, per un'altra coin serve un altro indirizzo generato con un altro wallet!! NON puoi mandare bitcoin su un indirizzo ethereum ad esempio, ogni sua coin ha un suo tipo di indirizzo (e wallet, ma esistono wallet che supportano diverse coin).
Per il tuo esempio:
compri 10 coin di tipo A, le mandi sull'indirizzo del wallet della coin A di tipo x. Se ne compri 5 di tipo B, non puoi mandarle su x o rischi di perderle per sempre (o ti avvisa l'exchange in fase di ritiro che l'indirizzo x non è adatto per le coin B), devi scaricarti il wallet di B e generare l'indirizzo y. SE A=B allora va bene sia mandarli su x che su x e y (come preferisci tu), ci sta un topic in cui questo discorso degli indirizzi multipli è spiegato bene.

4) sulla blockchain vanno tutte le transazioni. se non vengono registrate (per motivi ad esempio fees troppo basse) non possiederai le monete coinvolte nella transazione fino a quando non verrà inclusa nella blockchain (nel caso di un pagamento a tuo favore)
jr. member
Activity: 70
Merit: 4
Permettetemi di iniziare le mie risposte ringraziandovi tutti: siete stati davvero molto chiari nell'esposizione dei concetti.

Dunque la stringa che vedo su coinbase (esempio) è l'indirizzo, che è derivato dalla chiave pubblica associata alla chiave privata dei gestori di coinbase. Se voglio trasferire i coin nel mio wallet quindi devo fare una transazione usando l'indirizzo associato al mio wallet (associato alla chiave pubblica-privata da me creata).

Ora mi è tutto chiaro  Cheesy Le spiegazioni confuse che leggevo in giro erano del tutto illogiche. Ma adesso torna tutto ed è tutto ragionevole. Almeno fin qui.

Ora invece vorrei chiedervi: come genero la coppia chiave pubblica/chiave privata col mio wallet? È necessario/consigliabile creare sempre coppie nuove di chiavi pubbliche/private per ogni coin che compro/vendo? Anche se sono lo stesso tipo di coin?

Ad esempio, compro 10 coin del tipo A e li metto nel mio wallet mandandoli all'indirizzo associato alla coppia di chiavi pubblica/privata x. Poi compro 5 coin del tipo B e quindi, anche se in teoria si potrebbero mandare nello stesso indirizzo della coppia x, è consigliabile mandarli in un nuovo indirizzo con coppia di chiavi associata y? E lo stesso ragionamento sarebbe valido anche nel caso che i coin fossero gli stessi (A=B)?

In pratica, il wallet è un programma che mi permette di crearmi coppie di chiavi pubblica-privata con indirizzi ivi associati e quindi più che ''wallet'' il programma è una specie di ''configurazione dl wallet'' che in realtà altri non è che la coppia di chiabi pubblica-privata?


Quali sono le transazioni che vengono registrate nella blockchain? E quali transazioni NON vengono registrate nella blockchain?
member
Activity: 113
Merit: 12
volendo generalizzare il tutto in maniera semplice:

la chiave pubblica è un lucchetto, la chiave privata è la chiave che apre il lucchetto.

vengono generate insieme, dai wallet che scarichi su pc (e le chiavi sono TUE).

quando qualcuno ti paga o vuoi essere pagato, fornisci il "lucchetto" che verrà usato per chiudere il forziere con i soldi dentro. quelli sono soldi esclusivamente tuoi, perché per poterli spendere devi aprire il forziere con la chiave privata che è solo in tuo possesso.

il come si creano è un discorso matematico particolare, ma accontentati del fatto che le puoi generare con un tuo wallet in maniera illimitata (es: Electrum)
e ad ogni chiave pubblica corrisponde una sola chiave privata.

per quanto riguarda gli exchange, tu compri una "promessa" come ti hanno detto, ma non sono ancora soldi in tuo possesso, lo diventeranno quando deciderai di ritirare dall'exchange (e ti verrà chiesto un indirizzo solo tuo -> il tuo lucchetto personale; in verità l'address è un hash della chiave pubblica ma qui andiamo nel dettaglio). Mentre l'indirizzo che ti danno per depositare è il loro, se versi dei btc su quell'indirizzo, i btc diventeranno di loro "proprietà" seppur associati ancora a te. (un po' come quando depositi in banca 50 euro, quella stessa banconota diventerà di loro possesso e la useranno a loro comodo, ma è associata a te, se deciderai di ritirare 50 euro lo faranno, ma dandoti un'altra banconota)
newbie
Activity: 126
Merit: 0
Perché compro una promessa?

E come si creano la chiave pubblica e privata?

Allora la piattaforma mi fornisce una chiave pubblica associata ad una chiave privata.

NO. La piattaforma ti fornisce un indirizzo (che è SUO, non tuo!) su cui depositare

E qui ho la prima domanda: dove trovo questa la chiave privata?

Da nessuna parte... infatti le chiavi sono dell'exchange, che se ne guarda bene dal darle a te: quando depositi stai di fatto trasferendo la proprietà delle tue coin a una terza parte che in teoria si impegna a restituirtele su richiesta. Sempre che nel frattempo non fallisca, o venga hackerata, o decida di scappare con la cassa, ecc. Il discorso in realtà è analogo al deposito di contanti in banca, con la differenza che per gli exchange non esistono tutele, né bail-in con fondi di garanzia, ecc.
In poche parole: mai fidarsi a lasciare bitcoin o altcoin su exchange, se non per lo stretto tempo necessario ad una compravendita. Un exchange non è un wallet!

Devi scaricarti un wallet e installartelo sul pc. Qui trovi delle comparazioni tra i vari disponibili: https://bitcoin.org/en/choose-your-wallet

Spiegazione da manuale  Cheesy
legendary
Activity: 3808
Merit: 2044
Perché compro una promessa?

E come si creano la chiave pubblica e privata?

Allora la piattaforma mi fornisce una chiave pubblica associata ad una chiave privata.

NO. La piattaforma ti fornisce un indirizzo (che è SUO, non tuo!) su cui depositare

E qui ho la prima domanda: dove trovo questa la chiave privata?

Da nessuna parte... infatti le chiavi sono dell'exchange, che se ne guarda bene dal darle a te: quando depositi stai di fatto trasferendo la proprietà delle tue coin a una terza parte che in teoria si impegna a restituirtele su richiesta. Sempre che nel frattempo non fallisca, o venga hackerata, o decida di scappare con la cassa, ecc. Il discorso in realtà è analogo al deposito di contanti in banca, con la differenza che per gli exchange non esistono tutele, né bail-in con fondi di garanzia, ecc.
In poche parole: mai fidarsi a lasciare bitcoin o altcoin su exchange, se non per lo stretto tempo necessario ad una compravendita. Un exchange non è un wallet!

Devi scaricarti un wallet e installartelo sul pc. Qui trovi delle comparazioni tra i vari disponibili: https://bitcoin.org/en/choose-your-wallet
legendary
Activity: 1274
Merit: 1001
"shh, he's coding..."
Cominciamo dal chiamare le cose col proprio nome.

La piattaforma ti fornisce l'address, non la chiave pubblica.

Chiave pubblica != Address

Questa falsa convinzione che la chiave pubblica sia l'address deve morire Smiley
jr. member
Activity: 70
Merit: 4
Perché compro una promessa?

E come si creano la chiave pubblica e privata?
member
Activity: 80
Merit: 205
Quando compri su un exchange, non compri coin, compri una promessa.

Nel momento che li vorrai sul tuo wallet, loro, se esiteranno ancora, te li manderanno.

In quel momento avrai in mano i coin, con tutte le chiavi (che devi crearti preventivamente sul tuo wallet).

Inoltre il tuo acquisto non finisce il blockchain. Ogni exchange ha un mercato interno che fa incontrare domanda ed offerta (ecco perchè ogni exchange ha prezzi lievemente diversi).
jr. member
Activity: 70
Merit: 4
Salve a tutti, vorrei porvi delle domande sul funzionamento della chiave pubblica e della chiave privata.


Supponiamo che io mi registri su coinbase e che io voglia fare il mio primo acquisto di bitcoin. Allora la piattaforma mi fornisce una chiave pubblica associata ad una chiave privata. E qui ho la prima domanda: dove trovo questa la chiave privata?
Dopo ciò, compro i miei BTC e quindi questo significa che alla chiave X pubblica è stata registrata una transazione. Questo significa dunque che per muovere quei BTC associati a quella chiave pubblica devo utilizzare solo la chiave privata associata? E come fare?

Ammettiamo che io voglia trasferire i miei BTC nel mio wallet electrum desktop. Come si fa questa operazione passo-passo? Il wallet ha anch'esso una chiave pubblica, ma come fa ad essere associata anch'essa alla stessa chiave privata?

In teoria non dovrei avere UNA SOLA chiave privata per più chiavi pubbliche? E la stessa chiave privata non posso utilizzarla su più wallet?


Scusate le domande un po' imprecise, mi sto avvicinando al mondo delle criptovalute che già osservavo da anni, ma solo ora ho trovato il coraggio di farmi avanti.

Vi ringrazio anticipatamente.
Jump to: