Cos'è la Tecnologia Blockchain? La Guida Definitiva
Indice dei contenuti
Capitolo 1 - Blockchain 101
Cos'è la blockchain?
Come sono collegati i blocchi?
Blockchain e decentralizzazione
Il Problema dei Generali Bizantini
Perché le blockchain devono essere decentralizzate?
Cos'è il network peer-to-peer?
Cosa sono i nodi blockchain?
Blockchain pubbliche vs. private
Come funzionano le transazioni?
Come effettuare transazioni in Bitcoin
Chi ha inventato la tecnologia blockchain?
Pro e contro della tecnologia blockchain
Capitolo 2 - Come funziona la blockchain?
Come vengono aggiunti i blocchi alla blockchain?
Mining (Proof of Work)
Staking (Proof of Stake)
Altri algoritmi di consenso
Posso invertire le transazioni blockchain?
Cos'è la scalabilità blockchain?
Perché la blockchain ha bisogno di scalare?
Cos'è un fork blockchain?
Capitolo 3 - Per cosa è usata la blockchain?
La blockchain per le catene di fornitura
Blockchain e industria del gaming
La blockchain per l'assistenza sanitaria
Rimesse blockchain
La blockchain e l'identità digitale
Blockchain e Internet of Things (IoT)
La blockchain per la governance
Blockchain per beneficenza
Blockchain per speculazione
Crowdfunding con la blockchain
Blockchain e file system distribuiti
Cos'è la Tecnologia Blockchain? La Guida Definitiva
Home
Articoli
Cos'è la Tecnologia Blockchain? La Guida Definitiva

Cos'è la Tecnologia Blockchain? La Guida Definitiva

Intermedio
Pubblicato Dec 30, 2019Aggiornato Dec 28, 2022
33m

Capitoli

  1. Blockchain 101

  2. Come funziona la blockchain?

  3. Per cosa è usata la blockchain?


Capitolo 1 - Blockchain 101

Contenuti


Cos'è la blockchain?

Una blockchain è un tipo speciale di database. Potresti aver anche sentito il termine tecnologia a registro distribuito (o DLT) – in molti casi, si riferiscono alla stessa cosa.

Una blockchain ha delle proprietà uniche. Ci sono regole che governano il modo in cui i dati possono essere aggiunti, e una volta archiviati, è virtualmente impossibile modificarli o cancellarli.

I dati vengono aggiunti nel corso del tempo in strutture chiamate blocchi. Ciascun blocco è costruito sopra il precedente e include un pezzo di informazione che lo collega ad esso. Esaminando il blocco più recente, possiamo verificare che sia stato creato dopo il suo precedente. Quindi, se continuiamo fino in fondo alla “catena” raggiungeremo il primo blocco – conosciuto come blocco genesi.

Per fornire un'analogia, supponiamo di avere una tabella con due colonne. Nella prima casella della prima riga, inseriamo i dati che vogliamo conservare.

I dati della prima casella vengono convertiti in un identificatore a due lettere, che verrà poi utilizzato come parte del prossimo input. In questo esempio, l'identificatore a due lettere KP deve essere usato per compilare la casella successiva nella seconda riga (defKP). Questo significa che se cambiassimo i dati del primo input (abcAA), otterremmo una combinazione di lettere diversa in tutte le altre caselle.


Un database in cui ogni voce è collegata alla precedente.

Un database in cui ogni voce è collegata alla precedente.


Osservando ora la riga 4, il nostro identificatore più recente è TH. Abbiamo detto che non è possibile tornare indietro e rimuovere o cancellare voci. Questo perché sarebbe facile per chiunque scoprire che è stato fatto, e tutti ignorerebbero semplicemente il tentativo di modifica.

Supponiamo di cambiare i dati nella prima casella – otterremo un identificatore diverso, e di conseguenza la seconda casella avrà dati differenti, portando a un identificatore diverso nella riga 2, e così via. In sostanza, TH è un prodotto di tutte le informazioni inserite prima di lui.


Come sono collegati i blocchi?

Quello che abbiamo illustrato sopra – con i nostri identificatori a due lettere – è un'analogia semplificata di come la blockchain utilizza le funzioni di hash. L'hashing è la colla che tiene insieme i blocchi. Consiste nel prendere dati di qualsiasi dimensione e passarli attraverso una funzione matematica per produrre un output (una hash) che ha sempre la stessa lunghezza.

Le hash usate nelle blockchain sono interessanti, in quanto le probabilità di trovare due pezzi di dati che producono lo stesso output sono astronomicamente basse. Come per i nostri identificatori sopra, qualsiasi modifica, anche minima, dei dati di input porterà a un output completamente diverso.

Vediamo ora come opera SHA256, una funzione usata ampiamente in Bitcoin. Come puoi vedere, anche solo modificare le maiuscole è sufficiente per alterare completamente l'output.


Dati di input

Output SHA256

Binance Academy

886c5fd21b403a139d24f2ea1554ff5c0df42d5f873a56d04dc480808c155af3

Binance academy

4733a0602ade574551bf6d977d94e091d571dc2fcfd8e39767d38301d2c459a7

binance academy

a780cd8a625deb767e999c6bec34bc86e883acc3cf8b7971138f5b25682ab181


Il fatto che non sia ancora stata trovata nessuna collisione in SHA256 (ovvero, due diversi input che producono lo stesso output) è incredibilmente importante nel contesto delle blockchain. Significa che ciascun blocco può ricondurre al precedente includendo la sua hash, e qualsiasi tentativo di modificare blocchi più vecchi sarà immediatamente evidente.


Ogni blocco contiene un'impronta digitale del precedente.

Ogni blocco contiene un'impronta digitale del precedente.


Blockchain e decentralizzazione

Abbiamo spiegato la struttura di base di una blockchain. Tuttavia, quando senti parlare di tecnologia blockchain, è probabile che la discussione non coinvolga solo il database, ma anche gli ecosistemi costruiti intorno alle blockchain. 

Come strutture di dati indipendenti, le blockchain sono veramente utili solo in applicazioni di nicchia. Le cose si fanno interessanti quando le usiamo come strumenti per consentire a estranei di coordinarsi tra di loro. Combinata con altre tecnologie e una buona quantità di teoria dei giochi, una blockchain può agire come registro distribuito non controllato da nessuno.

Questo significa che nessuno ha il potere di modificare le voci al di fuori delle regole del sistema (di cui parleremo a breve). In questo senso, potremmo dire che il registro appartiene contemporaneamente a tutti: i partecipanti raggiungono un accordo sul suo stato in qualsiasi momento.


Il Problema dei Generali Bizantini

La vera sfida di fronte a un sistema come quello descritto sopra si chiama Problema dei Generali Bizantini. Concepito negli anni '80, descrive un dilemma in cui dei partecipanti isolati devono comunicare per coordinare le proprie azioni. Il dilemma specifico coinvolge alcuni generali dell'esercito che circondano una città e devono decidere se attaccarla o no. I generali possono comunicare soltanto tramite messaggeri. 

Ognuno deve decidere se attaccare o ritirarsi. Non importa se attaccano o battono in ritirata, purché tutti i generali concordino su una decisione comune. Se decidono di attaccare, avranno successo solo muovendosi allo stesso tempo. Quindi, come possiamo garantire che riescano a farlo? 

Certo, possono comunicare tramite messaggeri, ma cosa succede se il messaggero viene intercettato con il messaggio “attaccheremo all'alba”, e questo messaggio viene sostituito con “attaccheremo stasera”? E se uno dei generali ha cattive intenzioni e inganna deliberatamente gli altri per garantire che vengano sconfitti?


Tutti i generali hanno successo quando attaccano (sinistra). Quando alcuni si ritirano mentre altri attaccano, saranno sconfitti (destra).

Tutti i generali hanno successo quando attaccano (sinistra). Quando alcuni si ritirano mentre altri attaccano, saranno sconfitti (destra).


Abbiamo bisogno di una strategia in cui sia possibile raggiungere il consenso, anche se i partecipanti si rivelano maligni o i messaggi vengono intercettati. Non essere in grado di mantenere un database non è una questione di vita o di morte come può esserlo attaccare una città senza rinforzi, ma vale lo stesso principio. Se non c'è nessuno a supervisionare la blockchain e a dare agli utenti le “corrette” informazioni, gli utenti devono poter comunicare tra di loro.

Per superare il potenziale fallimento di un utente (o di molti), i meccanismi della blockchain devono essere progettati accuratamente per essere resistenti a tali ostacoli. Un sistema in grado di fare ciò è definito come Byzantine fault-tolerant. Come vedremo a breve, gli algoritmi di consenso vengono utilizzati per far rispettare regole rigide.


Perché le blockchain devono essere decentralizzate?

Potresti, ovviamente, operare una blockchain da solo, ma ti ritroveresti con un database scomodo in confronto ad alternative superiori. Il suo vero potenziale può essere sfruttato in un contesto decentralizzato – ovvero, un contesto in cui tutti gli utenti sono pari. In questo modo, la blockchain non può essere cancellata e nessun malintenzionato può prenderne il controllo.


Cos'è il network peer-to-peer?

Il network peer-to-peer (P2P) è il livello fegli utenti (o i generali nel nostro esempio precedente). Non ci sono amministratori, quindi invece di contattare un server centrale ogni volta che vuole scambiare informazioni con altri, l'utente le invia direttamente ai suoi peer. 

Considera il grafico qui sotto. A sinistra, A deve inviare il suo messaggio tramite il server per arrivare a F. A destra, invece, i due sono connessi senza un intermediario.


Un network centralizzato (sinistra) vs. uno decentralizzato (destra).

Un network centralizzato (sinistra) vs. uno decentralizzato (destra).


Normalmente, il server mantiene tutte le infromazioni di cui gli utenti hanno bisogno. Quando accedi a Binance Academy, stai chiedendo ai suoi server di fornirti tutti gli articoli. Se il sito web va offline, non potrai vederli. Tuttavia, se hai scaricato tutti i nostri contenuti, puoi caricarli sul tuo computer senza chiedere a Binance Academy. 

In sostanza, questo è ciò che fa ogni peer con la blockchain: l'intero database è conservato sui loro computer. Se qualcuno lascia il network, gli utenti rimanenti potranno comunque accedere alla blockchain, e condividere informazioni tra loro. Quando un nuovo blocco viene aggiunto alla catena, i dati vengono propagati attraverso il network in modo che tutti possano aggiornare la propria copia del registro.

Puoi leggere il nostro articolo I Network Peer-to-Peer Spiegati per una discussione più approfondita su questo tipo di network.


Cosa sono i nodi blockchain?

I nodi sono semplicemente i dispositivi connessi al network – quelli che conservano copie della blockchain e condividono informazioni con gli altri. Gli utenti non devono gestire manualmente questi processi. In genere, tutto quello che devono fare è scaricare ed eseguire il software della blockchain, e il resto sarà fatto automaticamente.

Quello che abbiamo scritto sopra descrive un nodo nel senso più puro, ma la definizione può anche includere altri utenti che interagiscono con il network in qualsiasi modo. Nelle criptovalute, per esempio, una semplice applicazione wallet sul tuo smartphone è conosciuta come un light node


Blockchain pubbliche vs. private

Come forse saprai, Bitcoin ha gettato le fondamenta per la crescita del settore blockchain fino a ciò che è oggi. Da quando Bitcoin ha iniziato a dimostrarsi un asset finanziario legittimo, diversi innovatori hanno riflettuto sul potenziale della tecnologia sottostante applicata ad altri settori. Questo ha portato a un'esplorazione della blockchain per innumerevoli casi d'uso al di fuori della finanza.

Bitcoin è ciò che chiamiamo una blockchain pubblica. Questo significa che chiunque può vedere le transazioni in esso contenute, e per unirsi è sufficiente avere una connessione a internet e il software necessario. Dato che non ci sono altri requisiti per la partecipazione, possiamo riferirci a questo ambiente come permissionless.

Al contrario, ci sono altri tipi di blockchain chiamate blockchain private. Questi sistemi stabiliscono regole su chi può vedere e interagire con la blockchain. Per questo, ci riferiamo a loro come ambienti permissioned. Anche se le blockchain private possono sembrare superflue a prima vista, hanno alcune importanti applicazioni – principalmente in contesti aziendali.

Per saperne di più su questo argomento, vedi Blockchain Private, Pubbliche e Consorzi - Qual è la Differenza?



Vuoi iniziare con le criptovalute? Compra Bitcoin su Binance!



Come funzionano le transazioni?

Se Alice vuole pagare Bob con un bonifico bancario, deve comunicarlo alla banca. Per semplificare le cose, supponiamo che le due parti usino la stessa banca. La banca controlla che Alice abbia i fondi per effettuare la transazione, prima di aggiornare il suo database (ad es., -$50 ad Alice, +$50 a Bob).

Questo non è molto diverso da quello che avviene con una blockchain. Dopotutto, stiamo sempre parlando di database. La differenza centrale è che non esiste un singolo operatore che esegue i controlli e gli aggiornamenti dei bilanci. Tutti i nodi devono farlo. 

Se Alice vuole inviare cinque bitcoin a Bob, trasmette un messaggio che lo comunica al network. Non verrà aggiunto subito alla blockchain – i nodi lo vedranno, ma dovranno essere completate altre azioni prima che la transazione venga confermata. Vedi Come vengono aggiunti i blocchi alla blockchain?

Una volta che la transazione è stata aggiunta alla blockchain, tutti i nodi possono vedere che è stata fatta. Aggiorneranno la propria copia della blockchain per riflettere il cambiamento. Ora, Alice non può più inviare le stesse cinque unità a Carol (facendo, quindi, una doppia spesa), in quanto il network sa che le ha già spese in una transazione precedente.

Non esiste il concetto di username e password – viene usata la crittografia a chiave pubblica per dimostrare la proprietà dei fondi. Per ricevere fondi, Bob deve innanzitutto generare una chiave privata. Si tratta di un numero casuale molto lungo, virtualmente impossibile da indovinare, anche con centinaia di anni a disposizione. Tuttavia, se Bob dice a qualcuno la sua chiave privata, questo potrà dimostrare la proprietà dei suoi fondi (e potrà spenderli). Quindi è importante conservarla in segreto.

Quello che Bob può fare, però, è derivare una chiave pubblica da quella privata. Poi, può fornire la chiave pubblica a chiunque in quanto è quasi impossibile risalire da essa alla chiave privata. In gran parte dei casi, eseguirà un'altra operazione (come l'hashing) sulla chiave pubblica per ottenere un indirizzo pubblico.


come funziona una transazione blockchain


Darà l'indirizzo pubblico a Alice in modo che sappia dove inviare i fondi. Alice costruisce una transazione che dice paga questi fondi a questo indirizzo pubblico. Dopodiché, per dimostrare al network che non sta cercando di spendere fondi che non le appartengono, genera una firma digitale usando la sua chiave privata. Chiunque può esaminare il messaggio firmato di Alice e confrontarlo con la sua chiave pubblica, e affermare con certezza che ha il diritto di inviare quei fondi a Bob.


Come effettuare transazioni in Bitcoin

Per illustrare come puoi effettuare transazioni in Bitcoin, immaginiamo due diversi scenari. Il primo consiste nel prelevare bitcoin da Binance, e il secondo nell'inviare fondi dal tuo Trust Wallet al tuo wallet Electrum.


Come prelevare bitcoin da Binance

1. Accedi al tuo account Binance. Se non hai ancora dei bitcoin, leggi la nostra guida su come comprarli.

2. Sposta il mouse su Wallet, e seleziona Spot Wallet.


selezionare spot wallet dal menu wallet su binance


3. Clicca su Preleva sulla barra laterale a sinistra.

4. Scegli la moneta che vuoi prelevare – in questo caso, BTC.

5. Copia l'indirizzo a cui vuoi inviare i tuoi bitcoin, e copialo nell'Indirizzo BTC del Ricevente.


schermo di prelievo su binance


6. Specifica l'importo che vuoi prelevare.

7. Clicca su Invia.

8. Riceverai a breve un'email di conferma. Controlla attentamente che l'indirizzo sia corretto. Se sì, conferma la transazione nell'email.

9. Aspetta che la tua transazione venga elaborata sulla blockchain. Puoi monitorare il suo stato nella scheda Storico dei Depositi e dei Prelievi oppure usando un block explorer.


Come inviare bitcoin da Trust Wallet a Electrum

In questo esempio, invieremo dei bitcoin da Trust Wallet a Electrum.


1. Apri l'app di Trust Wallet.

2. Tocca il tuo account Bitcoin.

3. Premi su Send.

4. Apri il tuo wallet Electrum.

5. Clicca sulla scheda Receive in Electrum e copia l'indirizzo.


screenshot di electrum wallet


In alternativa, puoi tornare su Trust Wallet e premere l'icona [–] per fare una scansione del codice QR che punta al tuo indirizzo Electrum.


screenshot di trustwallet


6. Incolla il tuo indirizzo Bitcoin nel Recipient Address in Trust Wallet.

7. Specifica l'importo.

8. Se è tutto corretto, conferma la transazione.

9. Ecco fatto! Aspetta che la tua transazione sia confermata sulla blockchain. Puoi monitorare il suo stato copiando il tuo indirizzo in un block explorer.



Vuoi iniziare con le criptovalute? Compra Bitcoin su Binance!



Chi ha inventato la tecnologia blockchain?

La tecnologia blockchain è stata formalizzata nel 2009 con il lancio di Bitcoin – la prima e più popolare blockchain. Tuttavia, il suo creatore pseudonimo Satoshi Nakamoto ha preso spunto da tecnologie e proposte precedenti.

Le blockchain fanno un uso intensivo delle funzioni di hash e della crittografia, già diffusi da decenni prima del lancio di Bitcoin. E' interessante notare che la struttura della blockchain può essere ricondotta i primi anni '90, anche se veniva usata soltanto per la marcatura temporale di documenti, per impedirne l'alterazione in un secondo momento.

Per saperne di più su questo tema, vedi Storia della Blockchain.


Pro e contro della tecnologia blockchain

Le blockchain progettate correttamente risolvono un problema che affligge gli operatori in diversi settori, dalla finanza all'agricoltura. Un network distribuito presenta molti vantaggi rispetto al modello client-server tradizionale, ma comporta anche alcuni compromessi.


Pro

Uno dei benefici immediati osservati nella whitepaper di Bitcoin è che i pagamenti possono essere trasmessi senza coinvolgere un intermediario. Blockchain successive hanno sviluppato ulteriormente questo aspetto, consentendo agli utenti di inviare qualsiasi tipo di informazione. Eliminare le controparti porta a un rischio minore per gli utenti coinvolti, e risulta in commissioni più basse dato che non ci sono intermediari da pagare.

Come abbiamo menzionato in precedenza, il network di una blockchain pubblica è anche permissionless – non ci sono barriere alla partecipazione in quanto non c'è nessuno al comando. Se un potenziale utente può connettersi a internet, è in grado di interagire con altri peer sul network.

Molti sostengono che la qualità più importante delle blockchain sia l'alto grado di resistenza alla censura. Per paralizzare un servizio centralizzato, un malintenzionato deve solo attaccare un server. In un network peer-to-peer, invece, ogni nodo agisce come un server a sé stante. 

Un sistema come Bitcoin ha più di 10.000 nodi visibili sparsi in tutto il mondo, rendendo virtualmente impossibile compromettere il network anche per un attaccante con molte risorse. Inoltre, ci sono molti nodi nascosti, non visibili al network generale.

Questi sono alcuni vantaggi generali. Ci sono molti casi d'uso specifici a cui le blockchain possono rivolgersi, come leggerai nel capitolo Per cosa è usata la blockchain?


Contro

Le blockchain non sono una panacea per ogni problema. Essendo ottimizzate per i vantaggi descritti nella sezione precedente, risultano carenti in altre aree. L'ostacolo più ovvio all'adozione di massa delle blockchain è la loro difficoltà nello scaling.

Questo vale per qualsiasi network distribuito. Dato che tutti i partecipanti devono rimanere sincronizzati, le nuove informazioni non possono essere aggiunte troppo velocemente, in quanto i nodi non riuscirebbero a tenere il passo. Di conseguenza, gli sviluppatori tendono a limitare intenzionalmente la velocità con cui la blockchain può essere aggiornata, per garantire che il sistema rimanga decentralizzato.

Per gli utenti di un network, questo può manifestarsi in lunghi periodi di attesa se troppe persone stanno cercando di effettuare transazioni. I blocchi possono contenere una quantità limitata di dati, e non vengono aggiunti istantaneamente alla catena. Se ci sono più transazioni di quante ne possono stare in un blocco, le rimanenti devono aspettare il blocco successivo.

Un altro possibile svantaggio dei sistemi blockchain decentralizzati è che non possono essere aggiornati facilmente. Se stai sviluppando un software per conto tuo, puoi aggiungere nuove funzionalità a tuo piacimento. Non devi lavorare con altri o chiedere il permesso per apportare modifiche.

In un ambiente con potenzialmente milioni di utenti, apportare modifiche è molto più difficile. Puoi cambiare alcuni parametri del software del tuo nodo, ma ti troverai eventualmente separato dal network. Se il software modificato è incompatibile con gli altri nodi, questi lo riconosceranno e si rifiuteranno di interagire con il tuo nodo.

Supponiamo di voler cambiare una regola su quanto possono essere grandi i nodi (da 1MB a 2MB). Potremmo provare a inviare questo blocco ai nodi a cui siamo connessi, ma loro hanno una regola che dice “non accettare blocchi più grandi di 1MB”. Se ricevono qualcosa di più grande, non lo includeranno nella loro copia della blockchain.

L'unico modo di implementare modifiche è far sì che la maggioranza dell'ecosistema le accetti. Con le blockchain principali, possono esserci mesi – o persino anni– di discussioni intense nei forum prima che i cambiamenti possano essere coordinati. Vedi Hard Fork e Soft Fork per saperne di più.





Capitolo 2 - Come funziona la blockchain?

Contenuti


Come vengono aggiunti i blocchi alla blockchain?

Finora abbiamo trattato parecchi argomenti. Sappiamo che i nodi sono interconnessi e che mantengono copie della blockchain. Comunicano informazioni sulle transazioni e sui nuovi blocchi tra di loro. Abbiamo già parlato di cosa sono i nodi, ma forse ti stai chiedendo: come vengono aggiunti i nuovi blocchi alla blockchain?

Non esiste una fonte singola che dice agli utenti cosa devono fare. Dato che tutti i nodi hanno uguali poteri, deve esserci un meccanismo per decidere equamente chi può aggiungere blocchi alla blockchain. Abbiamo bisogno di un sistema che renda costoso imbrogliare e allo stesso tempo ricompensi gli utenti che agiscono onestamente. Qualsiasi utente razionale vorrà agire in un modo economicamente vantaggioso per lui.

Poiché il network è permissionless, la creazione di blocchi deve essere accessibile a chiunque. I protocolli spesso garantiscono questa caratteristica richiedendo all'utente di avere “skin in the game” – deve mettere a rischio il proprio denaro. Facendolo potrà partecipare alla creazione di blocchi, e se ne genera uno valido, riceverà una ricompensa.

Tuttavia, se tenta di imbrogliare, il resto del network lo saprà. Qualsiasi stake che ha messo in gioco sarà persa. Chiamiamo questi meccanismi algoritmi di consenso in quanto permettono ai partecipanti al network di raggiungere il consenso su quale sarà il prossimo blocco da aggiungere.


Mining (Proof of Work)

Proof of work


Il mining è di gran lunga l'algoritmo di consenso più comunemente usato. Nel mining, viene utilizzato un algoritmo Proof of Work (PoW), secondo cui gli utenti sacrificano potenza di calcolo per cercare di risolvere un enigma stabilito dal protocollo.

L'enigma impone agli utenti di eseguire l'hash di transazioni e altre informazioni incluse nel blocco. Ma affinché l'hash sia considerata valida, deve ricadere al di sotto di un determinato numero. Dato che non c'è modo di prevedere quale sarà un dato output, i miner devono continuare ad eseguire hash di dati leggermente modificati fino a quando non trovano una soluzione valida.

Evidentemente, l'hashing costante di dati è computazionalmente costoso. Nelle blockchain Proof of Work, la “stake” che gli utenti mettono in gioco sono i fondi investiti nei dispositivi di mining e nell'elettricità usata per alimentarli. I partecipanti investono nella speranza di ottenere una ricompensa del blocco

Prima abbiamo detto che è praticamente impossibile invertire una hash, ma è facile verificarla. Quando un miner invia un nuovo blocco al resto del network, tutti gli altri nodi lo usano come input in una funzione di hash. Devono semplicemente eseguirla una volta per verificare che il blocco sia valido secondo le regole della blockchain. Se non lo è, il miner non riceve la ricompensa, e avrà sprecato elettricità per niente.

La prima blockchain Proof of Work è stata quella di Bitcoin. Dalla sua creazione, molte altre blockchain hanno adottato il meccanismo PoW.


Pro della Proof of Work

  • Testata e collaudata ad oggi, la Proof of Work è l'algoritmo di consenso più maturo e ha protetto centinaia di miliardi di dollari in valore.

  • Permissionless – chiunque può partecipare alla competizione del mining o semplicemente eseguire un nodo di convalida.

  • Decentralizzazione – i miner competono tra loro per produrre blocchi, il che significa che la hash power non è mai controllata da un singolo partecipante.


Contro della Proof of Work

  • Spreco – il mining consuma un'enorme quantità di elettricità.

  • Barriere all'ingresso sempre più alte – man mano che sempre più miner si uniscono al network, i protocolli aumentano la difficoltà dell'enigma di mining. Per rimanere competitivi, gli utenti devono investire in attrezzature migliori. Questo potrebbe tagliare fuori diversi miner.

  • 51% attack – anche se il mining promuove la decentralizzazione, c'è la possibilità che un miner acquisisca la maggioranza dell'hash power. Se ci riesce, potrebbe teoricamente annullare transazioni e compromettere la sicurezza della blockchain.


Staking (Proof of Stake)

Nei sistemi Proof of Work, ciò che incentiva i partecipanti ad agire onestamente sono i soldi che hanno pagato per dispositivi di mining ed elettricità. Non otterranno un ritorno sul loro investimento se non minano blocchi correttamente.

Con la Proof of Stake (PoS), non ci sono costi esterni. Invece dei miner, abbiamo i validatori che propongono (o “forgiano”) blocchi. Possono usare un regolare computer per generare nuovi blocchi, ma devono mettere in gioco una porzione significativa dei propri fondi per l'opportunità. Lo staking si svolge con una quantità predefinita della criptovaluta nativa della blockchain, in base alle regole di ciascun protocollo. 

Diverse implementazioni hanno diverse variazioni, ma una volta che un validatore mette in gioco le sue unità, può essere selezionato casualmente dal protocollo per annunciare il blocco successivo. Facendolo correttamente, riceverà una ricompensa. In alternativa, potrebbero esserci diversi validatori che concordano sul blocco successivo, e la ricompensa viene distribuita proporzionalmente alla stake di ciascuno.

Le blockchain PoS “pure” sono meno comuni di quelle DPoS (Delegated Proof of Stake), che richiedono agli utenti di votare per eleggere nodi (witness) che andranno a convalidare blocchi per l'intero network.

Ethereum, la blockchain per smart contract leader nel settore, passerà presto alla Proof of Stake con la sua migrazione a ETH 2.0. 


Pro della Proof of Stake

  • Ecosostenibile – l'impatto ambientale della PoS è una frazione di quello del mining PoW. Lo staking rimuove la necessità di operazioni di hashing ad alta intensità di risorse.

  • Transazioni più veloci – dato che non è necessario spendere potenza di calcolo aggiuntiva su enigmi arbitrari impostati dal protocollo, alcuni proponenti della PoS sostengono che potrebbe aumentare le prestazioni in termini di transazioni.

  • Ricompense di staking e interessi – invece di arrivare ai miner, le ricompense per la protezione del network vengono pagate direttamente ai possessori di token. In alcuni casi, la PoS permette agli utenti di generare reddito passivo sotto forma di airdrop o interesse, semplicemente mettendo in staking i propri fondi.


Contro della Proof of Stake

  • Relativamente non testata – i protocolli PoS devono ancora essere testati su larga scala. Potrebbero esserci delle vulnerabilità non ancora scoperte nella loro implementazione o nella criptoeconomia.

  • Plutocrazia – molti temono che la PoS incoraggi un ecosistema in cui “i ricchi diventano più ricchi”, in quanto i validatori con una grande stake tendono a guadagnare più ricompense.

  • Problema nothing-at-stake – nella PoW, gli utenti possono solo “scommettere” su una catena – fanno mining sulla catena che secondo loro ha più probabilità di avere successo. Durante un hard fork, non possono scommettere su diverse catene con la stessa hash power. Tuttavia, i validatori nella PoS possono lavorare su più catene con scarsi costi aggiuntivi, cosa che potrebbe causare problemi economici.


Altri algoritmi di consenso

La Proof of Work e la Proof of Stake sono gli algoritmi di consenso più comuni, ma ne esistono molti altri. Alcuni sono ibridi che combinano elementi da entrambi i sistemi, mentre altri sono metodi del tutto diversi. 

Non li esamineremo in questo articolo, ma se sei interessato, dai un'occhiata ai seguenti articoli:


Posso invertire le transazioni blockchain?

Le blockchain sono database molto robusti, by design. Le loro proprietà intrinseche rendono estremamente difficile rimuovere o modificare dati blockchain dopo che sono stati registrati. Quando si tratta di Bitcoin e altri grandi network, è praticamente impossibile. Quindi, quando stai effettuando una transazione su una blockchain, puoi vederla come scolpita nella pietra per sempre.

Detto questo, esistono molte implementazioni differenti della blockchain, e la differenza più fondamentale tra di loro è il modo in cui raggiungono il consenso all'interno del network. Questo significa che, in alcune implementazioni, un gruppo relativamente piccolo di partecipanti potrebbe acquisire potere sufficiente per invertire efficacemente le transazioni. Questa possibilità è preoccupante soprattutto per le altcoin con un network piccolo (con hash rate limitati dovuti alla scarsa competizione nel mining).


Cos'è la scalabilità blockchain?

L'espressione scalabilità blockchain è tipicamente usata come termine generico in riferimento all'abilità di un sistema blockchain di servire una domanda crescente. Le blockchain possiedono proprietà desiderabili (come decentralizzazione, resistenza alla censura, immutabilità), le quali hanno però un costo.

A differenza dei sistemi decentralizzati, un database centralizzato può operare con velocità e throughput notevolmente superiori. Questo ha senso se consideriamo che non ci sono migliaia di nodi sparsi per il mondo che devono sincronizzarsi con il network ad ogni modifica dei suoi contenuti. Nelle blockchain, invece, non è così. Di conseguenza, la scalabilità è da anni un tema molto discusso tra gli sviluppatori blockchain.

Sono state proposte o implementate diverse soluzioni per mitigare alcuni degli svantaggi in materia di prestazioni delle blockchain. Attualmente, però, non è chiaro quale sia l'approccio migliore. E' probabile che molte soluzioni differenti dovranno essere testate fino a quando avremo risposte più dirette al problema della scalabilità.

A un livello più ampio, c'è una domanda fondamentale che riguarda la scalabilità: Dovremmo migliorare le prestazioni della blockchain stessa (scalabilità on-chain) oppure consentire l'esecuzione di transazioni senza intasare la blockchain principale (scalabilità off-chain)? 

Potrebbero esserci vantaggi chiari per entrambi. Le soluzioni di scalabilità on-chain potrebbero ridurre le dimensioni delle transazioni, o anche solo ottimizzare il modo in cui i dati vengono archiviati nei blocchi. Invece, le soluzioni off-chain comportano lo spostamento di transazioni al di fuori della blockchain principale, aggiungendole solo più tardi. Tra le soluzioni off-chain più conosciute troviamo le sidechain e i canali di pagamento.

Se vuoi saperne di più su questo argomento, leggi Scalabilità Blockchain - Sidechain e Canali di Pagamento.


Perché la blockchain ha bisogno di scalare?

Se i sistemi blockchain devono competere con le loro controparti centralizzate, devono offrire prestazioni almeno uguali a loro. Realisticamente, però, dovranno avere prestazioni migliori per incentivare sviluppatori e utenti a passare a piattaforme e applicazioni basate su blockchain. 

Questo significa che, rispetto ai sistemi centralizzati, l'uso delle blockchain deve essere più veloce, più economico e più semplice, sia per gli sviluppatori che per gli utenti. Non è un obiettivo semplice da raggiungere mantenendo allo stesso tempo le caratteristiche che definiscono le blockchain, di cui abbiamo parlato prima. 


Cos'è un fork blockchain?

Come per qualsiasi software, le blockchain hanno bisogno di aggiornamenti per risolvere problemi, aggiungere nuove regole o rimuoverne di vecchie. Dato che gran parte dei software blockchain è open-source, in teoria, chiunque può proporre nuovi aggiornamenti da aggiungere al software che regola il network. 

Ricorda che le blockchain sono network distribuiti. Una volta che il software è aggiornato, migliaia di nodi sparsi per il mondo devono riuscire a comunicare e implementare la nuova versione. Ma cosa succede se i partecipanti non possono concordare su quale aggiornamento implementare? Solitamente, non c'è un'organizzazione con il compito di decidere. Questo ci porta ai soft fork e agli hard fork.


Soft fork

Se c'è un accordo generale su come un aggiornamento dovrebbe essere, si tratta di un cambiamento relativamente semplice. In uno scenario come questo, il software viene aggiornato con una modifica retrocompatibile, ovvero tutti i nodi aggiornati possono ancora interagire con i nodi che non lo sono. In realtà, però, ci si aspetta che quasi tutti i nodi vengano aggiornati nel tempo. Questo è ciò che chiamiamo un soft fork. 


Hard fork

Un hard fork è più complicato. Una volta implementate, le nuove regole saranno incompatibili con quelle vecchie. Quindi, se un nodo che sta seguendo le nuove regole cerca di interagire con un nodo che sta seguendo quelle vecchie, non sarà in grado di comunicare. Questo risulta nella divisione in due blockchain – in una, viene eseguito il vecchio software, nell'altra, si applicano le nuove regole.

Dopo l'hard fork, ci sono essenzialmente due network differenti che eseguono due protocolli diversi in parallelo. E' importante sottolineare che, al momento del fork, i saldi dell'unità nativa della blockchain vengono clonati dal vecchio network. Quindi, se avevi un saldo sulla vecchia chain al momento del fork, avrai un saldo anche sulla nuova. 

Vedi Hard Fork e Soft Fork per maggiori informazioni.





Capitolo 3 - Per cosa è usata la blockchain?


Contenuti


La tecnologia blockchain può essere usata per una vasta gamma di casi d'uso. Di seguito ne esaminiamo alcuni. 


La blockchain per le catene di fornitura

Le catene di fornitura efficienti sono alla base di molte attività di successo e si occupano dello spostamento di merci dal fornitore al consumatore. La coordinazione di diversi operatori in un dato settore si è però dimostrata difficile in passato. La tecnologia blockchain potrebbe rendere possibili nuovi livelli di trasparenza in molte industrie. Un ecosistema interoperabile incentrato su un database immutabile è proprio quello di cui molti settori hanno bisogno per diventare più robusti e affidabili.

Se vuoi saperne di più, leggi Casi d'Uso della Blockchain: Catena di Fornitura.


Blockchain e industria del gaming

Il settore del gaming è diventato una delle più grandi industrie di intrattenimento al mondo, e potrebbe beneficiare notevolmente dalla tecnologia blockchain. In genere, i videogiocatori tendono ad essere alla mercé degli sviluppatori di giochi. In gran parte dei videogiochi online, i giocatori sono costretti ad affidarsi allo spazio server degli sviluppatori e a seguire il loro set di regole in continua evoluzione. In questo contesto, la blockchain potrebbe aiutare a decentralizzare la proprietà, la gestione e il mantenimento dei videogiochi online.

Il problema più grande, però, potrebbe essere che gli oggetti di gioco non possono esistere al di fuori dei videogiochi stessi, eliminando le possibilità di proprietà reale e mercati secondari. Scegliendo un approccio basato su blockchain, i videogiochi potrebbero diventare più sostenibili a lungo termine, e gli oggetti in-game emessi come crypto-collectible potrebbero acquisire valore nel mondo reale.

Se vuoi saperne di più, leggi Casi d'Uso della Blockchain: Gaming.


blockchain nel gaming


La blockchain per l'assistenza sanitaria

Archiviare cartelle cliniche in modo affidabile è fondamentale per qualsiasi sistema sanitario, e la dipendenza da server centralizzati lascia informazioni sensibili in una posizione vulnerabile. La trasparenza e la sicurezza della tecnologia blockchain la rendono una piattaforma ideale su cui archiviare registri medici.

Proteggendo crittograficamente le proprie cartelle su una blockchain, i pazienti potrebbero mantenere la propria privacy, e allo stesso tempo condividere informazioni mediche con qualsiasi istituzione sanitaria. Se tutti i partecipanti del sistema sanitario attualmente frammentato potessero accedere a una banca dati sicura e globale, il flusso di informazioni tra di loro sarebbe molto più rapido.

Se vuoi saperne di più, leggi Casi d'Uso della Blockchain: Sanità.


Rimesse blockchain

Inviare denaro a livello internazionale utilizzando il sistema bancario tradizionale è una seccatura. Principalmente a causa di un contorto network di intermediari, le commissioni e i tempi di regolamento rendono le banche tradizionali costose e poco affidabili per le transazioni urgenti.

Le criptovalute e le blockchain eliminano questo ecosistema di intermediari e possono consentire trasferimenti rapidi ed economici in tutto il mondo. Mentre le blockchain sacrificano senza dubbio le prestazioni per alcune delle proprietà desiderabili, ci sono diversi progetti che sfruttano la tecnologia per offrire transazioni quasi istantanee e a basso costo.

Se vuoi saperne di più, leggi Casi d'Uso della Blockchain: Rimessa.



Vuoi iniziare con le criptovalute? Compra Bitcoin su Binance!



La blockchain e l'identità digitale

La gestione sicura dell'identità su Internet ha un disperato bisogno di una soluzione rapida. Una quantità straordinaria dei nostri dati personali è conservata su server centralizzati e analizzata da algoritmi di machine learning a nostra insaputa e senza il nostro consenso. 

La tecnologia blockchain permette agli utenti di prendere possesso dei propri dati e rivelare informazioni selettivamente alle terze parti solo quando è necessario. Questo tipo di magia crittografica potrebbe consentire un'esperienza online più fluida senza però sacrificare la privacy.

Se vuoi saperne di più, leggi Casi d'Uso della Blockchain: Identità Digitale.


 blockchain e identità digitale


Blockchain e Internet of Things (IoT)

Una quantità enorme di dispositivi fisici sono oggi connessi a Internet, e questo numero non farà che aumentare. Alcuni ipotizzano che la comunicazione e la cooperazione tra questi dispositivi potrebbero essere notevolmente aumentate dalla tecnologia blockchain. I micropagamenti machine-to-machine (M2M) automatizzati potrebbero creare una nuova economia basata su un database sicuro e ad alte prestazioni.

Se vuoi saperne di più, leggi Casi d'Uso della Blockchain: Internet of Things (IoT).


La blockchain per la governance

I network distribuiti possono definire e applicare forme proprie di regolazione sotto forma di codice informatico. Non sorprende quindi che la blockchain potrebbe riuscire a disintermediare diversi processi di governance a livello locale, nazionale o persino internazionale. 

Inoltre, potrebbe risolvere uno dei più grandi problemi che attualmente affligge gli ambiti di sviluppo open source – la mancanza di un meccanismo affidabile per la distribuzione di fondi. La governance blockchain garantisce che tutti i partecipanti possono essere coinvolti nei processi decisionali, e fornisce una panoramica trasparente di quali politiche vengono attuate.

Se vuoi saperne di più, leggi Casi d'Uso della Blockchain: Governance.


Blockchain per beneficenza

Le organizzazioni di beneficenza sono spesso ostacolate dai limiti delle modalità con cui possono accettare fondi. Ancor più frustrante, la destinazione finale dei fondi donati può essere difficile da tracciare con precisione, cosa che senza dubbio scoraggia molti dal sostenere tali organizzazioni.

La ”crypto-filantropia” si interessa dell'utilizzo della tecnologia blockchain per aggirare queste limitazioni. Basandosi sulle proprietà intrinseche della tecnologia per garantire maggiore trasparenza, partecipazione globale e spese ridotte, questo settore emergente punta a massimizzare l'impatto degli enti di beneficenza. Una di queste organizzazioni è la Blockchain Charity Foundation.

Se vuoi saperne di più, leggi Casi d'Uso della Blockchain: Beneficenza.


Blockchain per speculazione

Senza dubbio, uno degli usi più popolari della tecnologia blockchain è la speculazione. I trasferimenti frictionless tra exchange, le soluzioni di trading non custiodiali, e un ecosistema in crescita di prodotti derivati rende questo settore un campo di gioco ideale per tutti i tipi di speculatori.

A causa delle sue proprietà intrinseche, la blockchain è uno strumento eccellente per coloro che sono disposti a correre il rischio di partecipare in una classe di asset così innovativa. Alcuni credono addirittura che una volta maturata la tecnologia e il quadro normativo ad essa circostante, i mercati speculativi globali potrebbero essere tutti tokenizzati sulla blockchain.

Se vuoi saperne di più, leggi Casi d'Uso della Blockchain: Mercati di Previsione.


blockchain e mercati di previsione


Crowdfunding con la blockchain

Da quasi un decennio, le piattaforme di crowdfunding online hanno preparato il terreno per l'economia peer-to-peer. Il successo di questi siti mostra che c'è un vero interesse per lo sviluppo di prodotti finanziato collettivamente. Tuttavia, poiché queste piattaforme agiscono da custodi dei fondi, potrebbero sottrarne una porzione considerevole come commissioni. Inoltre, ciascuna ha un proprio insieme di regole per facilitare la collaborazione tra i diversi partecipanti.

La tecnologia blockchain, e in particolare gli smart contract, potrebbero consentire un crowdfunding più sicuro e automatizzato, in cui i termini degli accordi sono definiti da codice informatico. 

Un'altra applicazione del crowdfunding attraverso la blockchain sono le Initial Coin Offering (ICO) e le Initial Exchange Offering (IEO). Nelle vendite di token come queste, gli investitori raccolgono fondi nella speranza che il network avrà successo in futuro, portando a un ritorno sul loro investimento.


Blockchain e file system distribuiti

L'archiviazione distribuita di file su Internet presenta molti vantaggi rispetto alle alternative centralizzate convenzionali. Gran parte dei dati archiviati nel cloud dipendono da server e fornitori di servizi centralizzati, i quali tendono ad essere più vulnerabili ad attacchi e perdite di dati. In alcuni casi, gli utenti potrebbero anche incontrare problemi di accessibilità a causa della censura da parte di server centralizzati.

Dal punto di vista dell'utente, le soluzioni di archiviazione file su blockchain funzionano esattamente come le altre soluzioni di archiviazione nel cloud – puoi caricare, conservare e accedere a file. Quello che succede nel background, però, è piuttosto differente.

Quando carichi un file a un archivio blockchain, viene distribuito e replicato su diversi nodi. In alcuni casi, ciascun nodo archivierà una porzione diversa del tuo file. Non possono fare molto con i dati parziali, ma in seguito puoi richiedere ai nodi di fornire ogni parte, in modo da combinarle per recuperare il file completo.

Lo spazio di archiviazione deriva dai partecipanti che mettono a disposizione del network il loro spazio e la loro banda larga. In genere, questi partecipanti sono economicamente incentivati a fornire tali risorse, ed economicamente puniti se non seguono le regole o mancano di archiviare e consegnare file.

Potresti pensare a questo tipo di network come simile a Bitcoin. In questo caso, però, l'obiettivo principale del network non è supportare trasferimenti di valore monetario, ma di abilitare l'archiviazione di file decentralizzata e resistente alla censura.

Altri protocolli open source come l'InterPlanetary File System (IPFS) stanno già spianando la strada a questo nuovo Web più permanente e distribuito. Anche se l'IPFS è un protocollo e un network peer-to-peer, non è esattamente una blockchain. Tuttavia, applica alcuni dei principi della tecnologia blockchain per migliorare la sicurezza e l'efficienza.