Author

Topic: Dubbio Blockchain - Transaction Block etc etc (Read 282 times)

jr. member
Activity: 31
Merit: 20
>>e/o deduzioni se uno degli indirizzi di output è un destinatario vero e proprio
>> oppure è una transazione di UTXO. Corretto?

Corretto, ma anche l'eventuale resto genera una nuova UTXO.
Ogni indirizzo di output genera una nuova UTXO (banconota), la quale verrà associata a quell'indirizzo (portafoglio).
Quelle UTXO verranno poi usate come input dai rispettivi proprietari per futuri pagamenti, comprese le UTXO associate ad un eventuale indirizzo di resto.   

Se l'indirizzo di resto non è mai stato usato puoi fare solo deduzioni basate sull'importo.
Se è già stato usato puoi usare uno dei tool indicati oppure puoi studiare la blockchain per cercare eventuali legami con altri indirizzi a te noti.
jr. member
Activity: 51
Merit: 1

Quindi se una transazione può avere piu output se ne ha 2 o 3 e cosi via non posso dire se uno di questi è un destinatario vero e proprio o è un nuovo indirizzo del mittente...
Ad esempio A precedentemente è stato il ricevente di 2 transazioni da 4 e 5 BTC, quindi il suo bilancio totale è di 9 BTC...
Se vedo una transazione in cui come input c'è A e output B e C per un totale di 9 BTC (supponiamo fee = 0) di cui 8 BTC a B e 1 BTC a C io esterno non posso dire se C è una terza persona oppure un nuovo indirizzo generato dal wallet di A.
Corretto?



Esatto, se l'indirizzo C è stato generato ex novo potrebbe essere un indirizzo di resto oppure un altro destinatario.

Nella realtà è abbastanza raro che una transazione non preveda resto per cui è ragionevolmente lecito assumere che uno degli indirizzi destinatari sia un indirizzo del mittente.

Esempio:
ind. B riceve 1.4 BTC
ind. C riceve 0.5 BTC
ind. D riceve 0.801345 BTC
ind. E riceve 0.1 BTC
fee  0.0058 BTC

la probabilità che D sia l'indirizzo di resto è alta per cui entra a far parte degli indirizzi sotto osservazione di chi indaga.

Certo teoricamente è possibile anonimizzare ulteriormente una transazione preparando una certa quantità di UTXO di ammontare rotondo, esattamente come se tu preparassi le esatte banconote e monete che ti servono per un pagamento in Euro, fee compresa.

Esempio:

input:
[]
UTXO ind. A = 0.01 BTC
UTXO ind. A = 1 BTC
UTXO ind. A = 0.4 BTC
UTXO ind. A = 0.5 BTC
UTXO ind. A = 0.1 BTC

output:
ind. B riceve 1.4 BTC
ind. C riceve 0.5 BTC
ind. E riceve 0.1 BTC
fee  0.01 BTC  (fee fissa che stabilisci tu)

In questo caso il problema del resto neanche si pone, hai pagato i tuoi creditori con i BTC precisi precisi....


Un altro modo per anonimizzare che preveda il resto consiste nel fare solo pagamenti di ammontare confondibile con esso (cioè con diversi decimali), ma questo ovviamente è abbastanza limitante...






Ok quindi in sostanza vedendo una transazione generica non posso dire con esattezza, se non con appositi tool,
Quote

e/o deduzioni se uno degli indirizzi di output è un destinatario vero e proprio oppure è una transazione di UTXO.
Corretto?
jr. member
Activity: 31
Merit: 20

Quindi se una transazione può avere piu output se ne ha 2 o 3 e cosi via non posso dire se uno di questi è un destinatario vero e proprio o è un nuovo indirizzo del mittente...
Ad esempio A precedentemente è stato il ricevente di 2 transazioni da 4 e 5 BTC, quindi il suo bilancio totale è di 9 BTC...
Se vedo una transazione in cui come input c'è A e output B e C per un totale di 9 BTC (supponiamo fee = 0) di cui 8 BTC a B e 1 BTC a C io esterno non posso dire se C è una terza persona oppure un nuovo indirizzo generato dal wallet di A.
Corretto?



Esatto, se l'indirizzo C è stato generato ex novo potrebbe essere un indirizzo di resto oppure un altro destinatario.

Nella realtà è abbastanza raro che una transazione non preveda resto per cui è ragionevolmente lecito assumere che uno degli indirizzi destinatari sia un indirizzo del mittente.

Esempio:
ind. B riceve 1.4 BTC
ind. C riceve 0.5 BTC
ind. D riceve 0.801345 BTC
ind. E riceve 0.1 BTC
fee  0.0058 BTC

la probabilità che D sia l'indirizzo di resto è alta per cui entra a far parte degli indirizzi sotto osservazione di chi indaga.

Certo teoricamente è possibile anonimizzare ulteriormente una transazione preparando una certa quantità di UTXO di ammontare rotondo, esattamente come se tu preparassi le esatte banconote e monete che ti servono per un pagamento in Euro, fee compresa.

Esempio:

input:
UTXO ind. A = 0.01 BTC
UTXO ind. A = 1 BTC
UTXO ind. A = 0.4 BTC
UTXO ind. A = 0.5 BTC
UTXO ind. A = 0.1 BTC

output:
ind. B riceve 1.4 BTC
ind. C riceve 0.5 BTC
ind. E riceve 0.1 BTC
fee  0.01 BTC  (fee fissa che stabilisci tu)

In questo caso il problema del resto neanche si pone, hai pagato i tuoi creditori con i BTC precisi precisi....


Un altro modo per anonimizzare che preveda il resto consiste nel fare solo pagamenti di ammontare confondibile con esso (cioè con diversi decimali), ma questo ovviamente è abbastanza limitante...



legendary
Activity: 3276
Merit: 3537
Nec Recisa Recedit
In soldoni non è possibile dire apriori se quello sia un resto (come hai detto giustamente te), ma devi vedere il "comportamento" a posteriori dei vari indirizzi.

per vedere quanto dici tu, ovvero se un indirizzo di resto sia o meno collegato con chi ha inviato si può utilizzare questo simpatico tool online: https://www.walletexplorer.com/
https://www.walletexplorer.com/wallet/cc822d686b65ec26
full member
Activity: 602
Merit: 144
In soldoni non è possibile dire apriori se quello sia un resto (come hai detto giustamente te), ma devi vedere il "comportamento" a posteriori dei vari indirizzi.
jr. member
Activity: 51
Merit: 1
Quote
Si è corretto, mi sembra che l' unico modo che si ha per capire che C sia un indirizzo di A, è quando A viene usato più volte come ricevente e non copre in una transazione in uscita tutti gli input ricevuti. Ma anche qui A potrebbe mandare gli input non spesi e non usati nella tx ad un altro indirizzo sempre sotto la stessa masterprivkey ad un indirizzo D che non si sa che sia di A e quindi spendo gli input su C prendendo gli input di C e di D. In questo caso non posso dire che C e D appartengono ad A ma posso dire che C e D sono sotto la stessa persona e, se si capisce che C/D/E/F ecc... è un resto, allora si risale a gambero.

Mi sono perso non ho capito Smiley
full member
Activity: 602
Merit: 144
Quindi se una transazione può avere piu output se ne ha 2 o 3 e cosi via non posso dire se uno di questi è un destinatario vero e proprio o è un nuovo indirizzo del mittente...
Ad esempio A precedentemente è stato il ricevente di 2 transazioni da 4 e 5 BTC, quindi il suo bilancio totale è di 9 BTC...
Se vedo una transazione in cui come input c'è A e output B e C per un totale di 9 BTC (supponiamo fee = 0) di cui 8 BTC a B e 1 BTC a C io esterno non posso dire se C è una terza persona oppure un nuovo indirizzo generato dal wallet di A.
Corretto?

Si è corretto, mi sembra che l' unico modo che si ha per capire che C sia un indirizzo di A, è quando A viene usato più volte come ricevente e non copre in una transazione in uscita tutti gli input ricevuti. Ma anche qui A potrebbe mandare gli input non spesi e non usati nella tx ad un altro indirizzo sempre sotto la stessa masterprivkey ad un indirizzo D che non si sa che sia di A e quindi spendo gli input su C prendendo gli input di C e di D. In questo caso non posso dire che C e D appartengono ad A ma posso dire che C e D sono sotto la stessa persona e, se si capisce che C/D/E/F ecc... è un resto, allora si risale a gambero.
jr. member
Activity: 51
Merit: 1

2. In una transazione si indicata il passaggio di un numero X di BTC da un proprietario ad un altro. Nell'explorer quello che si visualizza come proprietari sono le chiavi pubbliche, opportunatamente codificate, dei soggetti della transazione. Partendo dal presupposto che il sistema funziona in modalità UTXO quindi se A deve inviare B 4 bitcoin e A ha nel suo wallet 5 btc, A invia 5 di cui 4 vanno a B e 1 ritorna di nuovo ad A.
Se vedo questa transazione:

https://blockchain.info/tx/75c0892bee139388eca6105ccde8dcdb92b4a58dc7e09b0539b0999ea0181b06

non sarebbe corretto che il secondo indirizzo di output sia lo stesso di quello di input visto che ritornano ad A?

Il wallet genera sempre in maniera autonoma un nuovo indirizzo (quindi chiave pubblica e privata)?

Mentre in una transazione di questo tipo
https://blockchain.info/tx/15620d2881305e7a7494e53a1bf7503a5b389742d2dbc53ec5398de240fb4f2e

in input ci sono tutti gli indirizzi su cui predentemente ci sono stati delle transazioni di deposito?

E per finire una transazione con piu di 2 output cosa vuol dire ad esempio:
https://blockchain.info/tx/65c2caf96b370f277f19def26aefa13b611294b6a7a7df9271128c7c341ee7b1

Un soggetto invia dei btc a piu indirizzi? Cioè quando faccio un pagamento posso scegliere piu destinatari?

Grazie a tutti
FP


In una transazione hai la piena libertà di decidere dove versare il resto che ti spetta, puoi versarlo in un nuovo indirizzo di resto oppure puoi versarlo in uno degli indirizzi che hai usato per il pagamento.
I fondi di input li puoi scegliere liberamente usando UTXO appartenenti a diversi indirizzi in tuo possesso, non sei obbligato ad usare UTXO di un solo indirizzo.
Ed infine anche per gli output puoi decidere di pagare con una unica transazione quanti destinatari vuoi al fine di risparmiare transaction fees.

I wallet generalmente applicano dei criteri di ottimizzazione al fine di minimizzare la dimensione della transazione (e dunque delle fees) ma nulla ti vieta di personalizzarti una transazione in modo manuale.

Per esempio Electrum ti permette di customizzare una transazione con pochi clic scegliendo con precisione chirurgica:
- la lista di UTXO da spendere (anche appartenenti ad address diversi)
- su quali address trasferire fondi (uno o più address)
- su quale address far versare il resto (su uno di quelli di input oppure su uno a piacere).


Ti consiglio di aprirti Electrum in modalità TestNet per sperimentare tutte queste potenti possibilità (puoi inviare e ricevere bitcoin su indirizzi TestNet esattamente come se operassi nella rete Bitcoin ufficiale).









