ETFFIN Finance >> Finanza personale corso >  >> Cryptocurrency >> Blockchain

In che modo una catena di blocchi impedisce la doppia spesa di Bitcoin?

Una delle preoccupazioni principali di qualsiasi sviluppatore di criptovalute è il problema della doppia spesa. Questo si riferisce all'incidenza di un individuo che spende un saldo di quella criptovaluta più di una volta, creando effettivamente una disparità tra il record di spesa e la quantità di quella criptovaluta disponibile, così come il modo in cui è distribuito.

La questione della doppia spesa è un problema che il contante non ha; se paghi un panino con una banconota da 10 dollari, girando quel conto al produttore del panino, non puoi girarti e spendere gli stessi $ 10 altrove. Una transazione che utilizza una valuta digitale come bitcoin, però, avviene interamente in digitale. Ciò significa che è possibile copiare i dettagli della transazione e ritrasmetterla in modo che lo stesso BTC possa essere speso più volte da un singolo proprietario. Sotto, esamineremo come gli sviluppatori di criptovalute hanno assicurato che la doppia spesa non può verificarsi.

Punti chiave

  • Un problema tecnico che sorge con la nozione di valuta digitale è la possibilità per qualcuno di duplicare il denaro digitale e spenderlo contemporaneamente in due o più posti.
  • Questo problema di "doppia spesa" viene prevenuto nelle criptovalute basate su blockchain come Bitcoin utilizzando un meccanismo di consenso noto come proof-of-work (PoW).
  • Questo PoW viene eseguito da una rete decentralizzata di "minatori" che non solo assicurano la fedeltà delle transazioni passate sul registro della blockchain, ma rilevano e prevengono anche le doppie spese.

Capire la Blockchain

La blockchain che sostiene una valuta digitale come il bitcoin non è in grado di prevenire da sola la doppia spesa. Piuttosto, tutte le diverse transazioni che coinvolgono la relativa criptovaluta sono pubblicate sulla blockchain, dove sono verificati separatamente e protetti da un processo di conferma. Nel caso di bitcoin e di molte altre criptovalute, le transazioni così confermate diventano irreversibili; sono pubblicati pubblicamente e mantenuti in perpetuo.

Bitcoin è stata la prima grande valuta digitale a risolvere il problema della doppia spesa. Lo ha fatto implementando questo meccanismo di conferma e mantenendo un comune, sistema di contabilità universale. In questo modo, la blockchain bitcoin conserva i record delle transazioni con data e ora che risalgono alla fondazione della criptovaluta nel 2009.

In termini di Bitcoin, un "blocco" è un file di dati registrati in modo permanente. Tutte le transazioni recenti sono scritte in blocchi, molto simile a un registro delle transazioni di borsa in una borsa. Le informazioni dai blocchi vengono aggiunte al libro mastro ogni pochi minuti; tutti i nodi della rete mantengono una copia del registro blockchain. Gli utenti sono in grado di navigare nella blockchain per bitcoin e rivedere le transazioni solo in termini di quantità. I dettagli sulle identità dell'acquirente e del venditore in qualsiasi transazione sono protetti da crittografia di alto livello, che protegge anche il libro mastro da manomissioni da parte di fonti esterne. Quando il registro blockchain viene aggiornato, così anche tutti i portafogli bitcoin.

Gestire la doppia spesa

Immagina di avere 1 BTC e di tentare di spenderlo due volte in due transazioni separate. Potresti tentare di farlo inviando lo stesso BTC a due indirizzi di portafoglio bitcoin separati. Entrambe queste transazioni andranno quindi nel pool di transazioni non confermate. La prima transazione verrebbe approvata tramite il meccanismo di conferma e poi verificata nel blocco successivo. Però, la seconda transazione verrebbe riconosciuta come non valida dal processo di conferma e non verrebbe verificata. Se entrambe le transazioni vengono estratte dal pool per la conferma contemporaneamente, la transazione con il maggior numero di conferme sarà inclusa nella blockchain, mentre l'altro verrà scartato.

Sebbene questo affronti efficacemente il problema della doppia spesa, non è privo di problemi. Per esempio, il destinatario previsto della seconda transazione (fallita) non avrebbe preso parte alla transazione stessa in caso di fallimento, eppure quella persona non avrebbe ricevuto il bitcoin che aveva previsto. Molti commercianti aspettano almeno 6 conferme di una transazione (il che significa che sei blocchi successivi di transazioni sono stati aggiunti alla blockchain dopo la transazione in questione). A questo punto, il commerciante può tranquillamente presumere che la transazione sia valida.

Rimangono altre vulnerabilità in questo sistema che potrebbero consentire attacchi a doppia spesa. Per esempio, se un attaccante riesce in qualche modo a controllare almeno il 51% della potenza della rete, possono commettere una doppia spesa. Se un aggressore fosse in qualche modo in grado di ottenere il controllo di tutta questa potenza di calcolo, potrebbero stornare le transazioni e creare un separato, blockchain privato. Però, la rapida crescita di bitcoin ha praticamente assicurato che questo tipo di attacco sia impossibile.

Spiegazione della prova del lavoro e del "mining"

Ora diventiamo un po' più tecnici. Il modo in cui gli utenti rilevano la manomissione come un tentativo di doppia spesa in pratica è attraverso gli hash, lunghe stringhe di numeri che servono come prova di lavoro (PoW). Metti un dato set di dati attraverso una funzione hash (bitcoin usa SHA-256), e genererà solo un hash. A causa dell'"effetto valanga, " però, anche una piccola modifica a qualsiasi parte dei dati originali risulterà in un hash totalmente irriconoscibile. Qualunque sia la dimensione del set di dati originale, l'hash generato da una data funzione sarà della stessa lunghezza. L'hash è una funzione unidirezionale:non può essere utilizzata per ottenere i dati originali, solo per verificare che i dati che hanno generato l'hash corrispondano ai dati originali.

Generare qualsiasi hash per una serie di transazioni bitcoin sarebbe banale per un computer moderno, quindi per trasformare il processo in "lavoro, " la rete bitcoin imposta un certo livello di "difficoltà". Questa impostazione viene regolata in modo che venga "estratto" un nuovo blocco – aggiunto alla blockchain generando un hash valido – circa ogni 10 minuti. L'impostazione della difficoltà si ottiene stabilendo un " target" per l'hash:più basso è il target, minore è l'insieme di hash validi, e più è difficile generarne uno. In pratica, questo significa un hash che inizia con una lunga stringa di zeri:l'hash per il blocco #429818, Per esempio, è 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Quel blocco contiene 2, 012 transazioni che coinvolgono poco più di 1, 000 bitcoin, così come l'intestazione del blocco precedente. Se un utente ha modificato l'importo di una transazione di 0,0001 bitcoin, l'hash risultante sarebbe irriconoscibile, e la rete rifiuterebbe la frode.

Poiché un determinato insieme di dati può generare solo un hash, in che modo i minatori si assicurano di generare un hash al di sotto del target? Modificano l'input aggiungendo un numero intero, chiamato nonce ("numero usato una volta"). Una volta trovato un hash valido, viene trasmesso alla rete, e il blocco viene aggiunto alla blockchain.

L'estrazione mineraria è un processo competitivo, ma è più una lotteria che una corsa. In media, qualcuno genererà una prova accettabile di lavoro ogni dieci minuti, ma chi sarà è indovinare di nessuno. I minatori si uniscono per aumentare le loro possibilità di blocchi minerari, che genera commissioni di transazione e, per un tempo limitato, una ricompensa di bitcoin di nuova creazione.

La prova del lavoro rende estremamente difficile alterare qualsiasi aspetto della blockchain, poiché tale alterazione richiederebbe il re-mining di tutti i blocchi successivi. Inoltre, rende difficile per un utente o un pool di utenti monopolizzare la potenza di calcolo della rete, poiché i macchinari e la potenza necessari per completare le funzioni di hash sono costosi.