This article has been translated from English to Italian.

Bitcoin risponde alla domanda:"Quale transazione conservare?"

Il modo in cui Bitcoin risponde a questa domanda è geniale.

Ecco come…

Ogni nodo della rete Bitcoin condivide informazioni sulle nuove transazioni.

Le transazioni effettuate sulla rete Bitcoin NON vengono aggiunte direttamente alla blockchain. Vengono prima raccolte e memorizzate in quello che viene chiamato"memory pool".

OGNI computer che esegue il programma Bitcoin crea un'area di archiviazione temporanea per le transazioni chiamata"memory pool". Conosciuta anche come"mempool" in forma abbreviata.

Ogni nodo Bitcoin ha il suo mempool, dove memorizza la coda delle transazioni che ha controllato e considerato valide.Bitcoin Node's Memory Pool

In generale, un mempool è una coda organizzata in cui le transazioni vengono memorizzate e ordinate prima di essere aggiunte a un blocco appena creato.

  • Il pool di memoria contiene transazioni"fresche" o non confermate (memorizzate come transazioni individuali).
  • La blockchain contiene transazioni"archiviate" o confermate (impacchettate in "blocchi").

Tutte le transazioni bitcoin sono semplicemente transazioni "non confermate" e esistono solo nel mempool prima di essere "confermate" e aggiunte alla blockchain.

Nella rete Bitcoin, tutti i nodi completi hanno un pool di memoria.

All Bitcoin nodes have a memory pool

Supponiamo che tu avvii una transazione da questo lato della rete (transazioneviola ).

E poi vai qui, e usa lo stesso bitcoin e inserisci la transazione rossa in questo computer.

Se noti, queste due transazioni NON vengono scritte direttamente nel file. Entrambe le transazioni vengono semplicemente memorizzate prima nel pool di memoria di ciascun computer.

Both transactions are stored in memory pool

Quindi entrambe le transazioni si propagheranno attraverso la rete.

Questo computer RIFIUTERÀ la transazione rossa perché ha già ricevuto quella viola.

Transaction is rejected from mempool

Quindi ora ENTRAMBE le transazioni sono sulla rete.

Ma NON sono ancora state scritte nel file, quindi il file non è ancora stato aggiornato.

Both transactions are waiting in mempool

Quello che succederà è che tutti questi computer lavoreranno e cercheranno di trasferire le loro transazioni dal pool di memoria al file.

Gareggeranno per essere i primi a far aggiungere le transazioni del loro pool di memoria all'inizio del file.Bitcoin mining nodes compete

Supponiamo che questo computer (in giallo) sia il primo a riuscirci.

Bitcoin node first to add transaction to blockchain

Aggiunge la sua transazione dal pool di memoria al file:

Bitcoin nodes adds transaction to blockchain

E quando ha finito...

Trasmetterà la copia aggiornata del file a tutti gli altri computer a cui è connesso...

Bitcoin node shares blockchain copy

E loro aggiorneranno le loro copie.

Nell'illustrazione qui sotto, questo nodo riceve il file aggiornato che contiene la transazione viola che spende lo stesso bitcoin.

Bitcoin node kicks out conflicting transaction

Cosa succede alla transazione rossa in conflitto nel suo pool di memoria?

Poiché lo stesso bitcoin è già stato speso nella transazione viola, espellerà la transazione rossa dal suo pool di memoria!

Questo nodo passerà quindi il file aggiornato.

E l'altro nodo (o gli altri nodi) farà la stessa cosa... eliminerà tutte le transazioni in conflitto nel suo pool di memoria.

All Bitcoin nodes kick out conflicting transaction

Tutti i computer ora hanno il file aggiornato.

Ecco come risolvere il problema di avere due transazioni in conflitto sulla rete.

Hai letteralmente solo una "area di attesa" (mempool) per le transazioni in sospeso e i nodi competono e cercano di aggiungere le loro transazioni al file.

In questo esempio, il tipo viola riceverebbe il bitcoin...Bitcoin transaction is successful

Ma quando tu, il losco figuro, cercherai di spendere lo stesso bitcoin con il tizio rosso, non funzionerà.Bitcoin transaction fails

Questo processo di nodi in competizione per cercare di trasferire le loro transazioni dal pool di memoria al file ("la blockchain") è chiamato MINING.