Perché la blockchain è difficile?

Il clamore intorno alla blockchain è enorme. Stando a quanto si dice, la blockchain:

  1. Risolve la disuguaglianza di reddito
  2. Rende tutti i dati al sicuro per sempre
  3. Rende tutto molto più efficiente e affidabile
  4. Salva i bambini morenti

Ma in tutto ciò, che diamine è una blockchain? E può davvero fare tutte queste cose? La blockchain può portare qualcosa di sorprendente per settori diversi come assistenza sanitaria, finanza, gestione della supply chain e diritti musicali?

E non sostenere Bitcoin significa che si è a favore della blockchain? Come puoi essere per Bitcoin ma dire qualcosa di negativo sulla tecnologia che sta dietro?

In questo articolo, cerco di rispondere a molte di queste domande osservando che cos’è una blockchain e, cosa più importante, che cosa non è.

Che cosa è Blockchain?

Per esaminare alcune di queste affermazioni, dobbiamo definire cosa è una blockchain e qui risiede molta della confusione. Molte aziende usano la parola “blockchain” per indicare una sorta di dispositivo magico con il quale tutti i loro dati non saranno mai sbagliati. Un tale dispositivo, naturalmente, non esiste, almeno quando è coinvolto il mondo reale.

Ed allora, che cosa è Blockchain? Tecnicamente parlando, una blockchain è un elenco di blocchi collegati e un blocco è un gruppo di transazioni ordinate. Se non hai capito l’ultima frase, puoi pensare ad una blockchain come sottoinsieme di un database, con alcune proprietà aggiuntive.

La cosa principale che distingue una blockchain da un normale database è che ci sono regole specifiche su come inserire i dati nel database. Cioè, non può entrare in conflitto con altri dati che sono già nel database (coerenti), è solo append (immutabile), e i dati stessi sono bloccati su un proprietario (possessore), è replicabile e disponibile. Infine, tutti sono d’accordo su quale sia lo stato delle cose nel database (canonico) senza un partito centrale (decentralizzato).

È questo ultimo punto che è davvero il Santo Graal della blockchain. Il decentramento è molto interessante perché implica che non esiste un singolo punto di errore. Cioè, nessuna singola autorità sarà in grado di togliere la tua risorsa o cambiare la “storia” in base alle sue esigenze. Questa traccia di controllo immutabile in cui non devi fidarti di nessuno è il vantaggio che tutti coloro che stanno giocando con questa tecnologia stanno cercando. Questo vantaggio, tuttavia, ha un costo elevato.

Il costo delle Blockchain

La traccia di controllo immutabile incontrollata da ogni singolo partito è certamente utile, ma ci sono molti costi per creare un tale sistema. Esaminiamo alcuni dei problemi.

Lo sviluppo è più severo e più lento

Creare un resistente sistema consistente non è un compito facile. Un piccolo bug potrebbe corrompere l’intero database o causare alcuni database diversi da altri. Ovviamente, un database danneggiato o diviso non ha più alcuna garanzia di coerenza. Inoltre, tutti questi sistemi devono essere progettati fin dall’inizio per essere coerenti. Non c’è alcuna possibilità di “fare una mossa veloce e rompere le cose” in una blockchain. Se rompi le cose, perdi consistenza e la blockchain diventa corrotta e priva di valore.

Potresti pensare, perché non puoi semplicemente aggiustare il database o ricominciare e andare avanti? Ciò sarebbe abbastanza facile da fare in un sistema centralizzato, ma questo è molto difficile in uno decentralizzato. È necessario il consenso, o l’accordo di tutti i giocatori nel sistema, al fine di modificare il database. La blockchain deve essere una risorsa pubblica che non è sotto il controllo di una singola entità (decentralizzata, ricordi?), O l’intero sforzo è un modo molto costoso per creare un database lento e centralizzato.

Creare una struttura di incentivi è un lavoro difficile

Aggiungere le giuste strutture di incentivi e fare in modo che tutti gli attori del sistema non possano abusare o corrompere il database è ugualmente una grande considerazione. Una blockchain può essere coerente, ma non è molto utile se contiene molti dati frivoli e inutili perché i costi di inserimento degli stessi sono molto bassi. Né è una blockchain coerente utile se non ha quasi nessun dato perché i costi di inserimento dei dati in essa sono molto alti.

Cosa dà la finalità dei dati? Come puoi assicurarti che i premi siano allineati con gli obiettivi della rete? Perché i nodi mantengono o aggiornano i dati e cosa li spinge a scegliere un dato su un altro quando sono in conflitto? Queste sono tutte domande di incentivazione che necessitano di buone risposte e devono essere allineate non solo all’inizio, ma in tutti i punti del futuro in quanto la tecnologia e le aziende cambiano, altrimenti la blockchain non è utile.

Di nuovo, ti starai chiedendo perché non puoi “aggiustare” qualche incentivo rotto. Ancora una volta, questo è facile in un sistema centralizzato, ma in uno decentralizzato, semplicemente non puoi cambiare nulla senza consenso. Non c’è nulla che “aggiusta” nulla a meno che non ci sia un accordo da parte di tutti.

La manutenzione è molto costosa

Un database centralizzato tradizionale deve essere scritto solo una volta. Una blockchain deve essere scritta migliaia di volte. Un database centralizzato tradizionale deve solo verificare i dati una sola volta. Una blockchain ha bisogno di controllare i dati migliaia di volte. Un database centralizzato tradizionale deve trasmettere i dati per l’archiviazione una sola volta. Una blockchain ha bisogno di trasmettere i dati migliaia di volte.

I costi per mantenere una blockchain sono ordini di grandezza più alti e il costo deve essere giustificato dall’utilità. La maggior parte delle applicazioni in cerca di alcune delle proprietà dichiarate in precedenza, come coerenza e affidabilità, possono ottenere tali elementi per un costo molto più economico utilizzando controlli di integrità, ricevute e backup.

Gli utenti sono sovrani

Questo può essere davvero buono in quanto le aziende non amano la responsabilità di avere i dati utente in primo luogo. Questo può essere negativo, tuttavia, se l’utente si comporta in modo anomalo. Non c’è modo di cacciare l’utente che riempie la tua blockchain con dati frivoli o ha trovato un modo per trarre profitto in qualche modo che causa inconvenienti agli altri utenti. Questo è collegato alla osservazione di cui sopra che le strutture di incentivi devono essere progettate davvero, molto bene in quanto un utente che capisce un exploit non vi rinuncerà, soprattutto se c’è un profitto per l’utente.

Potresti pensare di poter semplicemente rifiutare di offrire il tuo servizio agli utenti malintenzionati, il che sarebbe molto facile da fare in un servizio centralizzato. Tuttavia, a differenza di un servizio centralizzato, il rifiuto del servizio è difficile perché nessuna singola entità ha l’autorità per espellere qualcuno. La blockchain deve essere imparziale e applicare le regole definite dal software. Se le regole non sono sufficienti a scoraggiare un cattivo comportamento, sei sfortunato. Non c’è alcun “spirito” della legge qui. Devi semplicemente avere a che fare con attori malevoli o che si comportano male, probabilmente per un tempo molto lungo.

Tutti gli aggiornamenti sono volontari

Un aggiornamento forzato non è un’opzione. Gli altri giocatori sulla rete non hanno l’obbligo di passare al tuo software. Se lo facessero, un tale sistema sarebbe molto più facile, più veloce e meno costoso da costruire come sistema centralizzato. Il punto di una blockchain è che non è sotto il controllo di una singola entità e questo viene violato con un aggiornamento forzato.

Invece, tutti gli aggiornamenti devono essere retrocompatibili. Questo è ovviamente abbastanza difficile, soprattutto se si desidera aggiungere nuove funzionalità e ancora più difficile quando si pensa da una prospettiva di test. Ogni versione del software aggiunge molto alla matrice di test e allunga il tempo di rilascio.

Anche in questo caso, se si trattasse di un sistema centralizzato, sarebbe molto più semplice correggerlo non servendo più i vecchi sistemi. Non puoi farlo, comunque in un sistema decentralizzato in quanto non puoi costringere nessuno a fare nulla.

Il ridimensionamento è davvero difficile

Infine, il ridimensionamento è almeno di diversi ordini di grandezza più difficile rispetto a un sistema centralizzato tradizionale. La causa di ciò è evidente. Gli stessi dati devono vivere in centinaia o migliaia di luoghi piuttosto che in un singolo luogo. Il costo di trasmissione, verifica e archiviazione è enorme, poiché ogni singola copia del database deve pagare per svolgerli, invece di pagare quei costi solo una volta in un database centralizzato tradizionale.

Ovviamente puoi ridurre l’onere riducendo il numero di nodi. Ma a quel punto, perché hai bisogno di un sistema decentralizzato? Perché non creare un database centralizzato solo se i costi di ridimensionamento sono la preoccupazione principale?

La centralizzazione è molto più semplice

Se noti un tema, è che i sistemi decentralizzati sono molto difficili da gestire, costosi da mantenere, difficili da aggiornare e difficili da ridimensionare. Un database centralizzato è molto più veloce, meno costoso, più facile da gestire e più facile da aggiornare rispetto a una blockchain. Quindi perché le persone continuano a usare la parola blockchain come se fosse una panacea per tutti i loro problemi?

Innanzitutto, molti di questi settori che vengono venduti su blockchain sono davvero in ritardo per gli aggiornamenti dell’infrastruttura IT. L’assistenza sanitaria ha un software notoriamente terribile. La liquidazione finanziaria è ancora in esecuzione su software degli anni ’70. Il software di gestione della supply chain è al contempo difficile da utilizzare e difficile da installare. La maggior parte delle aziende in questi settori non è in grado di aggiornarsi a causa del rischio. Ci sono molti aggiornamenti di infrastruttura che costano centinaia di milioni e finiscono per essere arretrati comunque. Blockchain è un modo per vendere questi aggiornamenti dell’infrastruttura IT e renderli un po ‘più appetitosi.

In secondo luogo, la blockchain è un modo per apparire come se fossi all’avanguardia della tecnologia. Piaccia o no, la parola “blockchain” ha assunto una vita propria. Pochissime persone effettivamente capiscono di cosa si tratta, ma vogliono apparire cool e così usano queste parole come un modo per sembrare più intelligente. Proprio come “cloud” indica il computer di qualcun altro e “AI” significa un algoritmo ottimizzato, “blockchain” in questo contesto significa un database lento e costoso.

In terzo luogo, la gente non apprezza il controllo governativo di determinate industrie e desidera un meccanismo di aggiudicazione diverso dal quadro giuridico che è spesso lento e costoso. Per loro, “blockchain” è in realtà solo un modo per sbarazzarsi del pesante apparato del regolamento governativo. Questo sta sovradimensionando ciò che la blockchain può fare. Blockchain non elimina magicamente il conflitto umano.

Il risultato è un sacco di persone che sono pubblicizzate sulle promesse senza effettivamente comprendere le abilità o i costi. Quel che è peggio, i reali dettagli tecnici e i costi sono lontani da molti VC e dirigenti in modo tale da oscurare ciò che una blockchain può e non può fare. Tutti sotto di loro hanno paura di dire che l’imperatore non ha vestiti e abbiamo la situazione che abbiamo ora.

Quindi a cosa serve blockchain?

Abbiamo già stabilito che una blockchain è molto costosa rispetto ai database centralizzati. Quindi l’unica ragione per cui dovresti usare una blockchain è decentrare. Cioè, rimuovere il singolo punto di errore o controllo.

Ciò significa naturalmente che il software o il database non devono cambiare spesso le cose, se non del tutto. Ci dovrebbe essere un piccolo vantaggio per l’aggiornamento e molto svantaggi per rovinare o cambiare le regole.

La maggior parte delle industrie non sono così. La maggior parte delle industrie richiede nuove funzionalità o aggiornamenti e la libertà di cambiare ed espandere secondo necessità. Dato che le blockchain sono difficili da aggiornare, difficili da cambiare e difficili da scalare, la maggior parte delle industrie non ha molto senso per una blockchain.

L’unica eccezione che abbiamo trovato è il denaro. A differenza della maggior parte dei casi di utilizzo industriale, il denaro è migliore se non cambia. L’immutabilità e la difficoltà nel cambiare le regole sono positive per il denaro e non un danno. Questo è il motivo per cui blockchain è lo strumento giusto per il lavoro quando si tratta di Bitcoin.

Ciò che è chiaro è che molte aziende che cercano di utilizzare la blockchain non vogliono affatto un blockchain, ma piuttosto un aggiornamento IT per il loro particolare settore. Questo è tutto a posto, ma usare la parola “blockchain” per arrivarci è disonesto e sovradimensionato.

Conclusione

Blockchain è un termine popolare in questi giorni e sfortunatamente questo meme “blockchain not Bitcoin” non morirà. Se sei un servizio centralizzato, una blockchain non ti dà niente che non puoi fare migliaia di volte più economico che con un database centralizzato. Se sei un servizio decentralizzato, probabilmente stai ingannando te stesso e non pensando ai singoli punti di errore che esistono nel tuo sistema. Non ci sarebbe affatto un “voi” in un servizio veramente decentralizzato.

Il più grande scherzo in questo articolo intero

Nei primi anni 2000, ci fu una spinta da molti dirigenti nel settore tecnologico ad usare Java e XML. Nonostante queste due cose siano strumenti e non prodotti reali, molti dirigenti hanno insistito sul loro uso, non importa quanto scarsa fosse la forma rispetto a ciò che i loro ingegneri stavano cercando di ottenere. Blockchain è molto simile a questo. Concentrati sui problemi che stai risolvendo e gli strumenti si renderanno facilmente evidenti. Concentrati sugli strumenti che vuoi utilizzare e finirai per creare macchine Rube Goldberg che non fanno nulla di particolarmente buono.

In un certo senso, le attuali concezioni di blockchain stanno cercando di fare l’impossibile. Vogliono la sicurezza di un sistema decentralizzato con il controllo di uno centralizzato. Il desiderio è il meglio di entrambi i mondi, ma quello che finiscono per ottenere è il peggiore di entrambi i mondi. Ottieni i costi e la difficoltà di un sistema decentralizzato con le modalità di guasto di un sistema centralizzato.

Blockchain è usato fin troppo come parola d’ordine per vendere un sacco di olio di serpente inutile. Più velocemente ci libereremo della pubblicità, meglio sarà nel lungo termine.

L'articolo originale: https://medium.com/@jimmysong/why-blockchain-is-hard-60416ea4c5c