Quindi se una transazione può avere piu output se ne ha 2 o 3 e cosi via non posso dire se uno di questi è un destinatario vero e proprio o è un nuovo indirizzo del mittente...
Ad esempio A precedentemente è stato il ricevente di 2 transazioni da 4 e 5 BTC, quindi il suo bilancio totale è di 9 BTC...
Se vedo una transazione in cui come input c'è A e output B e C per un totale di 9 BTC (supponiamo fee = 0) di cui 8 BTC a B e 1 BTC a C io esterno non posso dire se C è una terza persona oppure un nuovo indirizzo generato dal wallet di A.
Corretto?
jr. member
Activity: 31
Merit: 20

2. In una transazione si indicata il passaggio di un numero X di BTC da un proprietario ad un altro. Nell'explorer quello che si visualizza come proprietari sono le chiavi pubbliche, opportunatamente codificate, dei soggetti della transazione. Partendo dal presupposto che il sistema funziona in modalità UTXO quindi se A deve inviare B 4 bitcoin e A ha nel suo wallet 5 btc, A invia 5 di cui 4 vanno a B e 1 ritorna di nuovo ad A.
Se vedo questa transazione:

https://blockchain.info/tx/75c0892bee139388eca6105ccde8dcdb92b4a58dc7e09b0539b0999ea0181b06

non sarebbe corretto che il secondo indirizzo di output sia lo stesso di quello di input visto che ritornano ad A?

Il wallet genera sempre in maniera autonoma un nuovo indirizzo (quindi chiave pubblica e privata)?

Mentre in una transazione di questo tipo
https://blockchain.info/tx/15620d2881305e7a7494e53a1bf7503a5b389742d2dbc53ec5398de240fb4f2e

in input ci sono tutti gli indirizzi su cui predentemente ci sono stati delle transazioni di deposito?

E per finire una transazione con piu di 2 output cosa vuol dire ad esempio:
https://blockchain.info/tx/65c2caf96b370f277f19def26aefa13b611294b6a7a7df9271128c7c341ee7b1

Un soggetto invia dei btc a piu indirizzi? Cioè quando faccio un pagamento posso scegliere piu destinatari?

Grazie a tutti
FP


In una transazione hai la piena libertà di decidere dove versare il resto che ti spetta, puoi versarlo in un nuovo indirizzo di resto oppure puoi versarlo in uno degli indirizzi che hai usato per il pagamento.
I fondi di input li puoi scegliere liberamente usando UTXO appartenenti a diversi indirizzi in tuo possesso, non sei obbligato ad usare UTXO di un solo indirizzo.
Ed infine anche per gli output puoi decidere di pagare con una unica transazione quanti destinatari vuoi al fine di risparmiare transaction fees.

I wallet generalmente applicano dei criteri di ottimizzazione al fine di minimizzare la dimensione della transazione (e dunque delle fees) ma nulla ti vieta di personalizzarti una transazione in modo manuale.

Per esempio Electrum ti permette di customizzare una transazione con pochi clic scegliendo con precisione chirurgica:
- la lista di UTXO da spendere (anche appartenenti ad address diversi)
- su quali address trasferire fondi (uno o più address)
- su quale address far versare il resto (su uno di quelli di input oppure su uno a piacere).


Ti consiglio di aprirti Electrum in modalità TestNet per sperimentare tutte queste potenti possibilità (puoi inviare e ricevere bitcoin su indirizzi TestNet esattamente come se operassi nella rete Bitcoin ufficiale).






legendary
Activity: 2562
Merit: 2640
A tal proposito mi chiedo un blocco senza transazioni che vantaggio porta? Oltre "la ricompenza" per la chiusura del blocco... Mi pare che i primi blocchi a partire da quello genesi fossero a transazione nulla.

L'unico vantaggio è che il miner che lo mina può partire una frazione di secondo prima a minare il successivo rispetto agli altri miner visto che lui ha già il blocco precedente al quale collegare il successivo (visto che lo ha minato) mentre gli altri devono attendere di riceverlo. Ma si tratta davvero di un tempo irrisorio....
Trovi qualche riferimento qui ( "Is it bad?") :
https://bitcoinmagazine.com/articles/why-do-some-bitcoin-mining-pools-mine-empty-blocks-1468337739/



