Tenere traccia dei token: Bitcoin, Blockchain e altri registri distributi - Token-Economy-Book/ItalianTranslation GitHub Wiki
Le reti blockchain si basano sull'idea delle reti P2P, forniscono un set di dati universale di cui ogni attore può fidarsi, anche se potrebbe non conoscere o non fidarsi degli altri. Su ogni nodo della rete vengono archiviate e gestite copie immutabili di tali dati. Per rendere la rete tollerante ai guasti, resistente agli attacchi e alla collusione, vengono applicati incentivi economici sotto forma di token di rete nativi.
Le reti blockchain si basano sull'idea delle reti P2P, forniscono un set di dati universale di cui ogni attore può fidarsi, anche se potrebbe non conoscere o non fidarsi degli altri. Su ogni nodo della rete vengono archiviate e gestite copie immutabili di tali dati. Per rendere la rete tollerante ai guasti, resistente agli attacchi e alla collusione, vengono applicati incentivi economici sotto forma di token di rete nativi.
Il concetto di "catena di blocchi" è stato introdotto nel white paper di Bitcoin nell'ottobre 2008, con l'obiettivo di creare "denaro P2P senza banche". Il documento, pubblicato con lo pseudonimo di Satoshi Nakamoto, proponeva un sistema in cui tutti i computer della rete conservano una copia identica di un libro mastro (ledger) delle transazioni, che funge da unico punto di riferimento per tutti nella rete. Tutti i nodi della rete aggiornano e gestiscono collettivamente questo ledger, che rappresenta un set di dati universale di cui ogni attore può fidarsi, anche se potrebbe non conoscere o fidarsi degli altri. Le persone e le istituzioni che non si conoscono o non si fidano l'una dell'altra, risiedono in paesi diversi, sono soggette a giurisdizioni diverse e che non hanno accordi legalmente vincolanti tra loro possono ora interagire su Internet senza la necessità di terze parti fidate come banche, piattaforme Internet o altri tipi di istituti di compensazione.
Problema del double spending (doppia spesa): questa nuova forma di gestione distribuita dei dati ha risolto il problema della doppia spesa su Internet. Nel modo in cui Internet è progettato oggi, si può spendere lo stesso valore, emesso come file digitale, più volte, perché le informazioni digitali possono essere copiate, e copie dello stesso file digitale possono essere inviate da un computer ad altri computer contemporaneamente. Prima dell'emergere di Bitcoin, erano state discusse, in diverse fasi evolutive, idee sulle reti P2P protette crittograficamente, principalmente in documenti teorici, a partire dagli anni '80 (per approfondire: Appendice – Origini del Bitcoin). Tuttavia, non c'era mai stata una implementazione pratica di una rete P2P che riuscisse ad evitare il problema della doppia spesa, senza la necessità di intermediari fidati che garantissero lo scambio di valore. Il protocollo Bitcoin ha introdotto un meccanismo per rendere costoso copiare i valori digitali.
Catena di blocchi: in una rete blockchain, le transazioni di token vengono registrate in batch di dati chiamati "blocchi" che vengono "sottoposti a hashing". Questo hash crittografico crea un'impronta digitale del blocco (per approfondire: Parte 1 – Sicurezza dei token, crittografia) Ogni blocco include l'hash del blocco precedente, collegando così un blocco con un altro in una catena di blocchi. Questo processo garantisce l'integrità storica di tutti i blocchi fino al primo blocco, denominato anche blocco genesis. Se i dati in un blocco vengono alterati, il valore hash del blocco e tutti i blocchi successivi cambieranno e ogni nodo della rete saprà che i dati sono stati manomessi. Questo elenco crescente di blocchi concatenati viene anche chiamato ledger.
Il ledger è un file che contiene un elenco crescente di registrazioni di transazioni, concatenate in blocchi protetti crittograficamente da manomissioni e revisioni. Se fossero effettuati tentativi di manipolazione, il valore hash del ledger manipolato non coinciderebbe con il valore hash registrato sulle copie del ledger su tutti gli altri nodi. Il valore hash di un blocco funge quindi da protezione contro la contraffazione, che può essere utilizzata per verificare l'autenticità di una transazione su un ledger.
Ledger distribuito: una copia del ledger è archiviata su più nodi di una rete P2P protetta crittograficamente. Per modificare i dati del ledger su tutte le copie nell'intera rete, i nodi della rete devono raggiungere un accordo reciproco su tale modifica. Un ledger distribuito è un registro delle transazioni condiviso, affidabile e pubblico che tutti possono ispezionare, ma che nessun singolo utente controlla. Ogni nodo indipendente ha l'ultima versione del ledger, che contiene tutte le transazioni che sono state effettuate e le può verificare. Questo processo è denominato "consenso". Ciò è particolarmente utile nelle configurazioni inter-organizzative in cui nessuna istituzione desidera affidare a un'altra istituzione la gestione dei propri dati.
Token: il termine "token" è semplicemente una metafora. Contrariamente a quanto potrebbe suggerire la metafora, un token non rappresenta un file digitale che viene inviato da un dispositivo all'altro. Si manifesta invece, come una voce nel ledger che appartiene a un indirizzo blockchain. Solo la persona che ha la chiave privata per quell'indirizzo può accedere ai rispettivi token, utilizzando un software wallet, che funge da client blockchain (per approfondire: Parte 1 - Sicurezza dei token, crittografia, wallet).
A differenza dei database distribuiti, in cui i dati sono distribuiti ma gestiti e controllati da una singola entità, le reti blockchain consentono il controllo distribuito. Diverse persone e istituzioni che non si fidano l'una dell'altra condividono le informazioni senza necessitare di un amministratore centrale.
Come un foglio di calcolo nel cloud: il ledger potrebbe anche essere descritto come un foglio di calcolo nel cloud. Pensa ad applicazioni cloud come " Google Fogli", dove tutti possono accedere e modificare un file contemporaneamente. Ma, a differenza di Google Fogli, dove quel file è archiviato centralmente sui server di Google, il ledger di una rete blockchain è un documento che non è archiviato centralmente. Ogni nodo della rete conserva sempre una copia identica dello stesso file (con eccezioni temporanee ogni volta che viene creato un nuovo blocco).
Stato universale: ogni computer nella rete gestisce la propria copia identica del ledger, che funge da set di dati universale su tutta la rete, garantendo che ogni token venga trasferito una sola volta. Il ledger rappresenta quindi lo stato universale della rete, su cui tutti i nodi della rete concordano. Serve come notaio digitale e come marca temporale pubblicamente verificabile.
Transazioni Bitcoin: quando si utilizza la rete Bitcoin, invece di una banca che convalida le transazioni finanziarie, tutti i computer della rete controllano le loro copie del ledger per la validità della transazione e confermano collettivamente le transazioni con il consenso della maggioranza. Nessun utente è più affidabile degli altri. Invece di una singola terza parte fidata che convalida le transazioni tramite i propri server con autorità (voto singolo), una rete P2P di computer che eseguono il protocollo blockchain convalida le transazioni per consenso (voto a maggioranza).
Il protocollo è un insieme di regole e processi che definiscono come tutti i nodi (anonimi) della rete possono raggiungere un accordo sul reale stato della rete. Il protocollo definisce come i partecipanti alla rete interagiscono tra loro: (i) in quali condizioni è valido l'invio di token da A a B; (ii) i premi economici per la convalida delle transazioni con un token crittografico; (iii) come confermare le identità e firmare le transazioni; e (iv) chi prende decisioni sugli aggiornamenti di rete.
Criptoeconomia: la crittografia protegge la rete e fornisce la piena trasparenza per tutti i partecipanti, pur mantenendo la privacy di ogni singolo attore. Inoltre si assicura che le transazioni passate siano vere. Per garantire che le transazioni future saranno condotte in modo veritiero con il consenso della maggioranza di tutti gli attori della rete, viene applicata la teoria dei giochi assumendo che tutti gli attori della rete potrebbero essere potenzialmente corrotti. Il meccanismo di consenso è progettato per rendere difficile la manipolazione del ledger.
Consenso: il Proof-of-Work è il "meccanismo di consenso" utilizzato dalla rete Bitcoin che guida l'azione collettiva di un insieme sconosciuto di attori di rete anonimi. Si basa su principi criptoeconomici. La teoria dei giochi inversa viene utilizzata per premiare gli attori della rete con un token di rete nativo. Nel caso della rete Bitcoin, sarebbe il token Bitcoin. Questo meccanismo di ricompensa è progettato per rendere economicamente impossibile ingannare la rete, a causa della quantità proibitivamente grande di potenza di calcolo che sarebbe necessaria per farlo e tenendo conto degli scenari di attacco estremi. Le regole di consenso sono progettate in modo da rendere la rete resistente agli attacchi, nonostante la mancanza di parti centralizzate per governare la veridicità delle attività di rete.
Identità: un indirizzo blockchain, derivato dalla chiave privata, rappresenta un'identità digitale pseudonima del proprietario del token. I token vengono annotati per appartenere a un determinato indirizzo nel ledger pubblico. Solo il proprietario di quell'indirizzo può richiedere di inviare questi token da qualche altra parte. Per dimostrare la loro proprietà agli altri partecipanti alla rete, i possessori di token devono firmare le transazioni con la loro chiave privata. Questa forma di gestione dell'identità si basa esclusivamente su funzioni matematiche, consentendo ad altri computer nella rete di confermare la validità di una transazione senza bisogno di conoscere la persona reale o la sua chiave privata segreta (per approfondire: Parte 1 – Crittografia e Identità user-centriche).
Contabilità e governance: le reti blockchain possono anche essere descritte come macchine contabili distribuite o macchine di governance sovranazionale pubbliche e trasparenti. Forniscono un livello di governance per Internet. Tutti i partecipanti alla rete hanno pari accesso agli stessi dati in tempo (quasi) reale. Le transazioni sono gestite collettivamente. Sono trasparenti a tutti gli attori e possono essere ricondotte alla loro origine.
Organizzazione decentralizzata e autonoma (DAO): il ledger è gestito collettivamente da nodi di rete autonomi, motivo per cui può essere rappresentato da una nuova forma di infrastruttura organizzativa spesso denominata DAO (per approfondire: Parte 2 - Economia istituzionale e governance delle DAO; Parte 4 - Token purpose-driven).
Block-explorer: a causa della natura pubblica delle reti blockchain, tutti possono eseguire big data sul ledger, come il monitoraggio di tutte le transazioni di token, il tasso di hash totale della rete, l'offerta di token e la crescita delle transazioni, ecc. Tuttavia, mentre tutti i dati sul ledger sono pubblici, poche persone hanno le capacità per eseguire analisi avanzate dei dati sulla blockchain. I block-explorer sono applicazioni di terze parti che consentono a chiunque di esplorare pubblicamente tutte le transazioni di una particolare rete, come Bitcoin e altre reti blockchain pubbliche. I block-explorer sono come un motore di ricerca dedicato per i dati relativi alla blockchain. Tuttavia, questo livello di trasparenza solleva anche questioni relative alla privacy. Tali problemi vengono affrontati grazie ai più recenti protocolli blockchain che utilizzano metodi crittografici che preservano la privacy (per approfondire: Parte 3 - Privacy token).
La sfida di fondo di una rete P2P con una serie di nodi di rete anonimi è: come trattare i nodi di rete dannosi in assenza di parti centralizzate che proteggono il sistema. Bisogna sempre presumere che ci saranno attori che cercheranno di interrompere qualsiasi rete aperta e pubblica. Come può una rete così distribuita raggiungere il consenso su quali dati sono corretti o non corretti, o quale processo è vero o falso in una configurazione così poco affidabile? Si parla di questo problema come del “Byzantine Generals Problem” (il “problema dei generali bizantini”). Un nodo dannoso, chiamato anche nodo bizantino, può inviare intenzionalmente informazioni errate a tutti gli altri nodi coinvolti nel processo di consenso. I guasti bizantini sono considerati la classe di guasti più difficile nelle reti distribuite. Per essere affidabili i meccanismi di consenso devono essere resilienti contro attacchi DDoS (Distributed Denial of Service, letteralmente “negazione del servizio”), attacchi sybil e altri attacchi informatici. Prima dell'emergere di Bitcoin, si credeva che fosse impossibile ottenere un consenso tollerante ai guasti e resistente agli attacchi tra i nodi non affidabili in una rete P2P.
Per la prima volta nella storia del calcolo distribuito, il protocollo Bitcoin ha introdotto una soluzione matematica a questo problema con l'introduzione del "Proof-of-Work", che ha reso il costo economico di attaccare il sistema sproporzionato rispetto al vantaggio di farlo. Ha dato vita a un nuovo campo della scienza intorno ai giochi di coordinamento economico utilizzando strumenti crittografici, noti anche come "Cryptoeconomics". La criptoeconomia può essere definita come lo studio dell'interazione economica in ambienti non affidabili, in cui ogni attore potrebbe essere potenzialmente corrotto. È interdisciplinare e richiede una profonda comprensione della crittografia, dell'economia e delle reti P2P e di ciò che motiva gli attori della rete. L'infrastruttura a chiave pubblica-privata garantisce un controllo dell’accesso ai propri token resistente agli attacchi. Le funzioni di hash consentono ai nodi di verificare le transazioni eseguite sulla rete. Sia le funzioni di hashing che la crittografia a chiave pubblica-privata sono necessarie anche per il gioco di coordinamento economico chiamato Proof-of-Work che premia i minatori per aver aggiunto blocchi di transazioni veritiere al ledger. I meccanismi criptoeconomici possono fornire un equilibrio di sicurezza per rendere la rete tollerante ai guasti e resistente agli attacchi e alla collusione. Ciò consente ai nodi di rete anonimi di raggiungere il consenso sullo stato di tutte le interazioni di rete. La rete Bitcoin è la prima istanza pratica di criptoeconomia. Produce "fiducia in base a funzioni matematiche" piuttosto che "fiducia per contratto legale".
Tuttavia, la sicurezza dipende dalla resilienza delle ipotesi fatte su come gli attori della rete reagiranno agli incentivi economici. Il modo in cui le persone reagiscono agli incentivi è stato a lungo un campo di studio in economia. La criptoeconomia ha quindi molto in comune con la progettazione dei meccanismi, un campo dell'economia legato alla teoria dei giochi. La teoria dei giochi analizza le interazioni strategiche, che vengono chiamate giochi. Cerca di capire le migliori strategie per ogni giocatore se entrambi i giocatori massimizzano il miglior risultato per se stessi. Il design del meccanismo definisce i risultati desiderabili e lavora all'indietro per creare un gioco che incentivi i giocatori verso il risultato desiderato. Sebbene la criptoeconomia sia interdisciplinare, è una disciplina che è stata prevalentemente sviluppata nella comunità dell'informatica. Sembra che ci sia ancora molto spazio per incorporare metodi di varie discipline economiche e altre discipline (per approfondire si vedano il prossimo capitolo e la Parte 4 - Token purpose-driven).
La "Proof-of-Work" (PoW) è il meccanismo di consenso utilizzato nella rete Bitcoin e in reti blockchain simili per garantire che una transazione tra token inviata sulla rete sia valida. Il meccanismo si basa sul presupposto che tutti i nodi di rete potrebbero essere potenzialmente danneggiati e che il minimo comune denominatore sia il denaro. Il Proof-of-Work è progettato in modo che (i) se spendi soldi e giochi secondo le regole, puoi guadagnare token di rete; (ii) barare non paga, perché il mining richiede hardware speciali e consuma grandi quantità di energia.
Quando sulla rete vengono inviati dei token, ogni nodo della rete può proporre nuove voci da aggiungere al ledger. Questi nodi convalidano le transazioni e competono tra loro per risolvere un complesso puzzle computazionale. In questo processo, devono raccogliere tutte le transazioni di rete recenti, inclusi alcuni metadati aggiuntivi, verificare le transazioni, indovinare un numero pseudo-casuale ("nonce") ed eseguire tutti i dati attraverso un algoritmo crittografico (SHA-256) per trovare l'hash del nuovo blocco. Ciò significa che devono eseguire un lavoro computazionale, motivo per cui questo processo viene definito "Proof-of-Work".
Se un nodo è il primo nella rete a trovare quel valore hash, può aggiungere il blocco al suo ledger e trasmettere il valore hash del nuovo blocco, inclusi tutti i dati del blocco, al resto della rete. Gli altri nodi possono ora verificare la validità dell'hash. Se accettano come valido questo blocco di transazioni appena aggiunto, aggiungono il nuovo blocco alla loro copia del ledger. Il Proof-of-Work è progettato in modo che l'hash sia difficile da trovare, mentre le soluzioni possono essere facilmente verificate come vere. Partecipando a questa corsa per trovare il valore hash, i nodi di mining si assicurano collettivamente che tutte le transazioni incluse in un blocco siano valide. Il nodo vincente viene ricompensato con la “block reward”, una ricompensa sotto forma di token di rete appena coniati (più potenziali commissioni di transazione). Questo è il motivo per cui il processo viene definito “mining”. L'hash di un blocco convalidato rappresenta quindi il lavoro svolto dal miner. Al momento della pubblicazione di questo libro, la ricompensa per la creazione di blocchi nella rete Bitcoin è di 6,25 BTC per blocco. La ricompensa viene ridotta del 50% ogni 210.000 blocchi, circa ogni quattro anni. Il prossimo "dimezzamento" (halving) delle ricompense sarà nel 2024.
Trovare il valore hash corretto richiede un po' di lavoro, sotto forma di tempo di elaborazione di un computer, noto anche come "funzione di costo della CPU". Se un miner impostore fosse il più veloce a trovare l'hash, il resto della rete non accetterebbe il blocco delle transazioni. Il miner in questione, quindi, non otterrebbe la ricompensa per il blocco, anche se ha investito potenza ed energia di calcolo. Questa è una misura economica per scoraggiare gli attacchi alla rete. Un attore economico razionale, quindi, si asterrebbe dall'ingannare il sistema, poiché ciò comporterebbe costi irrecuperabili degli investimenti energetici e infrastrutturali. Attraverso la backdoor dell'infrastruttura e dei costi dell'elettricità, gli attacchi alla rete sono resi proibitivi. Un attacco richiederebbe molta potenza di calcolo, consumo di energia e tempo. A causa della sua intensità di calcolo, anche la rete Bitcoin consuma molta energia.
La “difficoltà” di trovare quel valore hash, e quindi di creare un blocco, si adegua nel tempo in modo da mantenere relativamente costante il tempo di interblock di 10 minuti. Viene regolato periodicamente in funzione di quanta potenza di hashing è stata distribuita dalla rete di miner. Se i blocchi vengono creati in meno di 10 minuti, la difficoltà aumenta. Allo stesso modo, se la creazione dei blocchi richiede più di 10 minuti, la difficoltà diminuisce. La difficoltà aumenta anche con il livello di concorrenza, il numero di altri computer in competizione per convalidare un blocco.
La rete Bitcoin è (i) open source, (ii) pubblica e (iii) senza autorizzazione. La natura open source si riferisce al fatto che chiunque abbia competenze adeguate può contribuire al protocollo in modo pubblico. Inoltre, chiunque può prendere il codice, modificarlo e creare la propria versione di una rete di pagamento P2P. "Pubblico" si riferisce al fatto che chiunque può utilizzare la rete come sistema di pagamento (utente) e che chiunque può scaricare il protocollo e il ledger e verificare le transazioni (nodi completi). "Senza autorizzazione" si riferisce al fatto che chiunque può scaricare il protocollo e il ledger e annotarvi le transazioni (miner). Nella rete Bitcoin, ci sono quattro tipi di nodi: full nodes (nodi completi), mining nodes (nodi di mining), mining pool (pool minerari) e light nodes (nodi leggeri).
I nodi completi gestiscono l'intera cronologia della rete Bitcoin (il ledger) e convalidano le nuove transazioni man mano che vengono aggiunte al ledger. Chiunque utilizzi un nodo completo può inviare e ricevere token Bitcoin e verificare l'integrità delle transazioni, senza dover fare affidamento su terze parti. La verifica delle transazioni è una funzione complementare al mining di Bitcoin. Mentre il mining di Bitcoin viene eseguito quasi esclusivamente su hardware per scopi speciali, un nodo completo che convalida solo le transazioni può essere eseguito su un normale PC domestico con un hardware standard. Nei primi giorni della rete Bitcoin, tutti dovevano scaricare il ledger completo per poter inviare transazioni. Oggi, gli sviluppatori di software wallet offrono anche l'opzione dei nodi leggeri (vedi sotto).
I nodi di mining (miner o minatori) competono per il diritto di creare nuovi blocchi e aggiungere transazioni al ledger. Possono minare “in solitaria” o “in pool”. Da soli, devono mantenere la propria copia completa del ledger. I minatori vincenti vengono premiati con token Bitcoin per la creazione di nuovi blocchi (ricompensa per il blocco). Nel protocollo è specificato l'esatto meccanismo di ricompensa. Oltre alla ricompensa per il blocco, i minatori possono anche guadagnare dai costi di transazione. Tuttavia, questi costi di transazione non sono imposti dal protocollo ma possono essere richiesti da un minatore sul mercato libero. Le commissioni di transazione di solito aumentano quando il traffico di rete è elevato e la rete diventa congestionata.
Mining pool (pool minerari): nel corso degli anni, i singoli minatori hanno iniziato a collaborare e formare cartelli di nodi minerari. In uno scenario di mining pool, i singoli minatori collaborano con altri minatori per scrivere nel ledger e ricevere le ricompense. L'operatore del pool di mining mantiene un nodo completo ei singoli miner contribuiscono con la loro CPU (nota anche come hash-power). Cumulando gli hash di tutti i singoli minatori, possono aumentare le loro possibilità di essere il computer più veloce a scrivere un blocco di transazioni nel ledger. Tuttavia, il white paper originale di Bitcoin non ha tenuto conto di questa forma di collaborazione tra i minatori. Le ipotesi economiche si basano sulla "teoria dei giochi semplice", non sulla "teoria dei giochi collaborativa". Di conseguenza, la rete Bitcoin è diventata un sistema molto più centralizzato di quanto originariamente previsto. Alcune persone sostengono quindi che la realtà del meccanismo di consenso di Bitcoin possa essere descritta come una Proof-of-Work delegata” ed è diventata un oligopolio di una manciata di pool minerari, il che potrebbe non riflettere le intenzioni originali del creatore di Bitcoin, Satoshi Nakamoto.
I nodi leggeri sono stati creati per la verifica semplificata dei pagamenti (SPV) delle app di portafoglio per smartphone. Questo è il motivo per cui vengono chiamati anche nodi SPV o client SPV. A differenza dei nodi completi, non mantengono l'intero ledger e memorizzano solo copie di tutte le intestazioni di tutti i blocchi di transazione. Non possono verificare le transazioni in modo autonomo, poiché non hanno accesso a tutte le informazioni memorizzate nel ledger. I nodi leggeri si basano sulle informazioni fornite da altri peer nella rete che hanno accesso a tutti i dati del registro.
A differenza dei nodi di mining, i nodi completi non hanno un incentivo economico diretto per convalidare le transazioni. Tuttavia, esistono incentivi indiretti per eseguire un nodo completo invece di un nodo leggero. Nel possibile caso di un aggiornamento del protocollo, l'esecuzione di un nodo completo è l'unico modo per votare su come aggiornare la rete. Un altro motivo è il maggiore grado di privacy dei nodi completi, poiché tengono il registro completo e tutti i dati delle transazioni sul proprio dispositivo. I nodi leggeri, invece, funzionano in modo diverso poiché si basano su server di terze parti per trasmettere le transazioni alla rete, il che significa che quei server conoscono la cronologia delle transazioni del nodo leggero.
Tutti i movimenti del ledger sono di sola lettura. Una volta che un blocco di transazioni è stato accettato dalla rete, non può essere facilmente modificato o rimosso. Affinché ciò avvenga, tutti i blocchi dovrebbero essere ricalcolati, il che richiederebbe alla maggior parte dei partecipanti alla rete di concordare tali modifiche. Un utente malintenzionato dovrebbe ripetere il lavoro di calcolo di tutti i blocchi successivi, sulla maggior parte dei nodi di rete. Ciò richiederebbe il controllo o la corruzione della maggior parte dei nodi della rete. Anche se fosse possibile eseguire questi calcoli entro il periodo di creazione del blocco, il costo sarebbe molto più alto dei vantaggi per l'attacco alla rete. Sebbene la manipolazione sia possibile, il meccanismo è progettato per renderla irrealizzabile.
Questi siti web forniscono informazioni in tempo reale su quanto costa attualmente attaccare diverse reti blockchain in un cosiddetto “attacco del 51%”. Una rete Proof-of-Work è sicura fintanto che oltre il 50% del lavoro viene svolto da minatori onesti. Un "attacco del 51%" si verifica quando una singola persona o istituzione è in grado di controllare la maggior parte dell’hash rate (velocità di elaborazione dei calcoli) o della potenza di calcolo per manipolare la rete. Nella storia decennale di Bitcoin, nessuna manipolazione da parte di aggressori esterni ha avuto successo.
- Strumento online per verificare quanto costerebbe attaccare la rete Bitcoin:
https://gobitcoin.io/tools/cost-51-attack/ - Strumento online per verificare quanto costerebbe attaccare altre reti blockchain:
https://www.crypto51.app/
Se un attacco del 51% andasse a buon fine, potrebbe avere il seguente impatto: consentirebbe di (i) modificare i blocchi aggiungendo o rimuovendo transazioni, il che richiederebbe un PoW aggiuntivo (più vecchia è una transazione, più difficile diventa un attacco); (ii) censurare i partecipanti e quindi le transazioni di questi partecipanti; (iii) inviare le transazioni e poi annullarle; e (iv) modificare le regole del protocollo.
Quello che un attacco del 51% non può fare è modificare transazioni esistenti o transazioni false, come: (i) modificare l'importo inviato in una transazione esistente; (ii) cambiare il destinatario di una transazione esistente; o (iii) inviare i token di qualcuno senza la sua approvazione. Questo perché tutte le transazioni devono essere firmate con la chiave privata del proprietario del token, che non può essere rivelata per accordo di maggioranza della rete. La modifica di un dettaglio in una transazione esistente renderebbe il ledger "illegittimo", poiché in esso sarebbe contenuta una transazione senza una firma valida. Questi tipi di manipolazioni possono essere raggiunti solo forzando le chiavi private di un attore di rete. In alternativa, si potrebbe anche rompere l'algoritmo crittografico (SHA) per attaccare la rete, motivo per cui è essenziale utilizzare algoritmi crittografici che siano stati adeguatamente sottoposti a stress test (per approfondire: Parte 1 - Sicurezza dei token, crittografia).
In ingegneria informatica, le “forks” del software indicano che qualsiasi software libero e open source può essere copiato e modificato senza previa autorizzazione del team di sviluppo originale e senza violare la legge sul copyright. Il termine a volte si riferisce anche a una divisione nella comunità degli sviluppatori di un progetto esistente, piuttosto che solo al codice. La natura open source delle reti blockchain pubbliche consente a chiunque di scaricare il codice, modificarlo e iniziare a creare una rete separata basata su un pezzo di codice distinto.
In questo modo, si può (i) creare una nuova rete da zero semplicemente copiando la base di codice esistente e modificandola per costruire una nuova rete (“Zcash” e “Litecoin” ad esempio, sono basati su codice Bitcoin), o (ii) modificare una rete esistente, inclusi il ledger esistente e la comunità, in una continuazione diversa nell’interesse di un aggiornamento del protocollo. Questi aggiornamenti del protocollo possono causare una divisione della rete a seguito di controversie (come nel caso di "Bitcoin Cash" e "Ethereum Classic") o una deliberata secessione per motivi economici, che sono spesso progettati per estrarre valore economico al di sopra di qualsiasi discussione filosofica sul protocollo (come nel caso di "Bitcoin Gold", "Bitcoin Diamond" e "Bitcoin Platinum"). I tipi e le regole delle fork dipendono dai protocolli formali e informali di ciascuna rete. La rete Bitcoin e reti simili distinguono tra "hard fork" e "soft fork".
Una "hard fork" è un tipo di modifica del protocollo che non è compatibile con le versioni precedenti. I nodi che non si aggiornano alla nuova versione del protocollo non saranno in grado di elaborare le transazioni. Tutti i nodi che convalidano le transazioni secondo il vecchio protocollo tratteranno i blocchi prodotti secondo il nuovo protocollo come non validi. I nodi che vorranno adottare il nuovo protocollo dovranno quindi aggiornare il proprio software.
Una "soft fork” è un tipo di modifica del protocollo compatibile con le versioni precedenti. I nodi che non hanno aggiornato il protocollo sono ancora in grado di elaborare le transazioni se non violano le nuove regole del protocollo. I blocchi prodotti dai miner con il protocollo aggiornato sono accettati da tutti i nodi della rete. I blocchi prodotti dai miner con la vecchia versione vengono rifiutati dai nodi che eseguono la nuova versione del protocollo. Se i minatori della vecchia versione si vedono rifiutare i propri blocchi da una parte della rete, potrebbero essere inclini ad aggiornare anche loro. Le soft fork sono, quindi, un po' più graduali nel loro processo di votazione rispetto alle hard fork e richiedono diverse settimane. Se la maggior parte dei minatori esegue l'aggiornamento al nuovo protocollo, si parla di soft fork attivate dai miner (MASF). Se i nodi completi si coordinano, senza il supporto dei minatori, si parla di soft fork attivate dall'utente (UASF).
Uno split (divisione) può verificarsi quando alcuni nodi della rete continuano a utilizzare il vecchio protocollo mentre tutti gli altri utilizzano il nuovo protocollo. Gli aggiornamenti del protocollo tecnico avvengono abbastanza frequentemente e di solito non creano troppe controversie, soprattutto quando implicano aggiornamenti tecnici minori. La catena più corta muore e il token non ha valore di mercato. Tuttavia, la breve storia delle reti blockchain ha dimostrato che decisioni più politicizzate sugli aggiornamenti del protocollo possono portare a una divisione nella rete, in cui la catena di minoranza ha abbastanza seguaci o narrazione politica per mantenere un'economia propria. Un aspetto chiave di questo è una divisione nelle capacità intellettuali degli sviluppatori che supportano una rete o l'altra. Man mano che la comunità si divide, gli sviluppatori spesso devono prendere una posizione per una rete o per l'altra, il che può comportare una mancanza del potere di sviluppo necessario. Anche i miner devono scegliere quale rete continuare a supportare (per approfondire: Parte 2 - Economia istituzionale delle DAO & Governance off-chain vs on-chain).
Nel caso di una hard fork, chiunque possedesse token nella vecchia rete possiederà anche una quantità equivalente di token nella nuova rete di minoranza, che potrà quindi vendere o conservare. Ciò, tuttavia, richiede almeno uno scambio di token per listare il nuovo token della rete di minoranza; altrimenti, non c'è mercato per il token di quella rete e, di conseguenza, la rete svanisce nell'oblio. Una hard fork politicizzata sarebbe una mosca bianca e potrebbe avere un grave effetto sul valore dei propri token, a seconda di quale rete guadagnerà trazione nel lungo periodo. Esempi di hard fork politicizzate che dividono la rete sono "Ethereum Classic" (ETC)[^1] e "Bitcoin Cash" (BCH)[^2]. Come risultato di queste importanti fork della rete Bitcoin e della rete Ethereum, la questione della governance ha acceso un dibattito in corso nella comunità e sembra essere una delle domande di ricerca più importanti per gli anni a venire (per approfondire: Parte 2 - Economia istituzionale e governance delle DAO).
Inoltre, le divisioni temporali nella rete possono verificarsi accidentalmente, a causa delle latenze della rete. Se due miner trovano contemporaneamente soluzioni diverse per lo stesso blocco, entrambe valide, è possibile che la rete si divida temporaneamente. Quando ciò accade, i nodi nella rete hanno due versioni alternative del ledger su diverse parti della rete. Questo crea due reti blockchain parallele. Il protocollo Bitcoin ha una disposizione per risolvere queste divisioni temporali in modo che sopravviva solo un ramo della rete. In una rete Proof-of-Work come Bitcoin, la rete con più "Proof-of-Work cumulativo", chiamata anche "potenza di hashing" o "potenza di rete", è sempre considerata quella valida dai nodi della rete. In questo processo, la versione del ledger vincente viene determinata da un "voto" a maggioranza della rete. I nodi votano per una versione aggiornando il protocollo (o meno). La "lunghezza della blockchain" si riferisce al ramo di rete con più "Proof-of-Work cumulativo", non quella con il maggior numero di blocchi.
Le fork sopra menzionate sono il risultato degli aggiornamenti del protocollo di una rete blockchain esistente, che hanno portato a una divisione dei nodi di rete esistenti in due gruppi. Una tale suddivisione può influenzare il prezzo di mercato del token di rete, poiché entrambe le reti sono più piccole della rete originale. Un'altra forma di fork sarebbe una semplice fork tipica dei progetti open-source. Poiché la base di codice di Bitcoin è open source, chiunque può utilizzare questa base di codice come modello e creare una rete blockchain alternativa adattando alcune variabili, parametri o funzioni.
Nel corso degli anni, il protocollo Bitcoin è stato modificato centinaia di volte per creare versioni alternative di Bitcoin che siano più veloci o più anonime, come "Litecoin" o "Zcash". Ad un certo punto, è diventato chiaro che un protocollo blockchain fornisce un sistema operativo che consente a un gruppo di persone che non si conoscono o non si fidano l'una dell'altra di organizzarsi attorno a obiettivi specifici, non solo "denaro senza banche". Molti progetti, quindi, hanno provato a modificare la base di codice Bitcoin per facilitare altri tipi di trasferimenti di valore P2P, come l'archiviazione di file decentralizzata senza Amazon Web Services, come nel caso di "Sia" o social network senza Facebook, Twitter e simili, come nel caso di "Steemit". È emersa l'idea di allontanarsi dalle reti monouso che hanno un solo smart contract e creare invece un protocollo in cui è possibile eseguire qualsiasi tipo di transazione di valore P2P sulla stessa rete. Alcuni dei primi progetti più interessanti sono stati "Colored Coins" e "Mastercoin". Hanno usato il token Bitcoin come un salvadanaio per qualsiasi tipo di trasferimento di valore o contratto legale. Vitalik Buterin, che è stato coinvolto in quei progetti per un breve periodo, si è reso conto che questi adattamenti del protocollo Bitcoin erano possibili ma non abbastanza efficienti o flessibili. Successivamente, ha introdotto l'idea di disaccoppiare le funzionalità di smart contract dalle funzionalità di elaborazione della rete e ha avviato il progetto Ethereum. Ciò ha consentito un ambiente di sviluppo più flessibile rispetto alla rete Bitcoin e ad altre reti blockchain speciali. La rete Ethereum, per la prima volta, ha introdotto una rete decentralizzata che consentiva l'elaborazione di qualsiasi tipo di trasferimento di valore utilizzando smart contract. Questi possono essere facilmente creati con poche righe di codice e vengono elaborati dalla rete Ethereum, senza la necessità di creare la propria infrastruttura blockchain per scopi speciali. A differenza della rete Bitcoin, che è progettata per un singolo smart contract che regola i pagamenti P2P, la rete Ethereum è progettata come una rete informatica decentralizzata su cui è possibile elaborare qualsiasi tipo di smart contract utilizzando la macchina virtuale Ethereum (EVM) e qualsiasi tipo di il valore tokenizzato può essere trasferito (per approfondire: Parte 2 – Smart Contract; Parte 3 – Token).
L'emergere di Ethereum ha ispirato molti nuovi progetti blockchain a sviluppare reti di smart contract simili. Esempi di tali progetti includono: "Cardano", "Neo", "EOS", "Hyperledger Fabric", "Ontology" e molti altri. Ci sono vari fattori che saranno rilevanti per la valutazione della loro fattibilità, come fattori tecnici, economici e legali. Non è ancora chiaro quali soluzioni alternative alla rete Ethereum potrebbero diventare popolari e se ci sarà uno scenario del tipo "il vincitore prende tutto" o una coesistenza di più reti. Per ora, la comunità di Ethereum sembra avere la maggiore trazione e il vantaggio della prima mossa con molti sviluppatori, ma tutto può cambiare.
Inoltre, sono emersi sistemi di ledger distribuiti alternativi con tipi completamente diversi di meccanismi di consenso, come i grafi aciclici diretti (DAG) che non richiedono più la creazione di una catena di blocchi e utilizzano invece meccanismi criptoeconomici alternativi per raggiungere il consenso. Esempi di reti che utilizzano DAG come meccanismo di consenso sono "IOTA", "Byteball" o "Nano".
D'altra parte, istituzioni private come banche, compagnie assicurative e molte industrie a catena di approvvigionamento hanno capito che il concetto di gestione collettiva dei dati da parte di un sistema di ledger distribuito potrebbe essere un utile strumento di collaborazione industriale. Al contrario delle reti blockchain pubbliche e prive di autorizzazione, l'industria ha iniziato a progettare "ledger autorizzati", in cui tutti i validatori sono membri di un consorzio di settore, o almeno entità legali separate della stessa organizzazione. Tuttavia, il termine "blockchain" nel contesto di reti autorizzate e private è molto controverso e dibattuto. I critici si chiedono se un ledger autorizzato, in cui vi è "fiducia da parte dell'autorità", possa essere considerato una rete blockchain. I fautori dei ledger autorizzati sostengono che il termine "blockchain" si applica a qualsiasi struttura di dati distribuita in cui le transazioni sono sottoposte ad hashing come blocchi collegati, e quindi anche alle reti autorizzate che raggruppano le transazioni in una catena di blocchi.
Le reti pubbliche utilizzano meccanismi criptoeconomici (fiducia in base alla matematica) per mantenere la rete sicura con un meccanismo di consenso che incentiva il comportamento individuale per raggiungere un obiettivo collettivo. Il meccanismo di incentivazione è legato al token di rete. È essenziale mantenere questa rete di attori non affidabili, al sicuro da attacchi e manipolazioni. Le reti autorizzate, d'altra parte, sono gestite collettivamente da un insieme di attori di rete che si conoscono e si fidano a vicenda e non hanno bisogno di meccanismi di consenso computazionalmente impegnativi come il Proof-of-Work e non hanno bisogno di un token. La fiducia si basa sul sistema legale e sulla reputazione di attori della rete noti (fiducia per contratto legale). Il minimo comune denominatore di queste reti è l'esistenza di un registro, o ledger distribuito. Questo è il motivo per cui il termine "ledger distribuito" è emerso come termine più generale per descrivere le tecnologie derivate dalla rete Bitcoin. Potrebbero essere autorizzati o privi di autorizzazione, raggruppare transazioni in catene di blocchi o, come nel caso di IOTA, non utilizzare affatto una catena di blocchi.
I protocolli Blockchain e simili ledger distribuiti operano su Internet e possono essere concettualizzati in diversi componenti: (i) rete fisica: rappresentata da una rete P2P di computer che eseguono lo stesso protocollo; (ii) protocollo: definisce le regole di rete e le applica per consenso di tutti i nodi di rete. Ciò include incentivi economici legati al token nativo; (iii) ledger: gestire tutti gli asset sotto forma di un registro pubblico e condiviso di tutte le transazioni dal blocco genesis fino ad oggi; (iv) identificazione e indirizzamento: le risorse appartengono a identità che devono essere indirizzate in modo da poter trasferire i valori dall'una all'altra. Queste identità possono essere più o meno anonime, a seconda dei tipi di algoritmi crittografici utilizzati; nel caso delle reti di smart contract come Ethereum, gli (v) smart contract gestiscono le relazioni degli attori coinvolti, e rappresentano la logica di business o di governance.
Il Proof-of-Work di Bitcoin è rivoluzionario, ma ha un costo. Se da un lato garantisce la sicurezza in una rete non affidabile, è un meccanismo lento, energeticamente intenso e favorisce coloro che hanno più risorse economiche da spendere. Questo è il motivo per cui molti ricercatori e sviluppatori hanno iniziato a esplorare meccanismi di consenso alternativi per cercare di affrontare alcune delle principali sfide di Bitcoin. Le domande che devono essere risolte sono:
- Come raggiungere il consenso su una versione della storia che la maggioranza accetta come vera?
- Come si possono allineare le scarse risorse naturali (come l'elettricità e la CPU) con le risorse di rete per impedire agli attori malintenzionati di spammare il sistema con comportamenti scorretti?
- Quali sono i rischi per la sicurezza e i vettori di attacco?
Anche se vengono sperimentati molti algoritmi di consenso diversi, Proof-of-Work e Proof-of-Stake (PoS) sono attualmente i più diffusi. Tuttavia, è importante notare che le reti blockchain che utilizzano lo stesso meccanismo di consenso generale potrebbero avere specifiche diverse. Le reti Bitcoin ed Ethereum utilizzano diverse varianti di Proof-of-Work.
Lo stesso vale per Proof-of-Stake, un meccanismo di consenso in cui solo gli attori della rete che hanno una partecipazione finanziaria nella rete possono aggiungere i blocchi al ledger. A differenza del PoW, i validatori non competono tra loro per creare un blocco di transazioni. Invece di sacrificare energia per convalidare un blocco, gli utenti devono dimostrare di possedere una certa quantità di token di rete per generare un blocco. I token nel tuo portafoglio rappresentano il tuo “stake”. Esistono molte varianti di implementazioni del Proof-of-Stake.
Le prime proposte di Proof of Stake presumevano che coloro che hanno più interessi nel sistema abbiano un incentivo naturale ad agire in modo veritiero durante la convalida delle transazioni e la scrittura dei blocchi. Si presumeva che i possessori di token avrebbero avuto un interesse naturale nel successo a lungo termine della rete; altrimenti, la loro partecipazione nel sistema si sarebbe svalutata se avessero contribuito in modo non veritiero. Si è inoltre ipotizzato che più token si possiedono, più si è in gioco se la rete viene attaccata. I diritti di voto sono stati quindi progettati proporzionalmente alla quantità di token di rete detenuti. Tuttavia, c'è un problema nel meccanismo di Proof-of-Stake originale: al contrario del Proof-of-Work, dove l'estrazione è costosa, e quindi non ha senso sprecare energie per una fork che non farà guadagnare denaro, il Proof of Stake non richiede un lavoro particolarmente intenso a livello computazionale per creare un blocco. Si presume che il validatore non abbia nulla da perdere ma molto da vincere.
La rete "Peercoin" è stato il primo progetto a introdurre un meccanismo di Proof-of-Stake. Si sono poi susseguite altre reti con le proprie varianti, come “Tendermint” (“Cosmos”), “Ouroboros” (“Cardano”), “Tezos”, “Dfinity”, “Nxt”, “BlackCoin”, “NuShares/NuBits” e “Qora”, ciascuno dei quali ha proprietà diverse. Alcuni, come “Decred”, combinano elementi di Proof-of-Work e Proof-of-Stake. Il progetto Ethereum prevede di passare da Proof-of-Work a Proof-of-Stake con una hard fork (Casper). Gli sviluppatori di Ethereum hanno sviluppato diverse proposte su come farlo.
Il Delegated Proof-of-Stake (DPoS) è una variazione del PoS, implementata per la prima volta da "BitShares". È una variazione più radicale, una sorta di democrazia rappresentativa in cui i possessori di token possono trasferire il loro voto ai delegati per convalidare a loro nome. Ci sono generalmente tra 21 e 101 delegati eletti, in ordine casuale o meno, che potrebbero consegnare i loro blocchi. Questi delegati possono creare blocchi e impedire a parti non fidate di creare blocchi. Non possono modificare le transazioni, ma possono porre il veto a transazioni specifiche dall'inclusione nel blocco di rete successivo. Diverse reti hanno adottato la propria variazione di DPoS, esempi dei quali sono “Steemit”, “EOS” e “Lisk”. Invece di competere sulla convalida dei blocchi, ogni delegato ha un intervallo di tempo per pubblicare il proprio blocco. I possessori di token possono ritirare il proprio voto, se un delegato perde continuamente i propri blocchi o pubblica transazioni non valide. Questa centralizzazione parziale della creazione di blocchi si traduce in un migliore throughput delle transazioni (noto anche come "scalabilità") rispetto alla maggior parte degli altri meccanismi di consenso.
Esistono altre varianti di Proof-of-Stake, la maggior parte delle quali sono solo concettuali o sono state implementate da una sola rete: “Leased Proof-of-Stake” (PoS in leasing), “Transactions as Proof-of-Stake” (transazioni come PoS), “Proof-of-Importance” (prova di importanza), “Proof-of-Capacity” (di capacità), “Proof-of-Weight” (di peso), “Proof-of-Authority” (di autorità) e “Proof-of-Elapsed-Time” (di tempo trascorso).
Byzantine Fault Tolerance (BFT): un altro gruppo di meccanismi di consenso sono le variazioni alla tolleranza al problema dei generali bizantini (BFT), ad esempio i Federated Byzantine Agreements (FBA) implementati da “Ripple” o “Stellar”, Practical Byzantine Fault Tolerance (pBFT) implementato da “Hyperledger Fabric”, e Delegated Byzantine Fault Tolerance (dBFT) usato da “NEO.” Ancora, un altro gruppo di protocolli utilizza una combinazione di meccanismi, come “Hashgraph” che combina la BFT asincrona con protocolli di gossip (gossip protocols) e meccanismi di voto virtuale.
Grafi aciclici diretti (DAG): inoltre, esiste un'intera serie di protocolli che utilizzano digrafici aciclici, come “IoT Chain”, “Byteball”, “Nano” (Block Lattice), e IOTA (Tangle). Il meccanismo di consenso dei DAG è fondamentalmente diverso dalle blockchain. Invece di raggruppare i dati in blocchi che vengono poi confermati uno dopo l'altro, i grafici aciclici diretti richiedono l’aggiunta di nuovi dati per fare riferimento e convalidare i dati passati. Di solito, ogni nuova transazione dovrebbe fare riferimento e convalidare due transazioni precedenti. In tal modo, la rete arriva a formare un grafico di transazioni convergenti e confermate. Se un nodo convalida in modo errato una transazione passata, la transazione di quel nodo non potrebbe essere confermata dagli altri partecipanti.
Spiegare dettagliatamente ciascuno dei meccanismi di consenso sopra elencati va oltre lo scopo di questo libro e richiederebbe una o più pubblicazioni dedicate. La letteratura su questi protocolli nel contesto dei registri distribuiti è ancora scarsa ma in crescita. Tuttavia, molti di questi protocolli sono ancora in una fase concettuale, senza un'adeguata documentazione. In molti casi vengono implementati da un solo progetto, a volte senza essere adeguatamente studiati o senza aver subito il processo accademico di revisione tra pari.
Con l'avvento di tecnologie derivate che utilizzano regole di governance modificate rispetto al protocollo Bitcoin originale, sembra necessario classificare diversi sistemi di ledger distribuito. La distinzione principale si basa sulla questione di chi è autorizzato a (i) convalidare le transazioni, (ii) scrivere transazioni nel ledger (iii), leggere transazioni e (iv) utilizzare la rete. A seconda del tipo di ledger, la risposta cambia. Per semplificare le cose, possiamo dire che nelle reti pubbliche chiunque può leggere, scrivere e convalidare le transazioni e utilizzare la rete; mentre nelle reti private, solo i membri invitati possono leggere, scrivere e convalidare le transazioni e utilizzare la rete. Sono possibili anche varianti ibride. Un esempio potrebbe essere che la convalida e la scrittura delle transazioni è solo su invito, ma la lettura di (determinate) transazioni è pubblica. Nelle reti pubbliche e senza autorizzazione, tutti i nodi che partecipano al protocollo di consenso non sono attendibili, poiché non sono noti in anticipo. Senza il permesso di un'entità centralizzata, chiunque può scaricare il protocollo e la versione corrente del ledger per:
- Eseguire un nodo completo sul proprio dispositivo locale, convalidando le transazioni nella rete.
- Minare un blocco di transazioni, aggiungendo dati al ledger, partecipando così al processo di consenso (Proof-of-Work) e guadagnando token di rete.
- Inviare token attraverso la rete per vederli inclusi nel ledger se la transazione è valida.
- Utilizzare un software pubblico di esplorazione dei blocchi per realizzare tutti i dati relativi alle transazioni nella rete o condurre analisi della catena (big data) su tutti i dati relativi alla blockchain archiviati su un nodo completo.
Il meccanismo di consenso per tale configurazione deve tenere conto della malafede. Il token è un componente essenziale per rendere resistente agli attacchi questa rete di attori non fidati. Se da un lato gli incentivi sotto forma di token rendono sicure le reti non fidate, le rendono anche molto lente. Le reti pubbliche e senza autorizzazione possono gestire solo poche transazioni al secondo, il che le rende del tutto inadeguate per applicazioni su larga scala con volumi di transazioni elevati. Tuttavia, diverse soluzioni tecnologiche sono attualmente in fase di proposta e implementazione per risolvere questi problemi di scalabilità (per approfondire: Appendice – Soluzioni di scalabilità).
I registri privati e autorizzati, d'altra parte, hanno una configurazione federata con accordi contrattuali bilaterali. È un club per soli membri. La rete non è accessibile a partecipanti arbitrari. I membri si fidano l'uno dell'altro perché hanno accordi contrattuali bilaterali tra loro e, se qualcosa va storto, sanno a chi fare causa. I registri autorizzati, quindi, non hanno bisogno di un token per incentivare un'azione coordinata, mentre è parte integrante delle reti senza autorizzazione. Il fatto che le identità di tutti i nodi partecipanti siano conosciute in anticipo fornisce una protezione naturale contro gli "attacchi sybil". I ledger privati e autorizzati possono quindi regolare molte più transazioni al secondo, poiché non devono gestire una quantità sconosciuta di nodi anonimi. Forniscono inoltre una maggiore privacy rispetto alle attuali reti blockchain pubbliche, poiché i dati del registro non sono pubblicamente accessibili. I registri autorizzati vengono sviluppati principalmente da consorzi industriali. La verifica delle transazioni viene condotta da un insieme preselezionato di partecipanti, ad esempio sessanta istituti finanziari, ciascuno dei quali gestisce un nodo e dove quaranta devono firmare ciascun blocco affinché il blocco sia valido. A seconda del settore e del caso d'uso, il diritto di leggere i dati del ledger può essere pubblico, parzialmente pubblico o limitato ai partecipanti.
Mentre la maggior parte della letteratura sulla blockchain fa una distinzione binaria tra registri autorizzati e senza autorizzazione, vorrei sostenere che non esiste un "100% senza autorizzazione". Ogni meccanismo di consenso richiede una soglia minima di investimento che è necessario per poter convalidare le transazioni o scrivere nel ledger. Tuttavia, la maggior parte della popolazione mondiale non ha i mezzi economici per acquistare un hardware specializzato abbastanza potente per minare i Bitcoin. Anche per un nodo completo che convalida solo le transazioni in una rete blockchain pubblica e non richiede lo stesso livello di investimento hardware di un nodo di mining, è necessario investire in un normale PC. Al momento della stesura di questo libro, l'acquisto di un PC significa spendere almeno qualche centinaio di euro[^3] per convalidare le transazioni. Sebbene 500 euro non siano molti per una famiglia europea media, superano il reddito mensile di una parte considerevole della popolazione mondiale. Per non parlare dei costi necessari per un computer adatto al mining.
Inoltre, sebbene ad esempio un consenso basato sul PoS sia pubblico, non è del tutto privo di autorizzazione. Il meccanismo di consenso richiede che tu possieda una quantità minima di token di rete per poter convalidare le transazioni. "Senza autorizzazione" è quindi un termine relativo che non possiamo utilizzare in modo binario ma piuttosto come un gradiente, che va da "meno autorizzato" a "completamente autorizzato". In una fase così precoce dei sistemi di ledger distribuito, le soluzioni autorizzate possono essere utili in settori altamente regolamentati che desiderano basarsi su un registro distribuito ma sono soggetti a regolamentazione del governo. I sostenitori del settore affermano che le soluzioni federate possono fornire livelli più elevati di efficienza e sicurezza e ridurre i problemi di frode delle istituzioni finanziarie tradizionali. Non è molto probabile che le blockchain private rivoluzioneranno il sistema finanziario, ma possono sostituire i sistemi legacy, rendendo il settore più efficiente. I registri autorizzati potrebbero anche essere un passo verso una più ampia adozione di reti pubbliche e senza autorizzazione, una volta che la tecnologia sottostante diventa più scalabile e matura e meglio compresa dalle autorità.
Non è chiaro come si evolverà la tecnologia nel medio-lungo periodo. Alcuni prevedono che i registri autorizzati potrebbero subire la stessa sorte delle "Intranet" nei primi anni '90, quando le società private costruirono le proprie reti private, perché avevano paura di connettersi con l'Internet pubblica. Nel tempo, questa paura è scomparsa. Oggi, le Intranet vengono utilizzate in casi molto limitati in cui sono richiesti elevati livelli di sicurezza.
Le reti blockchain e i sistemi di registro distribuito derivati forniscono un'infrastruttura per la gestione dei diritti. Ogni processo, attività e pagamento avrebbe una registrazione e una firma digitali che potrebbero essere identificate, convalidate, archiviate e condivise. Molti ruoli intermediari come avvocati, broker, banchieri e amministratori pubblici potrebbero essere sostituiti da sistemi di contabilità distribuita. Individui, organizzazioni, macchine e algoritmi possono ora interagire tra loro con poca difficoltà e una frazione degli attuali costi di transazione. Questa nuova infrastruttura consente molte nuove applicazioni, le più importanti delle quali sono:
Trasparenza e controllo: le reti blockchain e altri registri distribuiti consentono maggiore trasparenza e controllo lungo la catena di fornitura di beni e servizi, inclusi i servizi finanziari che sono stati tokenizzati, il che risolverebbe molte domande sulla trasparenza della catena di approvvigionamento, la riduzione della corruzione e un maggiore controllo su cosa succede ai nostri dati privati.
Riduzione della burocrazia: smart contract e soluzioni simili di gestione dei diritti hanno il potenziale per ridurre la burocrazia e i costi di coordinamento delle transazioni aziendali (per approfondire: Parte 2 – Smart contract).
Risoluzione del problema del modello principale-agente nelle organizzazioni: i registri distribuiti forniscono anche uno strumento di coordinamento globale per nuovi tipi di organizzazioni decentralizzate e talvolta anche autonome (per approfondire: Parte 2 – Economia istituzionale e governance delle DAO).
Il token come pallottola d’argento: i token crittografici come applicazione di reti blockchain e registri derivati potrebbero essere rivoluzionari come l'emergere del WWW, che ha permesso la creazione di pagine web visivamente accattivanti con poche righe di codice e la navigazione in Internet tramite link, invece di utilizzare le interfacce a riga di comando. È diventato altrettanto facile creare un token con poche righe di codice di smart contract.
Uno dei più grandi casi d'uso di ledger distribuiti è la trasparenza e la provenienza lungo la catena di fornitura di beni e servizi. Le catene di approvvigionamento rappresentano una rete complessa di entità geograficamente distanti e legalmente indipendenti che scambiano merci, pagamenti e documenti attraverso una rete dinamica. La loro architettura è abbastanza simile alle reti blockchain, ma a differenza delle reti blockchain, tutti i documenti sono gestiti in silos di dati. Di conseguenza, i sistemi di gestione dei documenti lungo queste reti della catena sono spesso inefficienti, hanno interfacce complesse e sono costosi. Allo stesso modo, il comportamento sostenibile delle aziende e degli individui è difficile da monitorare e non ben ricompensato. Acquirenti e venditori hanno poche o nessuna informazione sulla provenienza dei prodotti che acquistano, comprese potenziali frodi, inquinamento o violazioni dei diritti umani.
I ledger distribuiti consentono a un gruppo eterogeneo di attori di rete lungo una catena di approvvigionamento di scambiare dati senza interruzioni. I documenti e le transazioni possono essere elaborati quasi in tempo reale, poiché il controllo e l'applicazione possono essere automatizzati, e questo facilita ostacoli come la creazione di più copie di documenti o incongruenze dei dati. Monitorare la provenienza di beni e servizi lungo le catene di approvvigionamento globali può diventare molto più fattibile di oggi. Le soluzioni basate sul Web3 possono fornire (i) maggiore trasparenza degli impatti ambientali e (ii) origini, tipo di produzione e ingredienti del cibo che mangiamo e condizioni in cui vengono coltivate le piante o come vengono trattati gli animali. Molte aziende e iniziative di settore, come "Provenance", "Ambrosus", "Modum", "OriginTrail", "Vechain", "Wabi" o "Wantonchain", hanno iniziato a implementare infrastrutture basate su Web3 per ottimizzare le loro catene del valore , migliorare le inefficienze, liberare capitale circolante e rendere più accessibili beni e servizi. Tali soluzioni, tuttavia, richiedono sempre una combinazione di un insieme di tecnologie, inclusi algoritmi di apprendimento automatico e dati dal Web fisico, l'Internet of Things (per approfondire: Parte 2 – Oracoli degli Smart Contract). Le applicazioni di contabilità distribuita possono anche garantire una maggiore responsabilità per quanto riguarda i diritti umani, come le condizioni di lavoro generali, il lavoro minorile o l’ottenimento di un salario equo. Progetti che lavorano su tali soluzioni: "bext360", "fairfood" e "Namahe". Possono inoltre essere utilizzati per fornire un maggiore controllo sui nostri dati privati (per approfondire: Parte 1 – Identità user-centriche, Protezione dei dati) e creare mercati di dati P2P (Ocean Protocol). Sebbene in teoria questo livello di trasparenza su ciò che accade ai nostri dati privati potrebbe essere fornito anche con le soluzioni attuali, dovremmo fidarci di un'istituzione centralizzata.
Le reti blockchain sono infrastrutture pubbliche che mantengono collettivamente un registro condiviso e distribuito, in cui copie immutabili e crittografate delle informazioni sono archiviate su ogni computer della rete. \
Il ledger contiene tutte le transazioni effettuate. Le transazioni vengono archiviate a prova di manomissione: l'alterazione in un blocco cambierà i blocchi successivi. Il ledger, memorizzato su tutti i computer della rete, garantisce che ogni token venga trasferito una sola volta. Agisce come un notaio digitale e una marca temporale pubblicamente verificabile. \
Tutti i partecipanti alla rete hanno uguale accesso agli stessi dati in tempo reale. Le transazioni elaborate dalla rete sono trasparenti per tutti gli attori e possono essere ricondotte alla loro origine. \
A differenza dei database distribuiti, le blockchain consentono il controllo distribuito, in cui parti diverse che non si fidano l'una dell'altra possono condividere informazioni senza richiedere un amministratore centrale. Un'amministrazione algoritmica della logica di business e delle regole di governance, insieme con protocolli di consenso e smart contract, fornisce il livello successivo di automazione delle nostre attività socio-economiche.
Il concetto di blockchain si basa sull'idea delle reti P2P e fornisce un set di dati universale di cui ogni attore può fidarsi, anche se potrebbe non conoscere o non fidarsi degli altri. Le persone e le istituzioni che non si conoscono o non si fidano l'una dell'altra e risiedono in paesi diversi, essendo soggette a giurisdizioni diverse e che non hanno accordi legalmente vincolanti tra loro, possono ora interagire su Internet senza la necessità di terze parti fidate come banche, piattaforme Internet o altri tipi di istituti di compensazione.
Sin dagli anni '80, in diverse fasi evolutive, nell'ambiente accademico sono state discusse idee sulle reti P2P protette crittograficamente. Tuttavia, prima dell'emergere di Bitcoin, non c'era mai stata un'implementazione pratica di una rete P2P che riuscisse ad evitare il problema della doppia spesa, senza la necessità di intermediari fidati che garantissero lo scambio di valore.
Il "problema della doppia spesa" si riferisce al fatto che nell'attuale Internet, il denaro digitale, sotto forma di file, può essere copiato e le copie dello stesso file digitale possono essere inviate da un computer ad altri computer contemporaneamente.
I meccanismi di consenso, come il Proof-of-Work, consentono un controllo distribuito. Si basano sulla combinazione di incentivi economici e crittografia. Per premiare gli attori della rete con un token di rete nativo viene applicata la teoria dei giochi. Questo meccanismo di ricompensa è progettato in modo che sia economicamente impossibile imbrogliare la rete. Rende estremamente difficile falsificare la blockchain, a causa dell'enorme quantità di potenza di calcolo che sarebbe necessaria per farlo.
A differenza delle reti pubbliche e senza autorizzazione, le reti autorizzate sono solo su invito, il che significa che tutti i validatori sono membri di un consorzio.
"Ledger distribuito" è emerso come termine generico utilizzato per descrivere le tecnologie che forniscono registrazioni o informazioni a tutti coloro che le utilizzano, autorizzati o privi di autorizzazione, e indipendentemente dai loro meccanismi di consenso o dalle strutture dei dati.
- Agreda, Victor: “Taxonomy of Blockchain Consensus,” https://strategiccoin.com/taxonomy-of-blockchains-consensus-2018/
- Antonopoulos, Andreas; „Bitcoin security model: trust by computation“. Radar. O‘Reilly, 2014, Archived from the original on 31 October 2018: http://radar.oreilly.com/2014/02/bitcoin-security-model-trust-by-computation.html
- Antonopoulos, Andreas M.; “Mastering Bitcoin. Unlocking Digital Cryptocurrencies”, Sebastopol, CA: O‘Reilly Media, 2014
- Back, Adam; „A partial hash collision based postage scheme“, October 2014 http://www.hashcash.org/papers/announce.txt
- Ballandies, Mark C.; Dapp, Marcus M.; Pournaras, Evangelos: “Decrypting Distributed Ledger Design - Taxonomy, Classification and Blockchain Community Evaluation”, 2018: https://arxiv.org/pdf/1811.03419.pdf
- Bitcoin.Wiki contributors: “Softfork”, Bitcoin Wiki: https://en.bitcoin.it/wiki/Softfork (accessed Nov 30, 2018).
- Buterin, Vitalik: “The Meaning of Decentralization”, Feb 6, 2017: https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274
- Buterin, Vitalik: “On Public and Private Blockchains”, Aug 6, 2015: https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/
- Catalini, Christian; Gans, Joshua S.; „Some Simple Economics of the Blockchain“. SSRN Electronic Journal, 2016
- Ethereum White Paper: https://github.com/ethereum/wiki/wiki/White-Paper
- Ethereum Yellow Paper: https://ethereum.github.io/yellowpaper/paper.pdf
- Gervais, Arthur; Karame, Ghassan O.; Capkun, Vedran; Capkun, Srdjan. „Is Bitcoin a Decentralized Currency?“, InfoQ & IEEE computer society, Archived from the original on 10 Nov 2018: https://www.researchgate.net/publication/270802537_Is_Bitcoin_a_Decentralized_Currency
- Golden, Sara; Price, Allison: “Sustainable Supply Chains. Better Global Outcomes with Blockchain.” Jan 2018, retrieved from: https://www.newamerica.org/documents/2067/BTA_Supply_Chain_Report_r2.pdf
- Jackson, Matthew O.: “Mechanism Theory”, Humanities and Social Sciences 228-77, California Institute of Technology Pasadena, California 91125, U.S.A. October 12, 2000, revised December 8, 2003
- Kravchenko, Pavel: “Ok, I need a blockchain, but which one?”, Sep 26, 2016: https://medium.com/@pavelkravchenko/ok-i-need-a-blockchain-but-which-one-ca75c1e2100
- Nakamoto, Satoshi: “Bitcoin: A Peer-to-Peer Electronic Cash System”, 2008: https://bitcoin.org/bitcoin.pdf
- N.N. “A Crash Course in Mechanism Design for Cryptoeconomic Applications - Understanding the Basic Fundamentals of “Cryptoeconomics”, BlockChannel, Oct 17, 2017: https://medium.com/blockchannel/a-crash-course-in-mechanism-design-for-cryptoeconomic-applications-a9f06ab6a976
- N.N.: "Blockchains: The great chain of being sure about things", The Economist, 31 October 2015: https://www.economist.com/briefing/2015/10/31/the-great-chain-of-being-sure-about-things
- Poelstra, Andrew: “Mimblewimble”, 2016-10-06 (commit e9f45ec) diyhpl.us/~bryan/papers2/bitcoin/mimblewimble-andytoshi-draft-2016-10-20.pdf
- Satyawan, Tarar “A Crash Course on Consensus Protocols”, May 9, 2018: https://medium.com/@satyawan.tarar1985/a-crash-course-on-consensus-protocols-29264c393097
- Tasca, Paolo; Tessone, Claudio J,: “A Taxonomy of Blockchain Technologies: Principles of Identification and Classification”, Ledger, Vol 4, 2019: http://ledger.pitt.edu/ojs/index.php/ledger/issue/view/5
- Stark, Josh: “Making Sense of Cryptoeconomics”, Aug 19, 2017 https://www.coindesk.com/making-sense-cryptoeconomics
- Tomaino, Nick, “Cryptoeconomics 10”, Jun 4, 2017, https://thecontrol.co/cryptoeconomics-101-e5c883e9a8ff
- Wang, Wenbo; Dinh Thai Hoang, Hu, Peizhao; Xiong, Zehui; Niyato, Dusit; Wang, Ping; Wen, Yonggang; In Kim, Dong: “A Survey on Consensus Mechanisms and Mining Strategy Management in Blockchain Networks”: https://arxiv.org/pdf/1805.02707.pdf
- Wei, Bai: “Mechanism Design in Cryptoeconomics”, May 31, 2018: https://medium.com/secbit-media/mechanism-design-in-cryptoeconomics-6630673b79af
- Voshmgir, Shermin: “Blockchain & Sustainability,” Crypto3conomics blog, Medium, Aug 11, 2018, retrieved from: https://medium.com/crypto3conomics/blockchain-sustainability-7d1dd90e9db6
- Wikipedia contributors: "Blockchain," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/wiki/Blockchain (accessed Nov 11, 2018).
- Witherspoon, Zane :"A Hitchhiker’s Guide to Consensus Algorithms," November 28th 2017: https://hackernoon.com/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3
- Bitcoin 51% Attack Calculator: https://gobitcoin.io/tools/cost-51-attack/
- 51% Attack Calculator: https://crypto51.app/
- Ambrosus: https://ambrosus.com/
- Bitcoin Gold: https://bitcoingold.org/
- Bitcoin Diamond: https://www.bitcoindiamond.org/
- Bitcoin Cash: https://www.bitcoincash.org/
- Bitcoin Platinum: https://bitcoinplatinum.github.io/
- BitShares: https://bitshares.org/
- Block Lattice: https://docs.nano.org/integration-guides/the-basics/#block-lattice-design
- BlackCoin: http://blackcoin.co/
- Bitcoin Cash: https:bitcoincash.org/
- Byteball: https://byteball.org/
- Cardano: https://cardano.org/en/home/
- Colored Coins: http://coloredcoins.org/
- Cosmos: https://cosmos.com/
- Decred: https://decred.org/
- Dfinity: https://dfinity.org/
- fairfood: http://fairfood.nl/
- Ethereum Classic: https://ethereumclassic.org/
- EOS: https://eos.io/
- Hyperledger Fabric: https://hyperledger.org/projects/fabric
- Litecoin: https://litecoin.org/
- Lisk: https://lisk.io/
- IOTA: https://iota.org/
- IoT Chain: https://iotchain.io/
- Mastercoin: https://en.wikipedia.org/wiki/Mastercoin
- Modum: https://modum.io/
- Nano: https://nano.org/
- Neo: https://neo.org/
- Nxt: https://nxt.org/
- NuShares/NuBits: https://nubits.com/nushares
- Ocean: https://oceanprotocol.com/
- OriginTrail: https://origintrail.io/
- Provenance: https://provenance.org/
- Qora: http://www.qora.org/
- Ontology: https://ont.io/
- Ripple: https://ripple.com/
- Stellar: https://stellar.org/
- Steemit: https://steemit.com/
- Tezos: https://tezos.com/
- Vechain: https://www.vechain.org/
- Wabi: https://wacoin.io/
- Wantonchain: https://www.waltonchain.org/
[^1]: L'hard fork di Ethereum è il risultato di "TheDAO", in cui circa 50 milioni di dollari sono stati drenati a causa di una vulnerabilità nel codice. L'hard fork, che ha censurato retroattivamente la transazione che ha portato a questo drenaggio di soldi, è stata fortemente politicizzata. Gli avversari dell'hard fork hanno insistito sull'immutabilità del ledger. Di conseguenza, il token della rete di minoranza che si oppone all'hard fork - Ethereum Classic - è entrato nella storia per essere stato il primo token di rete di minoranza ad essere quotato in borsa.
[^2]: L'aumento delle commissioni di transazione sulla rete Bitcoin a causa della congestione della rete è stata la motivazione per una proposta da parte di alcuni sviluppatori della comunità, di aumentare la dimensione del blocco in un aggiornamento del protocollo che richiedeva una hard fork. La proposta ha incontrato una notevole opposizione da parte di altri sviluppatori di rete. Dopo un dibattito di due anni, la controversa hard fork ha condotto nel luglio 2017 alla formazione di una nuova community con una proposta diversa, chiamata Bitcoin Cash. Il 1° agosto 2017, Bitcoin Cash ha iniziato a scambiare a circa 240 USD, mentre Bitcoin cambiava a circa 2700 USD.
[^3]: È possibile eseguire un nodo completo su un Raspberry PI (un mini computer economico) e una scheda SD, il che costerebbe poco meno di 100 euro. Tuttavia, è comunque necessario un normale PC per scaricare l'intera blockchain (almeno BTC ed ETH). Una volta scaricato il ledger completo, è possibile eseguire un nodo completo su un Raspberry PI.