
Bitcoin: L'evoluzione del Pagamento Elettronico Peer-to-Peer e i Nuovi Orizzonti dell'Ecosistema Digitale
Ispirato dell'articolo originale di Satoshi Nakamoto
Nota introduttiva: Questo articolo esplora le origini del Bitcoin, tenendo conto del fatto che alcune informazioni potrebbero essere state aggiornate nel corso del tempo. Abbiamo selezionato le sezioni chiave dell'articolo originale e le abbiamo adattate al nostro contesto, al fine di fornire una spiegazione chiara e concisa.
View 1.4K
words 4.3K read in 21 minutes, 34 Seconds
Negli ultimi anni, il commercio su Internet ha fatto affidamento su istituzioni finanziarie come intermediari per elaborare i pagamenti elettronici. Sebbene questo sistema funzioni adeguatamente per la maggior parte delle transazioni, presenta ancora delle debolezze intrinseche dovute al modello basato sulla fiducia. Le transazioni completamente irreversibili non sono possibili a causa della necessità di mediazione da parte delle istituzioni finanziarie, il che aumenta i costi di transazione e limita la dimensione minima delle transazioni praticabili. Inoltre, le transazioni di piccola entità diventano difficili da realizzare, e i commercianti devono diffidare dei propri clienti, richiedendo informazioni aggiuntive per garantire una maggiore sicurezza.
Per superare queste limitazioni, è necessario un sistema di pagamento elettronico basato sulla prova crittografica piuttosto che sulla fiducia. Un sistema che permetta a due parti di effettuare transazioni dirette senza bisogno di un intermediario di fiducia. In questo articolo, presentiamo una soluzione al problema della doppia spesa attraverso l'utilizzo di un server timestamp distribuito peer-to-peer per generare una prova computazionale dell'ordine cronologico delle transazioni. Tale sistema è sicuro fintanto che i nodi onesti controllino collettivamente più potenza di calcolo rispetto a qualsiasi gruppo di nodi attaccanti.
Satoshi Nakamoto, l'autore originale di questo documento, ha introdotto un sistema di pagamento elettronico rivoluzionario chiamato Bitcoin. Questo articolo fornisce una spiegazione dettagliata delle origini del Bitcoin e presenta gli aggiornamenti recenti relativi a questa innovativa tecnologia.
Il commercio online ha sempre dipenduto dalle istituzioni finanziarie come intermediari fidati per elaborare i pagamenti elettronici. Tuttavia, questo modello basato sulla fiducia presenta alcune debolezze intrinseche. Le transazioni irreversibili non sono possibili, in quanto le istituzioni finanziarie non possono evitare di mediarle e risolvere le eventuali controversie. Ciò comporta costi aggiuntivi per le transazioni e limita la loro dimensione minima, rendendo impossibile l'effettuazione di piccoli pagamenti casuali. Inoltre, i commercianti devono diffidare dei propri clienti e richiedere informazioni aggiuntive per mitigare il rischio di frodi.
Per superare queste sfide, Satoshi Nakamoto ha proposto un sistema di pagamento elettronico basato sulla crittografia, chiamato Bitcoin. Questo sistema consente a due parti di effettuare transazioni dirette tra loro senza la necessità di un intermediario fidato. Utilizzando firme digitali e una rete peer-to-peer, il Bitcoin offre una soluzione al problema della doppia spesa, in cui una moneta viene spesa due volte.
Le transazioni di Bitcoin sono registrate in una catena continua di prove di lavoro basate su hash, che costituiscono un registro immutabile delle transazioni. La catena più lunga, determinata dalla maggior parte della potenza di calcolo della CPU, rappresenta la versione corretta del registro. Questo sistema garantisce che la rete Bitcoin sia sicura, a condizione che la maggior parte della potenza di calcolo sia controllata da nodi onesti che non collaborano per attaccare la rete.
La rete Bitcoin funziona su una struttura minimale, in cui i messaggi sono trasmessi sulla base del massimo sforzo. I nodi possono unirsi e lasciare la rete liberamente, accettando la catena più lunga come prova di ciò che è accaduto durante la loro assenza.
Uno dei componenti chiave del sistema Bitcoin è il server di marca temporale. Questo server prende un hash di un blocco di elementi da contrassegnare e lo pubblica ampiamente, dimostrando che i dati dovevano esistere in quel momento. Ogni marca temporale include l'hash della marca temporale precedente, creando una catena inestricabile che rafforza la sicurezza e l'ordine cronologico delle transazioni.
Per garantire la sicurezza della rete Bitcoin, viene utilizzata anche la prova di lavoro. I nodi devono svolgere un complesso calcolo di prova di lavoro per creare un nuovo blocco di transazioni. Questo richiede tempo e sforzo computazionale, garantendo che i partecipanti onesti abbiano il controllo della rete rispetto agli attaccanti malevoli.
Aggiornamento: Questo articolo fornisce una spiegazione sulle origini del Bitcoin, tuttavia, è importante sottolineare che le informazioni qui presentate potrebbero essere state aggiornate nel corso del tempo. Inoltre, a titolo di aggiornamenti, sono inclusi alcuni suggerimenti sulle nuove piattaforme ecosistemiche che hanno assunto grande importanza, come ad esempio l'integrazione tra carte bancarie prepagate, voucher e il mondo delle criptovalute.
Video Consigliato - Ti svelo un segreto i Voucher e le Carte ricaricabili non sono più le stesse #bitocoin #blockchain #voucher
Cosa è necessario conoscere - Astratto
Una versione puramente peer-to-peer del contante elettronico consentirebbe di inviare pagamenti online direttamente da una parte all'altra senza passare attraverso un istituto finanziario. Le firme digitali forniscono parte della soluzione, ma i vantaggi principali vengono persi se è ancora necessaria una terza parte fidata per evitare la doppia spesa. Proponiamo una soluzione al problema della doppia spesa utilizzando una rete peer-to-peer. La rete contrassegna l'ora delle transazioni inserendole in una catena continua di prove di lavoro basate su hash, formando un record che non può essere modificato senza ripetere la prova di lavoro. La catena più lunga non serve solo come prova della sequenza di eventi a cui si è assistito, ma anche come prova che proviene dal più grande pool di potenza della CPU. Finché la maggior parte della potenza della CPU è controllata da nodi che non cooperano per attaccare la rete, genereranno la catena più lunga e supereranno gli aggressori. La rete stessa richiede una struttura minima. I messaggi vengono trasmessi sulla base del massimo sforzo e i nodi possono lasciare e ricongiungersi alla rete a piacimento, accettando la più lunga catena di prove di lavoro come prova di ciò che è accaduto mentre erano via.
Le transazioni
Le transazioni nel contesto di Bitcoin sono definite come una catena di firme digitali, in cui ogni proprietario trasferisce la moneta al successivo firmando digitalmente un hash della transazione precedente insieme alla chiave pubblica del nuovo proprietario. Questo meccanismo consente al beneficiario di verificare la catena di proprietà controllando le firme. Tuttavia, il problema sorge quando il beneficiario non può verificare se uno dei proprietari abbia speso due volte la stessa moneta.
Le transazioni completamente irreversibili non sono realmente possibili poiché le istituzioni finanziarie non possono evitare di mediare le controversie. Ciò porta ad un aumento dei costi delle transazioni, limitando la dimensione minima pratica delle transazioni e rendendo impossibile effettuare pagamenti non reversibili per servizi non reversibili. Inoltre, il bisogno di fiducia si diffonde, facendo sì che i commercianti debbano diffidare dei propri clienti e richiedere più informazioni di quelle necessarie.
Per risolvere questo problema, una soluzione comune è l'introduzione di un'autorità centrale fidata, chiamata zecca, che controlla ogni transazione per la doppia spesa. Tuttavia, questa soluzione presenta il rischio che l'intero sistema monetario dipenda dalla zecca stessa. Inoltre, ogni transazione deve passare attraverso la zecca, creando una dipendenza simile a quella di una banca.
Per evitare questa dipendenza, è necessario che il beneficiario abbia una prova che i precedenti proprietari non abbiano firmato altre transazioni precedenti. La soluzione proposta è l'annuncio pubblico delle transazioni e la necessità di un sistema che permetta ai partecipanti di concordare una cronologia unica dell'ordine in cui le transazioni sono state ricevute. Questo è possibile attraverso l'utilizzo di un server di marca temporale che pubblica un hash di un blocco di elementi da contrassegnare. Ogni marca temporale include il timestamp precedente nel suo hash, formando una catena in cui ogni marca temporale rafforza le precedenti.
Aggiornamento: Questo articolo fornisce una spiegazione sulle origini del Bitcoin, tuttavia, è importante sottolineare che le informazioni qui presentate potrebbero essere state aggiornate nel corso del tempo. Inoltre, a titolo di aggiornamenti, sono inclusi alcuni suggerimenti sulle nuove piattaforme ecosistemiche che hanno assunto grande importanza, come ad esempio l'integrazione tra carte bancarie prepagate, voucher e il mondo delle criptovalute.
Il peer-to-peer
Una versione puramente peer-to-peer del contante elettronico consentirebbe di inviare pagamenti online direttamente da una parte all'altra senza passare attraverso un istituto finanziario. Le firme digitali forniscono parte della soluzione, ma i vantaggi principali vengono persi se è ancora necessaria una terza parte fidata per evitare la doppia spesa. Proponiamo una soluzione al problema della doppia spesa utilizzando una rete peer-to-peer. La rete contrassegna l'ora delle transazioni inserendole in una catena continua di prove di lavoro basate su hash, formando un record che non può essere modificato senza ripetere la prova di lavoro. La catena più lunga non serve solo come prova della sequenza di eventi a cui si è assistito, ma anche come prova che proviene dal più grande pool di potenza della CPU. Finché la maggior parte della potenza della CPU è controllata da nodi che non cooperano per attaccare la rete, genereranno la catena più lunga e supereranno gli aggressori. La rete stessa richiede una struttura minima. I messaggi vengono trasmessi sulla base del massimo sforzo e i nodi possono lasciare e ricongiungersi alla rete a piacimento, accettando la più lunga catena di prove di lavoro come prova di ciò che è accaduto mentre erano via.
Transazioni: Garantire la catena di proprietà
Le transazioni nel sistema Bitcoin sono basate su una catena di firme digitali. Ogni proprietario di Bitcoin può trasferire la propria moneta al successivo firmando digitalmente un hash della transazione precedente e la chiave pubblica del beneficiario successivo. Queste informazioni vengono aggiunte alla fine della catena di transazioni, formando una cronologia della proprietà.
Tuttavia, sorge un problema: come garantire che una moneta non venga spesa due volte? Per risolvere questo dilemma, potrebbe essere introdotta un'autorità centrale fidata, nota come zecca, che verifichi ogni transazione per evitare la doppia spesa. Tuttavia, questa soluzione comporta la dipendenza da un'entità esterna, simile a una banca, per il funzionamento del sistema monetario.
Nel contesto di Bitcoin, è necessario un approccio decentralizzato per garantire che i proprietari precedenti non abbiano già speso le loro monete. La soluzione proposta è quella di annunciare pubblicamente le transazioni e permettere ai partecipanti di concordare un'unica cronologia delle transazioni ricevute. Il destinatario di un pagamento ha bisogno di una prova che la maggior parte dei nodi abbia concordato che quella transazione fosse la prima ricevuta.
Server di marca temporale: Garantire l'integrità delle transazioni
Per garantire l'ordine cronologico delle transazioni, Bitcoin utilizza un server di marca temporale. Questo server prende un hash di un blocco di elementi da contrassegnare e pubblica ampiamente l'hash, creando una prova che i dati esistevano in quel preciso momento. Ogni marca temporale include anche l'hash della marca temporale precedente, formando una catena che rafforza l'integrità delle transazioni precedenti.
Il server di marca temporale crea una catena di timestamp, in cui ogni timestamp include l'hash del timestamp precedente. Questa catena forma un insieme di dati interconnessi, in cui ogni nuovo timestamp rafforza quelli precedenti. L'hash del timestamp è calcolato utilizzando algoritmi come SHA-256, che garantiscono l'integrità dei dati e la loro tracciabilità nel tempo.
Per implementare un server di marca temporale distribuito su base peer-to-peer, è necessario utilizzare un sistema di prova di lavoro, simile a Hashcash di Adam Back. La prova di lavoro coinvolge la scansione di un valore che, quando sottoposto ad hashing, inizia con un numero di zero bit. Il lavoro richiesto per trovare questa prova di lavoro è esponenziale nel numero di zero bit richiesti. Una volta trovata la prova di lavoro, il blocco non può essere modificato senza rifare il lavoro, e i blocchi successivi vengono concatenati ad esso, rendendo il processo di modifica dei blocchi successivi estremamente oneroso.
La prova di lavoro
La prova di lavoro risolve anche il problema della rappresentanza nel processo decisionale a maggioranza. Invece di basarsi su un voto basato sull'indirizzo IP, la prova di lavoro funge da CPU-un voto. La decisione della maggioranza è rappresentata dalla catena più lunga, che ha richiesto il massimo sforzo di prova di lavoro. Se la maggior parte della potenza di calcolo è controllata da nodi onesti, la catena onesta crescerà più velocemente e supererà qualsiasi catena concorrente. Modificare un blocco passato richiederebbe l'aggiunta di blocchi successivi, e la probabilità che un utente malintenzionato recuperi il ritardo diminuisce in modo esponenziale con l'aggiunta di blocchi successivi.
La prova di lavoro, l'implementazione di un server timestamp distribuito su base peer-to-peer, richiede l'utilizzo di un sistema simile a Hashcash di Adam Back. Questo sistema prevede che un valore venga sottoposto ad hashing, come con SHA-256, e che l'hash inizi con un numero di zero bit. Il lavoro necessario per soddisfare questa prova di lavoro è esponenziale nel numero di zero bit richiesti. Una volta che viene trovato un valore che soddisfa la prova di lavoro, il blocco non può essere modificato senza rifare il lavoro. La catena più lunga, con il massimo sforzo di prova del lavoro investito, rappresenta la decisione della maggioranza.
La prova del lavoro risolve anche il problema della rappresentanza nel processo decisionale a maggioranza. Se la maggioranza fosse basata su un indirizzo IP-un voto, potrebbe essere facilmente sovvertita da chiunque possa allocare molti IP. La prova di lavoro, invece, rappresenta una CPU-un voto. La decisione della maggioranza è data dalla catena più lunga con il massimo sforzo di prova del lavoro investito. Se la maggior parte della potenza di calcolo è controllata da nodi onesti, la catena onesta crescerà più velocemente e supererà le catene concorrenti.
Rete - Per implementare la rete di timestamp, i passaggi da seguire sono i seguenti
La comunicazione all'interno di una rete avviene attraverso una serie di passaggi che coinvolgono i nodi partecipanti. Ecco i passaggi chiave per eseguire una rete:
- Trasmissione delle nuove transazioni: Le nuove transazioni vengono inviate a tutti i nodi della rete.
- Raccolta delle transazioni in un blocco: Ogni nodo raccoglie le nuove transazioni e le organizza in un blocco.
- Prova di lavoro: Ogni nodo lavora per trovare una prova di lavoro difficile per il proprio blocco.
- Trasmissione del blocco: Quando un nodo trova una prova di lavoro, trasmette il blocco a tutti gli altri nodi.
- Accettazione del blocco: I nodi accettano il blocco solo se tutte le transazioni al suo interno sono valide e non sono già state spese.
- Creazione del blocco successivo: I nodi esprimono la loro accettazione del blocco lavorando per creare il blocco successivo nella catena utilizzando l'hash del blocco accettato come hash precedente. I nodi considerano sempre la catena più lunga come quella corretta e lavorano per estenderla.
È importante notare che se due nodi trasmettono contemporaneamente versioni diverse del blocco successivo, alcuni nodi potrebbero ricevere prima una versione e altri ricevere l'altra. In tal caso, i nodi lavoreranno sul blocco ricevuto per primi, ma terranno l'altro ramo come alternativa nel caso diventi più lungo. Il pareggio sarà interrotto quando verrà trovata la prossima prova di lavoro e uno dei rami si allungherà. I nodi che stavano lavorando sull'altro ramo passeranno quindi al ramo più lungo.
Le nuove transazioni non devono necessariamente essere trasmesse a tutti i nodi, ma devono raggiungere un numero sufficiente di nodi affinché possano essere inserite in un blocco. Allo stesso modo, se un nodo non riceve un blocco, lo richiederà quando riceve il blocco successivo e si rende conto di averne perso uno.
Incentivo
Nel mondo della comunicazione, la criptovaluta rappresenta una rivoluzione che si basa su una tecnologia innovativa chiamata blockchain. La blockchain è un registro digitale distribuito che registra tutte le transazioni effettuate con la criptovaluta, come il Bitcoin. Ma come funziona l'incentivo per i nodi che supportano la rete?
L'incentivo è una componente fondamentale del sistema blockchain. La prima transazione in un blocco è una transazione speciale che avvia una nuova moneta di proprietà del creatore del blocco. Questo crea un incentivo per i nodi a supportare la rete e contribuisce alla distribuzione iniziale delle monete. A differenza delle valute tradizionali, la criptovaluta non è emessa da un'autorità centrale, ma viene generata attraverso il contributo dei nodi.
L'incentivo può anche essere finanziato attraverso le commissioni di transazione. Se il valore di output di una transazione è inferiore al suo valore di input, la differenza diventa una commissione di transazione che viene aggiunta all'incentivo del blocco contenente la transazione. Con il passare del tempo e l'aumento della quantità di monete in circolazione, l'incentivo può essere sostenuto interamente dalle commissioni di transazione, senza la necessità di un aumento dell'inflazione.
Questo sistema di incentivi aiuta a mantenere l'integrità della rete. Un attaccante che dispone di una potenza di calcolo superiore potrebbe cercare di utilizzarla per frodare le persone rubando i loro pagamenti o per generare nuove monete. Tuttavia, l'incentivo rende più vantaggioso per l'attaccante giocare secondo le regole, ottenendo così più nuove monete rispetto agli altri partecipanti messi insieme.
Recupero dello spazio su disco
Nel mondo delle criptovalute, come ad esempio il Bitcoin, il recupero dello spazio su disco è un aspetto fondamentale per ottimizzare l'archiviazione delle transazioni. Una volta che l'ultima transazione in una moneta è stata confermata da un numero sufficiente di blocchi, le transazioni precedenti possono essere scartate per risparmiare spazio su disco. Tuttavia, è necessario trovare un modo per mantenere l'integrità delle transazioni senza dover archiviare tutti i dati.
Per risolvere questo problema, viene utilizzato un algoritmo chiamato Merkle Tree. Le transazioni vengono organizzate in un albero di Merkle, dove solo la radice dell'albero viene inclusa nell'hash del blocco. In questo modo, è possibile eliminare le transazioni precedenti tagliando i rami dell'albero senza compromettere l'integrità del blocco. Gli hash interni dell'albero non devono essere archiviati, riducendo così lo spazio necessario per memorizzare le transazioni.
Questa ottimizzazione è particolarmente importante considerando la dimensione delle intestazioni di blocco. Una semplice intestazione di blocco senza transazioni sarebbe di circa 80 byte. Considerando che i blocchi vengono generati ogni 10 minuti, si avrebbe un consumo di spazio di circa 4,2 MB all'anno. Tuttavia, dato che i sistemi informatici moderni sono venduti con almeno 2 GB di RAM e la capacità di archiviazione continua ad aumentare, il recupero dello spazio su disco non dovrebbe rappresentare un problema.
Verifica di pagamento semplificata
Un altro aspetto cruciale nel mondo delle criptovalute è la verifica di pagamento semplificata. Questa funzionalità consente agli utenti di verificare i pagamenti senza eseguire un nodo di rete completo. Invece, l'utente deve solo conservare una copia delle intestazioni del blocco della catena di prova di lavoro più lunga. Attraverso le intestazioni del blocco, l'utente può ottenere il ramo Merkle che collega la transazione al blocco desiderato. In questo modo, l'utente può verificare che la transazione è stata accettata dalla rete.
Tuttavia, bisogna sottolineare che questa forma di verifica è affidabile fintanto che la maggioranza dei nodi di rete sono onesti. Se la rete viene sopraffatta da un utente malintenzionato, la verifica potrebbe diventare meno sicura. In questi casi, è possibile adottare una strategia di protezione che preveda l'accettazione di avvisi da parte dei nodi di rete quando viene rilevato un blocco non valido. Le aziende che ricevono pagamenti frequenti potrebbero preferire eseguire i propri nodi per garantire una maggiore indipendenza e una verifica più rapida.
Combinare e dividere il valore
Nel mondo delle transazioni digitali, gestire le singole monete può risultare scomodo e inefficiente. Effettuare una transazione separata per ogni centesimo trasferito sarebbe un'operazione poco pratica. Per ovviare a questo problema, le transazioni contengono più input e output, consentendo la suddivisione e la combinazione del valore. Di solito, c'è un unico input proveniente da una transazione precedente di importo più grande, oppure ci possono essere più input che combinano importi più piccoli. Inoltre, ci sono al massimo due output: uno per il pagamento e uno per restituire l'eventuale resto al mittente.
È importante notare che la complessità delle transazioni, in cui una transazione dipende da diverse altre e queste a loro volta dipendono da molte altre, non rappresenta un problema in questo contesto. Non è necessario estrarre una copia completa e autonoma della cronologia di una transazione.
Riservatezza
Nel sistema bancario tradizionale, la privacy viene garantita limitando l'accesso alle informazioni alle parti coinvolte e a una terza parte fidata. Tuttavia, la necessità di rendere pubbliche tutte le transazioni rende impossibile adottare questo metodo. Tuttavia, la privacy può essere preservata interrompendo il flusso di informazioni in un altro modo, ovvero mantenendo le chiavi pubbliche anonime. Il pubblico può vedere che qualcuno sta inviando un importo a qualcun altro, ma senza avere informazioni che collegano la transazione a una persona specifica. Questo livello di informazioni è simile a quello reso pubblico dalle borse valori, dove l'ora e l'entità delle negoziazioni sono rese pubbliche senza rivelare le parti coinvolte.
Consideriamo lo scenario di un utente malintenzionato che cerca di creare una catena alternativa più veloce rispetto alla catena onesta. Tuttavia, nonostante ciò possa essere possibile, il sistema non è esposto a modifiche arbitrarie come la creazione di valore dal nulla o il prelievo di denaro che non appartiene all'aggressore. I nodi della rete non accetteranno una transazione non valida come pagamento, e i nodi onesti non accetteranno mai un blocco contenente tali transazioni.
La sfida tra la catena onesta e quella dell'attaccante può essere descritta come una passeggiata casuale binomiale, in cui l'evento di successo è l'estensione della catena onesta di un blocco (+1), mentre l'evento di fallimento è l'estensione della catena dell'attaccante (-1).
Per calcolare la probabilità che un utente malintenzionato riesca a recuperare da un deficit, possiamo fare riferimento al concetto di "Gambler's Ruin" (Rovina del giocatore). Immaginiamo un giocatore d'azzardo con un credito illimitato che inizia con un deficit e tenta potenzialmente un numero infinito di prove per raggiungere il pareggio. La probabilità che raggiunga mai il pareggio, o che un attaccante raggiunga mai la catena onesta, può essere calcolata utilizzando determinate variabili.
Considerando le ipotesi che la probabilità che un nodo onesto trovi il blocco successivo (p) sia maggiore della probabilità che l'attaccante lo trovi (q), la probabilità diminuisce in modo esponenziale all'aumentare del numero di blocchi che l'attaccante deve recuperare. Le probabilità sono contro di lui, e se non riesce a fare un progresso significativo all'inizio, le sue possibilità diventano trascurabili man mano che si allontana dalla catena onesta.
Ora, concentriamoci sul tempo che il destinatario di una nuova transazione deve aspettare prima di essere abbastanza sicuro che il mittente non possa modificare la transazione. Supponiamo che il mittente sia un utente malintenzionato che cerca di convincere il destinatario di aver effettuato il pagamento e poi tenta di modificarlo per riprendersi i soldi dopo un certo periodo di tempo. Il destinatario verrà avvisato se ciò accade, ma il mittente spera che sia troppo tardi.
Il destinatario genera una nuova coppia di chiavi e fornisce la chiave pubblica al mittente poco prima della firma. In questo modo, il mittente non può preparare in anticipo una catena di blocchi lavorando su di essa continuamente fino a quando non avrà la fortuna di avanzare abbastanza per eseguire la transazione. Nel frattempo, il mittente disonesto inizia a lavorare segretamente su una catena parallela contenente una versione alternativa della transazione.
Il destinatario attende finché la transazione non viene aggiunta a un blocco e z blocchi vengono collegati successivamente. Sebbene il destinatario non conosca l'esatto progresso compiuto dall'attaccante, supponendo che i blocchi onesti richiedano il tempo medio previsto per essere generati, il potenziale progresso dell'attaccante segue una distribuzione di Poisson con un valore atteso.
Per calcolare la probabilità che l'attaccante possa ancora recuperare in quel momento, moltiplichiamo la densità di Poisson per ogni possibile progresso che avrebbe potuto fare a partire da quel punto.
Tutti questi calcoli possono essere implementati utilizzando il codice C fornito, che restituisce una probabilità di successo dell'attaccante in base ai parametri specificati.
L'analisi dei risultati ottenuti dimostra che la probabilità di successo dell'attaccante diminuisce esponenzialmente all'aumentare del valore z, rappresentante il numero di blocchi che l'attaccante deve recuperare. Questo evidenzia la robustezza del sistema blockchain nel proteggere le transazioni dagli attacchi.
In conclusione, abbiamo esaminato un sistema per le transazioni elettroniche basato sulla tecnologia blockchain che elimina la necessità di fiducia tra le parti coinvolte. Attraverso l'uso di firme digitali, la prova del lavoro e la registrazione pubblica delle transazioni, la blockchain garantisce la sicurezza e la trasparenza. I nodi della rete operano senza bisogno di coordinazione centralizzata, e i meccanismi di consenso garantiscono l'integrità della catena di blocchi.
Glossario tecnico:
- Blockchain: una struttura dati distribuita e sicura che registra le transazioni in modo permanente.
- Catena di blocchi: una sequenza di blocchi che contiene transazioni verificate e collegate tra loro tramite crittografia.
- Nodo: un computer o un dispositivo che partecipa alla rete blockchain.
- Transazione: un'operazione che coinvolge lo scambio di valori o informazioni sulla blockchain.
- Attaccante: un utente malintenzionato che cerca di alterare la catena di blocchi o di trarre vantaggio dal sistema.
- Probabilità: la misura della possibilità che un evento si verifichi.
- Gambler's Ruin: un problema matematico che riguarda le probabilità di successo di un giocatore d'azzardo.
- Poisson: una distribuzione di probabilità discreta che modella gli eventi rari.
- Prova del lavoro: un meccanismo che richiede agli utenti di dimostrare di aver dedicato risorse computazionali per risolvere un problema complesso, al fine di contribuire alla sicurezza della rete.
Argomenti trattati:
- La sicurezza delle transazioni elettroniche sulla blockchain.
- La resistenza agli attacchi da parte di utenti malintenzionati.
- La probabilità di successo di un attaccante nel tentare di alterare la catena di blocchi.
- L'utilizzo della prova del lavoro come meccanismo di consenso nella blockchain.
- Il ruolo dei nodi nella validazione delle transazioni e nell'estensione della catena di blocchi.
Riferimenti:
ULTIMA Token Trading: la nuova criptovaluta dell'ecosistema Ultima
W. Dai, "b-money", www.weidai.com/bmoney.txt , 1998.
H. Massias, XS Avila e J.-J. Quisquater, "Progettazione di un servizio di timestamp sicuro con requisiti di affidabilità minimi", nel 20° simposio sulla teoria dell'informazione nel Benelux, maggio 1999.
S. Haber, WS Stornetta, "How to time-stamp a digital document", In Journal of Cryptology, vol 3, n. 2, pagine 99-111, 1991.
D. Bayer, S. Haber, WS Stornetta, "Migliorare l'efficienza e l'affidabilità della marcatura temporale digitale", In Sequenze II: metodi di comunicazione, sicurezza e informatica, pagine 329-334, 1993.
S. Haber, WS Stornetta, "Nomi sicuri per stringhe di bit", In Atti del 4° Convegno ACM sulla sicurezza dei computer e delle comunicazioni, pagine 28-35, aprile 1997.
A. Back, "Hashcash - a denial of service counter-measure", www.hashcash.org/papers/hashcash.pdf , 2002.
RC Merkle, "Protocolli per sistemi crittografici a chiave pubblica", In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pagine 122-133, aprile 1980.