Non so se mi puoi essere d'aiuto o se qualcun'altro che leggerà  ma lo script usato nella transazione è il linguaggio di programmazione con cui la transazione viene eseguita ed è in un certo modo lo smart contract del bitcoin che a differenza di quello di ethereum non è touring complete quindi privo di loop ed altro?

Esatto il linguaggio di scripting di btc è volutamente non Turing completo. Se ti interessa qualche dettaglio in più ti suggerisco di dare un'occhiata a "Mastering Bitcoin" di Antonopoulos, c'è un capitolo dedicato: "Transaction Scripts and script language".
legendary
Activity: 3276
Merit: 3537
Nec Recisa Recedit
Una spiegazione (con esempio) di come interpretare input/output di una tx https://bitcoin.stackexchange.com/questions/67735/can-someone-post-an-explanation-of-how-to-get-the-input-output-addresses

Per quanto riguarda quella che hai postato la chiave 18Ga9yGmWbohhm1ojZ7WKWLMoEZLh5iqyq
invia 0.03025994 a 3MsSLLhB74yNjCv7x1ubiTQEApkm2nWVTX e
51.8476295 a 1JNa9k2B5oZthU8jgnvH6GA6zTV6XHEcvS

Uno dei due indirizzi riceventi può essere semplicemente l'indirizzo di resto come ti è stato riportato.

Il blocco senza transazioni può richiedere da parte degli utenti fee piu alte per avere transazioni validate.
jr. member
Activity: 51
Merit: 1
Ciao grazie mille per le risposte,
sei stato molto gentile, come dicevo è da un po che sto studiando questo mondo e quando penso di aver capito mi accorgo che mi manca qualcosa.

A tal proposito mi chiedo un blocco senza transazioni che vantaggio porta? Oltre "la ricompenza" per la chiusura del blocco... Mi pare che i primi blocchi a partire da quello genesi fossero a transazione nulla.

Non so se mi puoi essere d'aiuto o se qualcun'altro che leggerà  ma lo script usato nella transazione è il linguaggio di programmazione con cui la transazione viene eseguita ed è in un certo modo lo smart contract del bitcoin che a differenza di quello di ethereum non è touring complete quindi privo di loop ed altro?

Quindi nella transazione presa prima in cosiderazione cioè la:

https://blockchain.info/tx/75c0892bee139388eca6105ccde8dcdb92b4a58dc7e09b0539b0999ea0181b06

la parte finale script input e output come la devo interpretare?

Ovviamente quello che vedo nel blockexplorer è quello che viene riportato nella transazione ma in un linguaggio comprensibile?

Grazie


legendary
Activity: 2562
Merit: 2640
Salve ragazzi, piu cerco di studiare il mondo blockchain e bitcoin, piu quando penso di aver capito, piu mi accorgo che mi manca qualcosa.


Ciao e benvenuto,
avrei preferito che ti rispondesse qualcuno più titolato di me ma visto che sono passati due giorni.... ci provo, poi altri potranno essere più precisi   Wink




1, A parità di fee offerta dagli utenti il numero di transazioni che un miner inserisce in un blocco è a sua discrezione o in genera si arriva alla massima capicità di un blocco (1MB)?

E' a discrezione del miner. Un miner può anche decidere di non inserire alcuna tx nel blocco, se googli "bitcoin blocchi vuoti" (meglio se in inglese) vedrai che è una casistica ricorrente.


Se vedo questa transazione:

https://blockchain.info/tx/75c0892bee139388eca6105ccde8dcdb92b4a58dc7e09b0539b0999ea0181b06

non sarebbe corretto che il secondo indirizzo di output sia lo stesso di quello di input visto che ritornano ad A?

No, per questioni d sicurezza (e un po' anche per privacy)  è sempre buona abitudine inviare il resto ad un nuovo indirizzo sempre del tuo wallet.
I wallet moderni generano "infinite" coppie di chiavi private/pubbliche (e quindi di address) e quando devono spedire il resto lo spediscono ad un loro indirizzo non ancora usato.


Il wallet genera sempre in maniera autonoma un nuovo indirizzo (quindi chiave pubblica e privata)?

Sì, almeno in quelli moderni (all'inizio non era così)


Mentre in una transazione di questo tipo
https://blockchain.info/tx/15620d2881305e7a7494e53a1bf7503a5b389742d2dbc53ec5398de240fb4f2e

in input ci sono tutti gli indirizzi su cui predentemente ci sono stati delle transazioni di deposito?

Non sono sicuro di aver capito la domanda perché c'è quel "tutti" che mi fuorvia.
Comunque: questa è una normale tx con più input, ovviamente devono essere tutti input del tuo wallet (o meglio devi avere le chiavi private). Non è naturalmente detto che siano "tutti".....


E per finire una transazione con piu di 2 output cosa vuol dire ad esempio:
https://blockchain.info/tx/65c2caf96b370f277f19def26aefa13b611294b6a7a7df9271128c7c341ee7b1

Un soggetto invia dei btc a piu indirizzi? Cioè quando faccio un pagamento posso scegliere piu destinatari?

Certo.
Guardando l'importo in uscita, questa mi sembra la tipica tx che viene fatta da un exchange quando chiedi di prelevare. Anziché fare una tx per ogni richiesta di prelievo, l'exchange aspetta di averne qualcuna e poi invia la tx pagando a quel punto un'unica fee (anche se più alta della fee per tx singola).
Ad esempio TheRock Trading tratta le richieste di prelievo normali (cioè non urgenti) facendo tx ogni 15 minuti.

jr. member
Activity: 51
Merit: 1
Salve ragazzi, piu cerco di studiare il mondo blockchain e bitcoin, piu quando penso di aver capito, piu mi accorgo che mi manca qualcosa.

Riporto qui i miei dubbi:

1, A parità di fee offerta dagli utenti il numero di transazioni che un miner inserisce in un blocco è a sua discrezione o in genera si arriva alla massima capicità di un blocco (1MB)?

2. In una transazione si indicata il passaggio di un numero X di BTC da un proprietario ad un altro. Nell'explorer quello che si visualizza come proprietari sono le chiavi pubbliche, opportunatamente codificate, dei soggetti della transazione. Partendo dal presupposto che il sistema funziona in modalità UTXO quindi se A deve inviare B 4 bitcoin e A ha nel suo wallet 5 btc, A invia 5 di cui 4 vanno a B e 1 ritorna di nuovo ad A.
Se vedo questa transazione:

https://blockchain.info/tx/75c0892bee139388eca6105ccde8dcdb92b4a58dc7e09b0539b0999ea0181b06

non sarebbe corretto che il secondo indirizzo di output sia lo stesso di quello di input visto che ritornano ad A?

Il wallet genera sempre in maniera autonoma un nuovo indirizzo (quindi chiave pubblica e privata)?

Mentre in una transazione di questo tipo
https://blockchain.info/tx/15620d2881305e7a7494e53a1bf7503a5b389742d2dbc53ec5398de240fb4f2e

in input ci sono tutti gli indirizzi su cui predentemente ci sono stati delle transazioni di deposito?

E per finire una transazione con piu di 2 output cosa vuol dire ad esempio:
https://blockchain.info/tx/65c2caf96b370f277f19def26aefa13b611294b6a7a7df9271128c7c341ee7b1

Un soggetto invia dei btc a piu indirizzi? Cioè quando faccio un pagamento posso scegliere piu destinatari?

Grazie a tutti
FP
Jump to: