Author

Topic: Più di una coppia di chiavi, perchè? (Read 190 times)

newbie
Activity: 11
Merit: 0
January 16, 2018, 02:51:07 AM
#9
Ora è tutto molto più chiaro, grazie!
jr. member
Activity: 31
Merit: 20
January 15, 2018, 11:36:25 AM
#8
Ciao, scusate ma mi mancava un pezzo! Ero convinto che tutte le transazioni avvenissero sempre su un indirizzo, per questo motivo mi chiedevo il senso di averne più di uno. In realtà questo è possibile ma la modalità standard dei vari wallet è che il resto arrivi su un indirizzo differente. Dico bene?

Un parallelismo tra Bitcoin e banconote cartacee può aiutarti a cogliere il meccanismo sottostante.

Nel mondo reale supponi di avere un portafoglio con dentro alcune banconote.

Nel mondo virtuale il tuo portafoglio è rappresentato da un bitcoin address (indirizzo).
Le banconote dentro il portafoglio sono rappresentate dai cosiddetti UTXO (Unspent Transaction Output).


Esattamente come una banconota cartacea, gli UTXO non sono frazionabili ma vanno sempre spesi interamente.
Gli UTXO sono quindi le banconote del sistema Bitcoin, ma a differenza delle banconote cartaceee essi possono contenere qualunque valore in bitcoin.

Cioè mentre nel mondo reale vi sono tagli fissi per le banconote (5, 10, 20, 50 Euro, etc), nel mondo del Bitcoin gli UTXO possono contenere qualunque valore (0.5, 0.03, 3.12, 0.00000234 bitcoins, etc)

Non solo, nel mondo del Bitcoin tu puoi avere decine di address, dunque decine di portafogli, ognuno dei quali può contenere decine di UTXO.

Quando tu fai un pagamento in bitcoin, il tuo software wallet sceglierà uno degli indirizzi (portafogli) che gestisce e userà per il pagamento uno o più UTXO (banconote) associati a quell'indirizzo.
Esattamente come al mercato tu scegli le banconote la cui somma porta alla cifra finale, il tuo software wallet sceglie gli UTXO da usare per il pagamento.

Se ti spetta un resto esso ti verrà restituito (sotto forma di UTXO) in uno dei tuoi indirizzi controllati dal software wallet.
Volendo puoi indicare al software wallet di versare il resto nello stesso address da cui hai speso i bitcoin (ma di default il resto come già detto viene versato in un indirizzo diverso).

In breve, da un punto di vista tecnico tu potresti possedere un unico address con il quale ricevi bitcoins (sottoforma di UTXO associati a quell'indirizzo) e dal quale disponi pagamenti (usando uno o più UTXO associati a quell'indirizzo) attendendoti che ti venga versato il resto nello stesso indirizzo.


Il fatto di usare abitualmente molteplici indirizzi permette una maggiore flessibilità ed una maggior privacy.
Vi è anche un ulteriore layer di sicurezza dovuto al fatto che indirizzi dai quali non sono mai usciti bitcoins non hanno mai esposto la loro chiave pubblica.
legendary
Activity: 2562
Merit: 2640
January 09, 2018, 06:43:08 AM
#7
newbie
Activity: 11
Merit: 0
January 09, 2018, 03:58:22 AM
#6
Ciao, scusate ma mi mancava un pezzo! Ero convinto che tutte le transazioni avvenissero sempre su un indirizzo, per questo motivo mi chiedevo il senso di averne più di uno. In realtà questo è possibile ma la modalità standard dei vari wallet è che il resto arrivi su un indirizzo differente. Dico bene?
legendary
Activity: 2562
Merit: 2640
January 08, 2018, 03:33:18 PM
#5
Sull'ultima parte della tua domanda invece:

..........
 Se per esempio uso 3 indirizzi generati per richiedere dei pagamenti avrò bitcon "sparpagliati" per 3 "conti" rappresentati dalle chiavi utilizzate, o sbaglio? certo poi saranno "aggregati" dal software del wallet... Così risulta anche complesso "trasportare" il wallet fra diverse piattaforme: windows, android, ... non mi è più sufficiente esportare/importare la chiave provata ma sono costretto a portarmi dietro o tutte le chiavi o l'intero wallet. Mi pare che questa gestione mi leghi molto al software di gestione e al seed generato piuttosto che alla chiave
Grazie

il motivo è proprio il contrario di quel che dici (scomodità).
All'inizio c'erano solo wallet che generavano N coppie di chiavi priv/pubbliche con il risultato che per fare il backup dovevi backuppare tutte quelle coppie, cosa decisamente scomoda (e pericolosa se ne dimenticavi qualcuna).
Sono quindi stati implementati algoritmi di tipo diverso (hierarchical deterministic)  che a partire dal seed generano tutte le coppie di chiavi che ti servono (googla bip 32 o bip 29).
Con questi wallet per farei lbackup non serve più backuppare la chiavi ma solo il seed ed è quindi molto più comodo.
legendary
Activity: 2506
Merit: 1120
January 08, 2018, 12:11:12 PM
#4
grazie per la risposta...
Quote
In pratica, quando spendi rilevi la pubblica ed è potenzialmente pericoloso.
Quindi: mai firmare nulla con address che hanno fondi e dare il resto su nuovo address quando si spende.
nb: Non è ancora pericolosissimo esporre la chiave pubblica ma meglio evitarlo.
ma perchè è potenzialmente pericoloso esporre la chiave pubblica? Dovrebbe essere impossibile risalire alla privata
grazie
Per ora si, pare che PC quantistici potrebbero violare la crittografia quindi si tratta di uno scrupolo puramente teorico, comunque avere la chiave pubblica significa che chi sta cercando a caso chiavi private con address "carichi di BTC" si risparmia un sacco di operazioni per capire se ha beccato l'indirizzo.
In linea di massima è astronomicamente improbabile che accada ma prima o poi potrebbe cambiare la questione e l'hanno studiata cosi' per migliorare la sicurezza.
Non ho trovato info in mertio ma la sostanza è quanto detto (salvo errori o dimenticanze mie, ovviamente).
EDIT: ho trovato questo: https://bitcoin.stackexchange.com/questions/20621/is-it-safe-to-reuse-a-bitcoin-address
newbie
Activity: 11
Merit: 0
January 08, 2018, 10:54:26 AM
#3
grazie per la risposta...
Quote
In pratica, quando spendi rilevi la pubblica ed è potenzialmente pericoloso.
Quindi: mai firmare nulla con address che hanno fondi e dare il resto su nuovo address quando si spende.
nb: Non è ancora pericolosissimo esporre la chiave pubblica ma meglio evitarlo.
ma perchè è potenzialmente pericoloso esporre la chiave pubblica? Dovrebbe essere impossibile risalire alla privata
grazie
legendary
Activity: 2506
Merit: 1120
January 08, 2018, 10:35:43 AM
#2
Ciao a tutti, c'è un argomento che non mi è per niente chiaro e avrei bisogno di una mano per capire. Premetto che sono nuovo del giro...
Il mio dubbio riguarda il "significato" della chiave privata: mi ero convinto, sbagliando probabilmente, che la chiave privata fosse l' "identificativo" del wallet e, di conseguenza, del suo contenuto e che, con questa informazione(la chiave), fosse possibile accedere da dovunque al wallet. Immaginavo che la chiave privata rappresentasse le coordinate del mio "conto corrente" invece software come Electrum al momento della creazione di un wallet non generano una sola coppia di chiave pubblica/privata ma una dozzina. Perchè ho la necessità di avere più di una coppia di chiavi, non ne basta una? Se per esempio uso 3 indirizzi generati per richiedere dei pagamenti avrò bitcon "sparpagliati" per 3 "conti" rappresentati dalle chiavi utilizzate, o sbaglio? certo poi saranno "aggregati" dal software del wallet... Così risulta anche complesso "trasportare" il wallet fra diverse piattaforme: windows, android, ... non mi è più sufficiente esportare/importare la chiave provata ma sono costretto a portarmi dietro o tutte le chiavi o l'intero wallet. Mi pare che questa gestione mi leghi molto al software di gestione e al seed generato piuttosto che alla chiave
Grazie
Secondo me hai capito tutto.
Ti manca il concetto di hash che dalla pubblica porta all'address. In pratica, quando spendi rilevi la pubblica ed è potenzialmente pericoloso.
Quindi: mai firmare nulla con address che hanno fondi e dare il resto su nuovo address quando si spende.
nb: Non è ancora pericolosissimo esporre la chiave pubblica ma meglio evitarlo.
Inoltre, per privacy, potresti decidere di suddividere i coin su più indirizzi quindi averne N a disposizione puo' essere utile.
Se preferisci usi solo un address, ti tieni una sola chiave privata e tutto dovrebbe funzionare.
newbie
Activity: 11
Merit: 0
January 08, 2018, 10:14:44 AM
#1
Ciao a tutti, c'è un argomento che non mi è per niente chiaro e avrei bisogno di una mano per capire. Premetto che sono nuovo del giro...
Il mio dubbio riguarda il "significato" della chiave privata: mi ero convinto, sbagliando probabilmente, che la chiave privata fosse l' "identificativo" del wallet e, di conseguenza, del suo contenuto e che, con questa informazione(la chiave), fosse possibile accedere da dovunque al wallet. Immaginavo che la chiave privata rappresentasse le coordinate del mio "conto corrente" invece software come Electrum al momento della creazione di un wallet non generano una sola coppia di chiave pubblica/privata ma una dozzina. Perchè ho la necessità di avere più di una coppia di chiavi, non ne basta una? Se per esempio uso 3 indirizzi generati per richiedere dei pagamenti avrò bitcon "sparpagliati" per 3 "conti" rappresentati dalle chiavi utilizzate, o sbaglio? certo poi saranno "aggregati" dal software del wallet... Così risulta anche complesso "trasportare" il wallet fra diverse piattaforme: windows, android, ... non mi è più sufficiente esportare/importare la chiave provata ma sono costretto a portarmi dietro o tutte le chiavi o l'intero wallet. Mi pare che questa gestione mi leghi molto al software di gestione e al seed generato piuttosto che alla chiave
Grazie
Jump to: