criptovalute

White paper su Bitcoin: una breve recensione

Una versione puramente peer-to-peer del denaro elettronico consentirebbe di inviare pagamenti online direttamente da una parte all’altra senza passare attraverso un istituto finanziario (questa è la qualità di Bitcoin).

Proponiamo una soluzione al problema della doppia spesa utilizzando una rete peer-to-peer: la rete timbra il tempo delle transazioni convertendole in una catena continua di prove di lavoro basate su hash, formando un record che non può essere modificato senza tornare a fare la prova del lavoro.

La catena più lunga non serve solo come prova della sequenza di eventi assistiti, ma anche che proviene dalla maggiore riserva di potenza della CPU. Finché la maggior parte della potenza della CPU è controllata da nodi che non collaborano per attaccare la rete, genereranno la catena più lunga e supereranno gli attaccanti.

La rete stessa richiede una struttura minima. I messaggi vengono trasmessi con il massimo sforzo e i nodi possono uscire e rientrare nella rete a piacimento. Accettare la più lunga catena di prove di lavoro come prova di ciò che è successo mentre erano via.

Introduzione del Libro bianco Bitcoin

Il commercio su Internet si affida quasi esclusivamente a istituzioni finanziarie che servono terze parti fidate per elaborare i pagamenti elettronici. Mentre il sistema funziona abbastanza bene nella maggior parte delle transazioni. Soffre ancora delle debolezze intrinseche del modello basato sulla fiducia.

Il costo della mediazione aumenta i costi di transazione, limitando la dimensione minima delle transazioni pratiche e tagliando la possibilità di piccole transazioni casuali, e c’è un costo più ampio nella perdita della capacità di effettuare pagamenti non reversibili per servizi non reversibili. Con la possibilità di un investimento, il bisogno di fiducia si allarga.

I commercianti devono diffidare dei loro clienti, molestandoli per più informazioni di quelle di cui avrebbero bisogno altrimenti. Questi costi e incertezze di pagamento possono essere evitati di persona utilizzando valuta fisica. Ma non esiste un meccanismo per effettuare pagamenti attraverso un canale di comunicazione senza una persona di fiducia.

Ciò che serve è un sistema di pagamento elettronico basato su prove crittografiche piuttosto che sulla fiducia, che consenta a due parti consenzienti di effettuare transazioni direttamente tra loro senza la necessità di una terza parte fidata.

Le transazioni che sono computazionalmente poco pratiche da invertire proteggerebbero i venditori dalle frodi e i meccanismi di escrow di routine potrebbero essere facilmente implementati per proteggere gli acquirenti.

In questo articolo, proponiamo una soluzione al problema della doppia spesa utilizzando un server di timestamp peer-to-peer distribuito per generare prove computazionali dell’ordine cronologico delle transazioni. Il sistema è sicuro finché i nodi onesti controllano collettivamente più potenza della CPU rispetto a qualsiasi gruppo di nodi attaccanti cooperanti.

Transazioni Bitcoin

Definiamo una moneta elettronica come una catena di firme digitali. Ogni proprietario trasferisce la moneta a quella successiva firmando digitalmente un hash della transazione precedente e la chiave pubblica del proprietario successivo e sommando fino alla fine della moneta. Un beneficiario può verificare le firme per corroborare la catena di proprietà.

Il problema, ovviamente, è che il beneficiario non può verificare che uno dei proprietari non abbia speso la moneta due volte. Una soluzione comune è l’introduzione di un’autorità centrale di fiducia, o zecca, che verifica che ogni transazione costi il ​​doppio.

Dopo ogni transazione. La moneta deve essere restituita alla Zecca e al Francobollo per emettere una nuova moneta, e solo monete emesse direttamente dalla zecca. È sicuro che la zecca non verrà utilizzata due volte.

Il problema con questa soluzione è che il destino dell’intero sistema monetario dipende dalla società che gestisce la zecca, con ogni transazione che deve passare attraverso di loro, come una banca.

Abbiamo bisogno di un modo per far sapere al beneficiario che i precedenti proprietari non hanno firmato alcuna transazione precedente. Per i nostri scopi, la prima transazione è quella che conta. Quindi non ci interessano i successivi tentativi di duplicare le spese. L’unico modo per confermare l’assenza di una transazione è essere a conoscenza di tutte le transazioni.

Nel modello basato su Mint, la Zecca era a conoscenza di tutte le transazioni e decideva quale veniva prima. Per raggiungere questo obiettivo senza una parte fidata, le transazioni devono essere annunciate pubblicamente [1] e abbiamo bisogno di un sistema per consentire ai partecipanti di concordare un’unica cronologia dell’ordine in cui sono state ricevute. Il beneficiario ha bisogno della prova che, al momento di ogni transazione, la maggior parte dei nodi ha convenuto di essere stata la prima a riceverla.

Server timestamp

La soluzione che proponiamo parte da un server timestamp in Bitcoin. Un timestamp funziona prendendo un hash di un blocco di elementi da timbrare e pubblicandolo ampiamente, come in un giornale o in un’e-mail Usenet [2-5].

Il timestamp dimostra che i dati devono essere esistiti in quel momento, ovviamente per inserire l’hash. Ogni timestamp include il timestamp precedente nel suo hash, formandone uno con ogni timestamp aggiuntivo che rafforza i precedenti.

Prova di lavoro in Bitcoin

Per implementare un server di timestamp peer-to-peer distribuito, dovremo utilizzare un sistema di prova del lavoro simile a Hash cash di Adam Back, piuttosto che i giornali o i post di Usenet. La prova di lavoro implica la ricerca di un valore che, durante l’hashing, come nel caso di SHA-256, inizia con un numero di bit zero.

Il lavoro medio richiesto è esponenziale nel numero di zero bit richiesti e può essere verificato eseguendo un singolo hash. Per la nostra rete di timestamp, implementiamo la prova del lavoro incrementando un valore nel blocco finché non viene trovato un valore che dia all’hash del blocco i bit zero richiesti.

Una volta che lo sforzo della CPU è stato speso per soddisfare la prova di lavoro, il blocco non può essere modificato senza ripetere il lavoro. Poiché i blocchi successivi sono concatenati dopo di lui, il lavoro per modificare il blocco includerebbe il rifacimento di tutti i blocchi dopo di lui.

La prova del lavoro risolve anche il problema della determinazione della rappresentanza nel processo decisionale a maggioranza. Se la maggioranza fosse basata su un indirizzo IP con un solo voto, potrebbe essere sovvertita da chiunque sia in grado di assegnare molti IP.

La prova del lavoro è essenzialmente una CPU-un-un-voto. La decisione della maggioranza è rappresentata dalla catena più lunga, su cui è investito il più alto stress test.

Se la maggior parte della potenza della CPU è controllata da nodi onesti, la catena onesta crescerà più velocemente e supererà qualsiasi catena concorrente.

Per modificare un blocco passato, un utente malintenzionato dovrebbe silurare la prova di funzionamento del blocco e tutti i blocchi successivi e quindi recuperare e superare il lavoro dei nodi onesti. Mostreremo in seguito che la probabilità che un attaccante più lento raggiunga diminuisce esponenzialmente man mano che vengono aggiunti blocchi successivi.

Per compensare la maggiore velocità dell’hardware e l’interesse variabile nell’esecuzione del nodo nel tempo, la difficoltà della prova di lavoro è determinata da una media mobile che mira a un numero medio di blocchi all’ora. Se vengono generati troppo rapidamente, la difficoltà aumenta.

Netto

I passaggi per eseguire la rete Bitcoin sono i seguenti:

1) Le nuove transazioni vengono trasmesse a tutti i nodi.
2) Ogni nodo raccoglie le nuove transazioni in un blocco.
3) Ogni nodo lavora per trovare una prova di lavoro difficile per il suo blocco.
4) Quando un nodo trova una prova di lavoro, trasmette il blocco a tutti i nodi.
5) I nodi accettano il blocco solo se tutte le transazioni in esso contenute sono valide e non spese.
6) I nodi esprimono la loro accettazione del blocco lavorando alla creazione della
successiva direttiva di blocco nella catena, utilizzando l’hash del blocco accettato come l’
hash precedente.

I nodi Bitcoin considerano sempre la catena più lunga quella corretta e continueranno a lavorare per estenderla. Se due nodi emettono contemporaneamente versioni diverse del blocco successivo. Alcuni nodi possono ricevere prima l’uno o l’altro. In tal caso, lavorano sul primo che hanno ricevuto, ma salvano l’altro ramo nel caso in cui si allunghi.

Il legame si spezzerà quando si troverà la prossima prova di lavoro e si allungherà. I nodi su cui stava lavorando l’altro ramo cambieranno in quello più lungo. Le trasmissioni di nuove transazioni non devono necessariamente raggiungere tutti i nodi.

Finché raggiungono molti nodi, entreranno in un blocco in pochissimo tempo su Bitcoin. Anche le trasmissioni in blocco tollerano l’eliminazione dei messaggi. Se un nodo non riceve un blocco, lo richiederà quando riceverà il blocco successivo e si renderà conto che gli è stato passato uno.

Post correlati

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba