00:00 Introduzione
02:01 Risolvere il consenso bizantino
09:35 Requisiti rigidi di una blockchain libera
20:31 La storia fino ad ora
22:44 Arricchirsi velocemente oggi
24:03 Mini Bitcoin 1/3 - Hashing e Firma
29:23 Mini Bitcoin 2/3 - Transazioni
34:44 Mini Bitcoin 3/3 - Blocchi e Prova di Lavoro
44:47 Scalare la blockchain 1/2 - Panorama applicativo
49:07 Scalare la blockchain 2/2 - Blocchi più grandi
57:11 Velocizzare la blockchain 1/2
59:30 Velocizzare la blockchain 2/2
01:06:54 Potenziare la blockchain
01:14:51 Caso d’uso: pagamenti
01:19:25 Caso d’uso: tracciabilità passiva
01:25:33 Caso d’uso: tracciabilità attiva
01:32:47 Caso d’uso: riciclaggio incentivato
01:35:40 Caso d’uso: sicurezza incentivata
01:41:30 Addolcire i requisiti
01:44:53 Conclusione
01:49:35 4.21 Blockchain per la supply chain - Domande?

Descrizione

Le criptovalute hanno attirato molta attenzione. Fortune sono state fatte. Fortune sono state perse. Gli schemi piramidali erano diffusi. Da una prospettiva aziendale, la “blockchain” è l’eufemismo educato usato per introdurre idee e tecnologie simili stabilendo una distanza con quelle criptovalute. Esistono casi d’uso della supply chain per la blockchain, ma le sfide abbondano.

Trascrizione completa

Slide 1

Benvenuti a questa serie di lezioni sulla supply chain. Sono Joannes Vermorel, e oggi presenterò “Blockchain per la Supply Chain”. Le criptovalute hanno catturato l’immaginazione del pubblico, fortune sono state fatte e perse, alcuni cattivi sono stati catturati e imprigionati, e altri seguiranno. In mezzo a tutta questa agitazione, il termine criptovaluta è diventato un po’ troppo carico per le grandi aziende medie che tendono ad essere piuttosto conservative. Così, il termine blockchain è stato adottato come un modo per distanziare l’innovazione da tutta la follia che sta accadendo nel mondo delle cripto. Tuttavia, fondamentalmente, le blockchain e le criptovalute sono una cosa sola.

L’obiettivo di questa lezione è acquisire una comprensione tecnica, una comprensione tecnica approfondita, di cosa sta succedendo con le blockchain. Se avete delle competenze di programmazione, alla fine di questa lezione, dovreste essere in grado di reimplementare la vostra blockchain giocattolo se lo desiderate. Basandoci su questa nuova comprensione tecnica della blockchain, inizieremo a esaminare i casi d’uso della supply chain e a valutare la loro fattibilità come tecnologie per risolvere problemi e il loro valore aggiunto in termini di ciò che possono fare per le supply chain. Cominciamo.

Slide 2

L’origine di Bitcoin è semplicemente strana. Nel 2008, sotto uno pseudonimo, Satoshi Nakamoto, che è probabilmente un lavoro di squadra, è stato pubblicato un white paper intitolato “Bitcoin: Un sistema di cassa elettronico peer-to-peer”. Questo documento presenta un sistema e un approccio per un nuovo tipo di valuta elettronica. È un documento relativamente breve con alcune parti matematiche, e anche le parti matematiche sono in parte errate.

Il documento originale afferma che il sistema dovrebbe essere sicuro se almeno la metà della potenza di hash è dalla parte buona. Tuttavia, è stato successivamente dimostrato in un documento successivo pubblicato nel 2013, “La maggioranza non è sufficiente: il mining di Bitcoin è vulnerabile”, che per mantenere la rete sicura, non hai bisogno che metà della potenza di hash sia onesta; hai bisogno effettivamente di due terzi più della potenza di hash.

Ciononostante, esiste un white paper e un pezzo di software. Il software è open source, ed è una realizzazione di qualità molto bassa. Il client Satoshi è di qualità molto bassa, e durante il primo anno dopo la pubblicazione del software, i contributori open source hanno rapidamente corretto tonnellate di bug e problemi. Alcuni di questi problemi erano difficili da risolvere a causa del design originale e hanno avuto un effetto duraturo su tutta la comunità. Molte delle criptovalute che esistono oggi sono fork del client originale di Satoshi e, in qualche misura, portano ancora molti dei problemi che non sono stati risolti nel corso degli anni.

Quindi, questa è una situazione molto sconcertante in cui si ha un documento che non è della massima qualità e un pezzo di software che è indiscutibilmente di qualità molto bassa, eppure il team di Satoshi Nakamoto ha fatto una scoperta sbalorditiva. Fondamentalmente, il problema era noto come il problema del consenso bizantino. È un problema di calcolo distribuito. Immagina di avere dei partecipanti, e tutti questi partecipanti possono vedere quale dovrebbe essere lo stato del sistema, che nel mondo digitale può essere pensato come una lunga serie di zeri e uno, un carico di dati. I partecipanti possono aggiornare lo stato del sistema, capovolgere alcuni bit, aggiungere un bit, rimuovere un bit, e possono fare tutto questo contemporaneamente. I partecipanti possono comunicare tra loro, e il problema del consenso bizantino è far concordare tutti i partecipanti onesti in un determinato momento su quale sia lo stato del sistema, fino all’ultimo bit.

Il problema è molto difficile se si hanno partecipanti bizantini che agiscono come avversari, cercando di confondere tutti gli altri partecipanti. La scoperta sorprendente di Bitcoin è che se torniamo al 2008 e chiediamo agli esperti, probabilmente avrebbero detto che non sembra possibile risolvere il problema del consenso bizantino in modo completamente decentralizzato senza un’autorità centrale. Tuttavia, la scoperta di Satoshi Nakamoto, il consenso di Nakamoto, è che hanno trovato un modo per risolvere questo problema.

La soluzione è molto sorprendente. Sembra un problema algoritmico, ma l’essenza della soluzione dietro Bitcoin è che Satoshi Nakamoto ha risolto questo problema aggiungendo incentivi monetari, un incentivo finanziario. Non è solo una soluzione algoritmica; è letteralmente un algoritmo che funziona solo perché, all’interno del sistema, gli incentivi monetari sono intrecciati, dando ai partecipanti incentivi ad agire in un certo modo.

Se vogliamo avere questi incentivi in atto, abbiamo bisogno di una sorta di valuta elettronica, così possiamo ingegnerizzare questi incentivi in primo luogo. Questo è esattamente ciò che viene fatto in Bitcoin. Se vuoi avere una valuta elettronica, hai almeno due problemi molto difficili. Il primo problema è il doppio spesa. Se hai una certa quantità di denaro digitale rappresentata da alcuni bit di informazione, cosa ti impedisce di fare una copia di questo denaro digitale e di spendere il denaro una volta per pagare qualcosa e poi di rispendere lo stesso denaro con la tua copia per pagare qualcos’altro? Questo problema è noto come doppia spesa, ed è uno dei problemi molto difficili affrontati da Bitcoin.

Il secondo problema è l’emissione di moneta. Da dove proviene questo denaro? La cosa interessante è che tipicamente, quando hai un problema molto difficile che vuoi affrontare, adotti un approccio divide-et-impera, suddividendo il tuo grande problema in sottoproblemi che sono più semplici e possono essere risolti separatamente. Poi, il problema totale può essere risolto. La cosa interessante con Bitcoin è che ci sono due problemi distinti e molto difficili: la doppia spesa e l’emissione di moneta. Invece di utilizzare un approccio divide-et-impera, Bitcoin impiega un approccio unifica-e-intreccia, che era nuovo all’epoca, per risolvere entrambi i problemi contemporaneamente. La soluzione, come vedremo più avanti in questa lezione, è sorprendentemente semplice.

Slide 3

Questa lezione non riguarda principalmente cosa rende una valuta digitale una buona valuta, poiché ciò meriterebbe un discorso a sé. Tuttavia, le blockchain non operano senza gli incentivi finanziari ingegnerizzati tramite le valute digitali che supportano la blockchain stessa. Quando diciamo che criptovaluta e blockchain sono molto simili, l’idea è che se vuoi avere una blockchain, trasmetterai messaggi, e quei messaggi saranno transazioni con un flusso di denaro coinvolto. La prospettiva della criptovaluta è che l’attenzione principale è sull’aspetto monetario, mentre la prospettiva della blockchain è più interessata ai metadati che sono sovrapposti alle transazioni.

Ricorda che l’intero modello di sicurezza di questi sistemi blockchain/criptovaluta si basa sugli incentivi economici ingegnerizzati sopra il sistema. Non puoi separare completamente gli obiettivi economici e della criptovaluta dalla blockchain. È solo una questione di prospettiva.

Ora, diamo un’occhiata veloce ai requisiti che accompagnano un sistema blockchain/criptovaluta, e come possiamo potenzialmente allentare questi requisiti. Il primo è la non negabilità. La non negabilità significa che come partecipante, nessuno può impedirti di trasmettere una transazione. Nessuno può impedire che una transazione valida avvenga. Questo è molto importante, perché se c’è un partecipante capace di farlo, allora essenzialmente hai un’autorità centrale. Al contrario, nessun partecipante può impedire che una transazione valida avvenga, ma anche non c’è nessun partecipante che può negarti la possibilità di effettuare una transazione perché possono consumare la tua moneta o far avere successo a una transazione non valida. Questo è il primo requisito.

Il secondo requisito è l’anonimato. Tecnicamente, Bitcoin è una rete pseudo-anonima, ma fondamentalmente, quando dico il requisito dell’anonimato, significa che non c’è una lista di partecipanti. In una vera blockchain, i partecipanti possono apparire o lasciare il sistema in qualsiasi momento, senza un controllore. Poiché i partecipanti possono unirsi o uscire liberamente, non c’è nessuno che traccia la loro identità. Non significa che deve essere anonimo; significa solo che se hai una vera blockchain canonica, il requisito dell’anonimato, dove i partecipanti possono unirsi e lasciare come desiderano, deve essere rispettato.

Poi, sto elencando la scalabilità di massa come requisito, che è particolarmente difficile per le blockchain perché, come vedremo, questi tipi di sistemi distribuiti non sono intrinsecamente facili da scalare. Al contrario, scalare una blockchain è notevolmente difficile. Fondamentalmente, c’è un conflitto: se lasci a qualsiasi partecipante trasmettere un numero arbitrariamente grande di messaggi, transazioni o aggiornamenti al sistema, un partecipante può inondare l’intera rete e sostanzialmente spammarla. Quindi, tutte le blockchain devono affrontare questo problema di scalabilità, che viene risolto ingegnerizzando incentivi finanziari.

L’idea è di mantenere il costo di una transazione, che è il messaggio elementare trasmesso sulla blockchain, a qualcosa come un decimo di centesimo. Questo è molto economico - immagina di dover pagare un decimo di centesimo per inviare un’email. Non è gratuito, ma è comunque a basso costo. Quindi, se hai un uso regolare e vuoi avere una transazione associata, ad esempio, al movimento di un prodotto in un magazzino, va bene; il costo è ancora molto basso. Tuttavia, avendo il costo a 0,1 centesimo, rendi queste transazioni troppo costose per un attaccante che vorrebbe inondare la rete con miliardi di transazioni, che sono molto facili da fare se non ci sono commissioni. Ogni transazione deve pagare una commissione per la sua esistenza e per supportare la sua trasmissione; altrimenti, un attaccante potrebbe inondare il sistema distribuito senza ostacoli.

Quindi, le commissioni di transazione sono un altro aspetto in termini di ingegneria economica per mantenere la blockchain sostenibile. Vuoi essere in grado di mantenere questa commissione di 0,1 centesimo a qualsiasi scala perché un altro problema della negazione della scalabilità di massa è che se abbiamo milioni di transazioni, il costo delle transazioni salirà alle stelle. Questo è un grosso problema che non vogliamo. Non vogliamo avere una situazione in cui abbiamo un autobus con 100 persone che vogliono prenderlo a un certo orario, ma ci sono solo 50 posti. Se questo accade, allora ci sarà qualche tipo di meccanismo di asta in atto, e il prezzo dei biglietti salirà alle stelle. In termini di blockchain, questo significa che il costo delle transazioni salirà alle stelle. Tra l’altro, questi tipi di problemi stanno accadendo con molte blockchain al momento. Ad esempio, sulla rete Bitcoin Core, è molto frequente che il costo di una transazione superi i dieci dollari, ed è un problema molto grande.

Ora, vogliamo anche avere una latenza piuttosto bassa. Quello che Satoshi Nakamoto ha scoperto nel 2008, il consenso di Nakamoto, funziona molto bene, ma fondamentalmente, è un processo molto lento. Quando dico molto lento, significa che per i partecipanti per convergere sullo stato del sistema, ci vuole circa un’ora. Non è drammaticamente lento, ma non è nemmeno molto veloce. Se vogliamo fare qualcosa legato alla “supply chain”, dove vogliamo fare pagamenti o tracciare il movimento delle merci, sarebbe molto più bello se possiamo mantenere la latenza del sistema a qualcosa come tre secondi e meno - lo stesso tipo di latenze che ci si aspetta da un pagamento con carta di credito veloce.

Infine, uno degli ultimi requisiti è l’infrastruttura. Quando dico l’infrastruttura software che supporta la blockchain o la criptovaluta, deve essere un bene pubblico che è finanziato con una sorta di contratto sociale accettato. Questo è qualcosa che credo Satoshi Nakamoto non avesse previsto nel 2008. Se vuoi gestire un sistema distribuito molto complesso a livello mondiale, c’è un sacco di infrastruttura software da mettere in atto e mantenere. Il problema è che se non hai un modo socialmente accettato per finanziare tutti questi sforzi, emergono avversari, non solo come avversari bizantini nella rete che cercano di confondere gli altri partecipanti sullo stato della rete, ma emergono anche come avversari che prenderanno il controllo del codice sorgente stesso e faranno cose con l’infrastruttura software che contraddicono gli interessi della comunità più ampia. È successo nella storia delle criptovalute di avere prese di controllo ostili da un team all’altro, con i nuovi team che hanno interessi completamente disallineati con gli interessi della comunità più ampia. Questa è una classe di attacchi, più di un tipo di ingegneria sociale, che non erano chiaramente visti da Satoshi Nakamoto nel 2008. Tuttavia, dopo un decennio di funzionamento, questi tipi di attacchi sono ora molto più chiari agli osservatori del mondo della cripto.

Slide 4

Ora, la storia finora: questa è una serie di lezioni sulla “supply chain”. Siamo parte del quarto capitolo. Nel primo capitolo, ho presentato le mie opinioni sulla “supply chain” come campo di studio e come pratica, e abbiamo visto che richiede metodologie molto specifiche. L’intero secondo capitolo è dedicato alle metodologie della “supply chain” che sono adatte per operare in questo spazio. La maggior parte delle metodologie naive non sopravvivono al contatto con la realtà, specialmente quando ci sono conflitti di interesse in atto. Tra l’altro, molti degli aspetti nel secondo capitolo, dove tratto i conflitti di interesse, sono molto rilevanti per la lezione di oggi, quindi invito il pubblico, se non avete già visto le lezioni del secondo capitolo, a dare un’occhiata a quello. Il terzo capitolo è dedicato ai problemi della supply chain, che sono letteralmente lezioni in cui mi concentro esclusivamente sui problemi della “supply chain”, non sulle soluzioni. L’idea è capire veramente il problema prima di iniziare a immaginare soluzioni.

Il quarto capitolo è essenzialmente una raccolta di scienze ausiliarie. La blockchain è un argomento marginale che sto aggiungendo alla fine di questo capitolo, ma fondamentalmente, le scienze ausiliarie sono discipline che supportano veramente le pratiche moderne della “supply chain”. Proprio come ci si aspetterebbe che un medico moderno abbia una certa conoscenza della chimica, non è necessario essere un brillante chimico per essere un brillante medico. L’accordo generale sarebbe che, da una prospettiva moderna sulla scienza medica, se non sai nulla di chimica, non puoi essere un buon medico secondo gli standard moderni. Lo stesso vale per la “supply chain”, secondo la mia prospettiva. C’è una serie di scienze ausiliarie in cui è necessario avere una certa conoscenza di queste materie se si vuole avere una pratica della “supply chain” ragionevolmente moderna.

Slide 5

Ora, per la presente lezione, presenterò prima Mini Bitcoin, che è un’implementazione giocattolo della blockchain. Dovrebbe fare luce su come funzionano le criptovalute e qual è stata la chiave di volta scoperta da Satoshi Nakamoto nel 2008. Dovrebbe anche chiarire le tre grandi sfide che affrontiamo quando progettiamo blockchain, che sono principalmente scalabilità, latenza ed espressività. Queste tre sfide hanno un impatto significativo sui tipi di casi d’uso della “supply chain” che possiamo avere basati sulla blockchain. È essenziale capire i limiti che vengono con le blockchain perché limitano essenzialmente ciò che possiamo fare con la “supply chain” e il tipo di valore che possiamo creare. Infine, come seconda parte della lezione, passerò in rassegna una serie di casi d’uso della “supply chain” dove, a vari gradi, la “supply chain” ha qualcosa da aggiungere al tavolo.

Slide 6

L’obiettivo di Mini Bitcoin è costruire una blockchain giocattolo, una versione semplificata di Bitcoin da zero. Non prestiamo troppa attenzione a tutte le tecnicità coinvolte perché, nella vita reale, ingegnerizzare una blockchain è molto un lavoro di attenzione a tonnellate di dettagli. Qui, voglio solo delineare la struttura generale per mantenerla drammaticamente semplificata rispetto alla cosa reale in modo che possiamo comprendere in poche diapositive cosa sta succedendo, come viene ingegnerizzata e come funziona.

In questo esempio molto semplice, andremo a ingegnerizzare una valuta in cui ogni singola moneta vale esattamente un bitcoin. Hai un insieme di monete, ogni moneta vale esattamente un bitcoin, e l’unica cosa che puoi fare è essenzialmente trasferire una moneta da un partecipante. Se un partecipante possiede molte monete, può trasferire tutte le monete, ma stiamo solo guardando una valuta molto semplice in cui non abbiamo quantità frazionarie e altri elementi.

Per costruire questo Mini Bitcoin, abbiamo bisogno solo di tre funzioni speciali: una funzione hash, una funzione di firma e una funzione di verifica. Queste funzioni erano già standard nel 2008, quindi quando è stato inventato Bitcoin, tutti i blocchi di costruzione crittografici erano già in atto. Satoshi Nakamoto non ha inventato nessuno di questi strumenti. Queste funzioni crittografiche speciali, note anche come funzioni a trappola, erano ben note, standard e ampiamente utilizzate nel 2008. La chiave dell’innovazione di Satoshi Nakamoto era utilizzare queste funzioni in un modo molto speciale, che vedremo.

Abbiamo queste tre funzioni: la funzione di hashing, di cui non entrerò nei dettagli qui, ma di cui ho parlato in una lezione precedente. Questa è una versione crittografica della funzione di hashing, che può prendere qualsiasi messaggio, una serie di bit di lunghezza arbitraria, e creare un digest di 256 bit. La funzione non può essere, in pratica, invertita. Se hai un digest, l’unico modo per identificare un messaggio che produce il digest è conoscere il messaggio in anticipo.

La funzione di firma può prendere un messaggio, una chiave privata e produrre una firma, che è di nuovo 256 bit. La funzione di firma funziona in coppia con una funzione di verifica. Per coloro che potrebbero non essere familiari con la crittografia asimmetrica, l’idea è che si possono avere meccanismi in cui si hanno coppie di chiavi pubbliche e private. Con la chiave privata, puoi produrre una firma e pubblicare un messaggio senza divulgare la tua chiave privata. Qualsiasi partecipante può utilizzare la funzione di verifica per prendere il messaggio, la tua firma e la tua chiave pubblica per verificare che il messaggio sia stato firmato dalla chiave privata associata a questa chiave pubblica.

Queste funzioni a trappola non possono essere invertite, quindi se non conosci il messaggio originale, non puoi tornare indietro dalla funzione hash, dal digest al messaggio originale. La stessa cosa vale se non hai la chiave privata; non puoi produrre una firma da solo se hai un nuovo messaggio.

Queste tre funzioni speciali sono facilmente disponibili in sostanzialmente tutti gli ambienti di programmazione moderni, che si tratti di C++, Python, Java, C# o altri. Fa parte dell’ambiente standard avere accesso a queste classi di funzioni crittografiche.

Slide 7

Ora, diamo un’occhiata a una situazione in cui dovrebbe essere il proprietario della moneta numero uno. Cosa significa? Significa che come parte di questo consenso bizantino, c’è un accordo condiviso tra tutti i partecipanti per questa rete mini Bitcoin che, come parte dell’UTXO (Unspent Transaction Outputs), questa moneta è effettivamente presente. Quando dico questa moneta, intendo un messaggio che include la chiave pubblica numero uno e la firma zero. Presumo solo che questo faccia parte di un insieme di monete e tutti i partecipanti concordano che questa moneta esiste effettivamente ed è pronta per essere spesa. Ora, come proprietario di questa moneta numero uno, come spendo effettivamente questa moneta per trasferire la proprietà di questa moneta a qualcun altro?

Slide 8

Il modo in cui faccio questo è producendo una firma. La firma è costruita come segue: sto usando la funzione speciale “sign” e sto per firmare un messaggio. Questo messaggio sarà solo la chiave pubblica numero uno, la firma zero e poi la chiave pubblica numero due. La chiave pubblica numero due è letteralmente l’indirizzo a cui sto inviando i soldi. Chiunque possieda la chiave privata associata a questa chiave pubblica numero due sarà il destinatario della mia transazione. Quindi, firmo questa transazione e, per firmarla, sto usando la chiave privata numero uno. L’unico partecipante che può effettivamente produrre questa firma numero uno è la persona che ha il segreto, la chiave privata numero uno, associata alla chiave pubblica numero uno.

Se voglio far sapere a tutta la rete che questa transazione è stata effettuata, devo trasmettere una transazione. La transazione sarà solo un messaggio che elenca la chiave pubblica numero uno, la firma zero, la chiave pubblica numero due e la firma uno che ho appena prodotto. È solo un elenco degli elementi che contribuiscono alla transazione. Quando pubblico questa transazione da uno a due, essenzialmente, la moneta numero uno esce dal pool di monete e la moneta numero due entra nel pool di monete come parte del sistema. Ecco perché è fondamentale avere questo consenso bizantino in gioco. Abbiamo bisogno di questo consenso bizantino perché, potenzialmente, vorresti essere in grado di spendere soldi che non possiedi e confondere la rete sulla proprietà di alcune monete. Tuttavia, se riesci a risolvere il problema del consenso bizantino, c’è un accordo fermo sulle monete che effettivamente appartengono al sistema. Una volta che una moneta è spesa, il proprietario numero due ora ha una moneta. Una moneta può uscire dalla rete e viene creata una nuova moneta che entra nello stato del sistema.

Slide 9

Il meccanismo può essere ripetuto; la moneta numero due può essere inviata alla moneta numero tre utilizzando lo stesso sistema: produrre una firma, trasmettere una transazione e così via.

A proposito, ogni volta che ho detto che viene utilizzata la funzione “sign”, implicitamente, significa che tutti gli osservatori possono utilizzare la funzione “verify” per verificare che la firma sia corretta. Fondamentalmente, quando i partecipanti osserveranno le transazioni, la prima cosa che faranno sarà utilizzare la funzione “verify” che ho introdotto in precedenza per verificare che la transazione sia effettivamente corretta. Ci sono due controlli coinvolti: ogni partecipante deve verificare che la moneta trasferita fosse già parte dello stato del sistema, assicurandosi che sia una moneta valida, e che la transazione sia valida secondo la firma. Quello che non ho affrontato qui è il problema del doppio-spending. Come preveniamo che vengano effettuate due transazioni in conflitto allo stesso tempo e come preveniamo che la rete sia confusa se un avversario cerca di trasmettere due transazioni in conflitto simultaneamente, inviando gli stessi soldi a due partecipanti distinti?

Non ho nemmeno chiarito da dove provengono queste monete. Come vengono introdotte nel sistema in primo luogo? Il nocciolo della scoperta di Satoshi Nakamoto e del suo Consenso di Nakamoto è risolvere questi due problemi contemporaneamente.

Slide 10

La proposta di Satoshi Nakamoto è di introdurre una classe speciale di partecipanti nella rete, oggi soprannominati “minatori”.

I minatori essenzialmente ascoltano la rete e raccolgono tutte le transazioni che sono state trasmesse. Raccolgono queste transazioni trasmesse e le mettono in un contenitore chiamato “blocco”. Un blocco è solo una raccolta di transazioni trasmesse da chiunque nella rete peer-to-peer.

La primissima transazione di un blocco sarà una transazione speciale chiamata “coinbase”. Un coinbase è una transazione unica che crea una nuova moneta in questo mini setup di Bitcoin dal nulla. La prima transazione è il coinbase, che crea una nuova moneta dal nulla, e poi nel blocco segue l’elenco delle transazioni che sono state trasmesse, come percepito dal minatore. Il minatore potrebbe non essere in grado di catturare tutte le transazioni della rete Bitcoin, ma cerca di farlo.

Slide 11

Il coinbase è speciale, e spiegherò come costruire questo coinbase perché è una transazione unica. Prima, produrremo un hash del blocco, un hash parziale (H1a). Questo hash è essenzialmente un hash di un messaggio, e questo messaggio inizia con un hash del blocco precedente (H0b), concatenato con tutte le transazioni presenti nel blocco.

Il coinbase è quindi una tupla che include l’hash H1a, seguito da un nonce. Un nonce è un numero casuale scelto casualmente dal minatore e ha la sua importanza. Il coinbase contiene anche la chiave pubblica del minatore. Il coinbase include un hash di tutto il contenuto del blocco. Il coinbase contiene un numero casuale e la chiave pubblica del minatore. Questa chiave pubblica verrà utilizzata dal minatore in seguito per rivendicare il coinbase come una moneta regolare. In questo mini setup di Bitcoin, le monete vengono emesse a un ritmo di un Bitcoin per blocco. In realtà, sulla rete Bitcoin Core o Bitcoin Cash, il processo è più complicato, ma la maggior parte della complessità può essere semplificata per il bene della chiarezza.

L’idea è che per considerare valido il blocco, dobbiamo produrre un coinbase. Tuttavia, se ci fermiamo a questo punto, tutti i minatori potrebbero affermare di avere un blocco quando vogliono, e tutti i minatori avrebbero interesse a dire: “Posso produrre un pacchetto, un digest di tutte quelle transazioni. Posso produrre un coinbase. Per favore, dammi questo Bitcoin extra”. Come facciamo a risolvere tutti i minatori che competono per avere la loro versione del blocco selezionata dalla rete e considerata l’unico vero blocco?

Satoshi Nakamoto ha introdotto il concetto di proof of work. L’hash del coinbase, che è un grande numero di 256 bit, deve essere superiore a una soglia di difficoltà. Questo processo è come risolvere un puzzle, e l’unico modo per risolvere questo puzzle è trovare un coinbase che ha un hash che soddisfa questo obiettivo di difficoltà. Il minatore può provare molti numeri casuali per il nonce nella speranza di essere il primo a raggiungere la difficoltà e rivendicare il blocco per sé.

In Bitcoin, la difficoltà è adattiva, e la rete utilizza un algoritmo di media mobile glorificato per mantenere la difficoltà intorno a 10 minuti per blocco. Se i blocchi vengono trovati in media a un ritmo più veloce di 10 minuti, la difficoltà aumenterà fino a quando i blocchi non verranno trovati ogni 10 minuti in media. Se i blocchi iniziano a essere trovati ogni 11 minuti, la difficoltà diminuirà per mantenere il tempo medio per trovare un blocco a 10 minuti.

La proposta di Satoshi Nakamoto è che i minatori seguano sempre la catena valida più lunga. Una catena di blocchi deve soddisfare l’obiettivo di difficoltà per essere valida. Quando si costruisce un blocco, lo si costruisce sempre sopra un blocco preesistente, tranne per il blocco di genesi, che è il punto di partenza predefinito. La regola non riguarda solo il possesso della catena più lunga, ma la catena valida più lunga. Gli altri minatori controlleranno che tutte le transazioni elencate in un blocco siano effettivamente valide, assicurandosi che le firme corrispondano e che le monete spese siano idonee a essere spese. Mantengono questo stato, ed è esattamente così che Bitcoin può risolvere sia il problema del doppio spesa che il problema dell’emissione di monete. Abbiamo tutto il necessario per costruire una blockchain.

In realtà, se si vuole costruire una vera blockchain di grado di produzione, ci sono tonnellate di cose extra da considerare. Prima di tutto, vorresti avere quantità frazionarie. Probabilmente non vuoi essere in grado di avere solo un Bitcoin alla volta; vuoi qualcosa dove puoi trasferire quantità multiple o frazionarie di Bitcoin.

In termini di monete, vorresti avere transazioni che possono consumare molte monete come input in una volta e poi produrre molte monete in una volta. Non sarà una transazione uno a uno che collega una moneta a una moneta; sarà una transazione molti a molti, con molte monete in input che si collegano a molte monete in output. Tra l’altro, è così che funzionano varie reti Bitcoin oggi.

Hai anche le commissioni di transazione di cui ho parlato. Se lasci che le persone trasmettano transazioni all’infinito, potrebbero inviare denaro avanti e indietro tra gli stessi indirizzi e inondare il mercato. L’idea è che una commissione è fondamentalmente la nozione che una certa parte della transazione viene reindirizzata al minatore. Il modo in cui è tipicamente fatto nella maggior parte delle varianti di Bitcoin è dire che l’input totale dovrebbe essere, in termini di valore monetario, leggermente superiore all’output totale. La frazione di valore mancante, il divario, è la ricompensa pagata al minatore.

Slide 12

Ora abbiamo completato il nostro mini Bitcoin. Se sai come programmare, hai tutti gli elementi di cui hai bisogno per implementare la tua blockchain. Tra l’altro, puoi anche ripetere i blocchi, ed è quello che sto facendo qui. Quello che hai appena fatto per un blocco, puoi ripetere le stesse formule per un altro blocco, con un secondo codice sorgente. Questo è proprio come le transazioni; lo stesso meccanismo viene ripetuto ancora e ancora.

Slide 13

Scalare la blockchain è molto impegnativo. In un breve white paper del 2018, ho pubblicato un panorama applicativo di Bitcoin. L’idea è che, a seconda della quantità di dati coinvolti nelle tue blockchain, la quantità di dati che devi elaborare e spostare varia notevolmente a seconda di ciò che stai facendo con la blockchain. Essenzialmente, varia da circa 100 byte da spostare (l’ordine di grandezza di una chiave privata) fino a 10 ordini di grandezza se devi occuparti dell’intera blockchain.

È difficile capire il fatto che, a seconda di ciò che stai facendo, la quantità di risorse informatiche che dovrai iniettare per svolgere il lavoro varia di 10 ordini di grandezza. Un ordine di grandezza significa che moltiplichi la quantità di risorse per un fattore di 10, e quando hai 10 ordini di grandezza, puoi passare da uno a 10 miliardi. Questo è sbalorditivo ed enorme. In questo panorama applicativo, vedrai che ci sono due distinzioni principali: applicazioni on-chain e off-chain. Le app off-chain sono quelle che trattano solo i dati generati da te o dai tuoi partner stretti. Se sei una grande azienda, potresti dover gestire milioni di transazioni, ma queste sono solo le tue transazioni. In termini di dati, può essere grande, ma è gestibile poiché si riferisce direttamente al tuo business.

D’altra parte, le app on-chain trattano tutte le transazioni trasmesse sulla rete. Questo può essere molto più grande, specialmente se sei un piccolo giocatore e devi gestire tutte le transazioni su una grande rete, che possono essere milioni di volte più delle transazioni che ti interessano.

Inoltre, dobbiamo distinguere tra componenti che sono “cash cogs” e “cash lands”. I cash cogs sono componenti fondamentali che contribuiscono alla risoluzione del problema del consenso. Se li rimuovi, la blockchain smette di funzionare perché non hai più consenso. I cash lands, d’altra parte, sono componenti opzionali che possono essere costruiti sulla struttura della blockchain. Questi non sono strettamente necessari per il funzionamento della blockchain.

Tipicamente, quando pensiamo ai casi d’uso della “supply chain”, ci posizioniamo con i metadati nel regno dei cash lands. Quello che stiamo facendo non è strettamente necessario per il funzionamento della blockchain; può continuare a funzionare senza il nostro caso d’uso specifico.

Slide 14

In termini di scalabilità della blockchain per veri casi d’uso della “supply chain”, devi considerare che la blockchain dovrebbe essere in grado di gestire milioni di transazioni. Le grandi aziende gestiscono milioni di transazioni settimanali, il che non è eccezionale nel mondo della “supply chain”. Tuttavia, le blockchain sono scarsamente scalabili, come dimostra il fatto che i minatori devono occuparsi di tutte le transazioni di tutti.

Per affrontare questo problema, sono state introdotte alcune innovazioni, come le soluzioni discusse precedentemente nella lezione. L’obiettivo principale è rendere la tecnologia blockchain più scalabile e adatta a gestire l’enorme volume di transazioni tipicamente visto nelle applicazioni della “supply chain”. Se vuoi che una blockchain venga utilizzata per scopi di “supply chain”, deve essere in grado di gestire non solo le transazioni di un’unica azienda, ma anche tutte le aziende che partecipano all’iniziativa blockchain. Questo può diventare estremamente grande, o effettivamente molto grande, forse eccessivamente. Questo è ciò che dobbiamo vedere, e qui, al salvataggio, ci sono stati essenzialmente due documenti notevoli. Quando Satoshi Nakamoto ha pubblicato il suo documento, ha detto che con il progresso dell’hardware, questo problema sarebbe stato risolto, e avremmo scalato quanto necessario. Questo sarebbe successo. Tuttavia, si è rivelato difficile, e per più di un decennio ormai, praticamente tutti i giocatori in questo spazio blockchain e criptovaluta hanno avuto difficoltà quando si tratta di scalabilità.

Il primo documento notevole è ECMH, Elliptic Curve Multiset Hash. È un documento abbastanza tecnico, ma il punto chiave è l’idea che non devi tenere tutte le transazioni in giro; devi solo tenere le monete che sono pronte per essere spese. Questa collezione di monete che possono essere spese è tecnicamente conosciuta nell’ecosistema Bitcoin come UTXO. Solo come ordine di grandezza, l’UTXO della rete Bitcoin Core è attualmente leggermente inferiore a cinque gigabyte. Questa è la dimensione del set di dati UTXO, ma se guardi la blockchain di Bitcoin Core, la dimensione della blockchain è leggermente inferiore a 350 gigabyte, e la blockchain sta crescendo molto più velocemente dell’UTXO.

Quello che il documento ECMH ti dà è una funzione hash che ha affinità con i multisets. Essenzialmente, è una funzione hash in cui puoi aggiornare il tuo hash se aggiungi o rimuovi elementi alla tua collezione. Non conservi l’insieme o il multiset stesso, ma conservi solo l’hash, e puoi aggiungere o rimuovere elementi. Questa proprietà di tipo insieme significa che puoi fare queste aggiunte o cancellazioni in qualsiasi ordine e arrivare comunque allo stesso hash. Quello che puoi ottenere attraverso ECMH è un modo per avere un impegno UTXO, che permette alla comunità di allontanarsi dalla blockchain completa. La maggior parte della comunità non deve occuparsi della blockchain completa, ma può occuparsi solo dell’UTXO. Ripeto, la dimensione dell’UTXO della rete Bitcoin Core è di cinque gigabyte, e la dimensione della blockchain è di 350 gigabyte, quindi stai fondamentalmente guadagnando due ordini di grandezza. Questo è molto significativo. Essenzialmente, con ECMH, guadagni due ordini di grandezza sulla memorizzazione dei dati persistenti, che è una grande vittoria.

Il secondo documento è Graphene, un nuovo protocollo per la propagazione dei blocchi utilizzando la riconciliazione degli insiemi. Graphene ti permette di guadagnare essenzialmente due ordini di grandezza sui requisiti di larghezza di banda di picco. In questo mini setup Bitcoin che ho appena descritto, hai i minatori e le transazioni trasmesse in stile peer-to-peer tutto il tempo per la rete. La larghezza di banda è probabilmente il problema più risolto di Bitcoin, ma nonostante ciò, hai un problema quando si tratta di larghezza di banda nel momento in cui viene trovato un blocco. Il minatore, per rivendicare il blocco, deve propagare il coinbase, dove dice: “Guarda, ho un coinbase che soddisfa il mio obiettivo di difficoltà”. Poi, tutti gli altri minatori devono scaricare l’intero blocco, e se fatto in modo ingenuo, devono validare che il blocco sia effettivamente valido, non solo che il coinbase soddisfi l’obiettivo di difficoltà.

Ogni volta che viene trovato un blocco, c’è un picco di richiesta perché si vuole mantenere il tempo necessario per trasferire un intero blocco, se lo si fa in modo ingenuo, ben al di sotto dell’intervallo di 10 minuti. In Bitcoin, il puzzle è tarato in termini di difficoltà in modo tale che il tempo medio tra due blocchi consecutivi sia in media di 10 minuti. Quindi, si vuole che il trasferimento del blocco sia solo una frazione, diciamo meno di 30 secondi, se si vuole mantenere la rete molto stabile. Tuttavia, ciò significa che il blocco deve essere trasferito entro 30 secondi, il che pone un limite alla tua larghezza di banda di picco. La velocità con cui trasferirai il tuo blocco sarà limitata dalla tua larghezza di banda.

L’idea è che con Graphene, una tecnica basata sulla compressione, non avrai bisogno di trasferire l’intero blocco perché la maggior parte di ciò che il blocco contiene sono in realtà le transazioni che sono già state trasmesse attraverso la rete. L’unica cosa che vuoi trasmettere è un insieme di riconciliazione, solo per dare informazioni ai tuoi pari (altri minatori) su quali transazioni sono state incluse o meno nel tuo blocco, in un modo che è perfettamente affidabile. Se fai questo, puoi ridurre di nuovo di due ordini di grandezza la larghezza di banda di picco, il che è molto significativo.

Questo è di grande interesse, ad esempio, Graphene funzionerebbe sulle reti Bitcoin Cash o sulle più recenti reti eCash, a causa di puri incidenti tecnici. Non funzionerebbe sulla rete Bitcoin Core. Questo era parte delle cose che non erano realmente anticipate da Satoshi Nakamoto.

L’ultimo requisito che ho menzionato nella mia lista di requisiti è che mantenere il software significa che devi avere un contratto sociale in atto, in modo da avere squadre che possono fare la manutenzione e incorporare scoperte successive nella tua blockchain. Altrimenti, rimani bloccato con il tipo di prestazioni e stabilità che avevi un decennio fa o al momento dell’inizio della blockchain.

Slide 15

Ora abbiamo un altro problema: accelerare la blockchain. La classica rete Bitcoin ha un tempo medio tra i blocchi di 10 minuti, e se vuoi avere una vera fiducia nello stato del consenso, devi aspettare per più blocchi. Come regola generale, le persone di solito stimano che se vuoi avere una fiducia assoluta, devi aspettare per sei conferme, il che ti dà un lasso di tempo di un’ora. L’idea è che potremmo rendere questo tempo tra i blocchi più breve. Tuttavia, il problema è che più piccolo è l’importo del tempo, più piccoli devono essere i blocchi, il che mina la scalabilità. Blocchi infrequenti significano che puoi avere blocchi molto grandi, il che è una cosa buona; aiuta la tua rete a far fronte alla massa di transazioni.

Considerando i ritardi che hai sulla rete globale, questo obiettivo di 10 minuti non è ottimale, ma è nell’ordine di grandezza di ciò che è efficiente per operare questo tipo di consenso distribuito con blocchi molto grandi, blocchi che possono essere fino a un terabyte di dimensioni. Questo sembra molto grande, ma in realtà, se guardi il caso d’uso su scala umana, è quello che ci vuole. Devi mantenere i blocchi molto distanti in termini di tempistica se vuoi preservare la tua scalabilità. Tuttavia, poi hai il problema che la rete è lenta. Un’ora per confermare una transazione potrebbe andare bene per un caso d’uso di e-commerce, dove va bene se inizi a non fare nulla dopo il pagamento per 60 minuti dato che la consegna non avverrà prima di domani comunque. Ma se vuoi avere qualcosa che accadrebbe all’interno di un magazzino o al punto vendita, questo è troppo lento. È come una carta di credito che impiegherebbe un’ora per l’approvazione del pagamento, il che è molto lento.

Slide 16

Quello che vogliamo è tipicamente un obiettivo di qualcosa che sarebbe di tre secondi e meno. Questo perché, da una prospettiva di esperienza utente umana, qualcosa che impiega tre secondi per essere approvato sarà percepito come ragionevolmente veloce. Pensalo come un pagamento con carta di credito; se conti uno-due-tre quando fai un pagamento, va bene, è ragionevolmente veloce. Se puoi essere completamente sicuro entro questo lasso di tempo, puoi ottenere un’esperienza utente molto decente per la maggior parte dei casi d’uso. È ancora troppo lento per la comunicazione a bassa latenza da macchina a macchina, ma è sufficiente per la maggior parte dei casi d’uso che coinvolgono la percezione umana.

Per quasi un decennio, sono state presentate numerose soluzioni per affrontare questo problema di latenza. La stragrande maggioranza di queste soluzioni non era molto buona. Tutte avevano varie limitazioni che minavano Bitcoin o la sua scalabilità, o erano soluzioni naive che emergevano rapidamente una volta pubblicato Bitcoin. La maggior parte di queste soluzioni si basava sull’elezione di un leader, e questo leader avrebbe agito come un’autorità centrale temporanea per un punto di tempo, fornendo servizi a bassa latenza. Tuttavia, il problema con l’elezione di un leader è che quando si passa da un leader a un altro, il processo può essere molto disordinato, e si può avere una situazione in cui, in termini di qualità del servizio, la maggior parte del tempo è di pochi secondi e poi a volte è effettivamente un’ora. Questo sarebbe percepito da tutti come un’interruzione della rete.

Ci è voluto un decennio per una soluzione che fosse, a mio parere, abbastanza buona, per essere pubblicata. Questa soluzione è un brillante lavoro di un team anonimo chiamato Team Rocket, pubblicato nel maggio 2018: Snowflake to Avalanche, un’altra famiglia di protocolli di consenso metastabile per le criptovalute. Questo documento presenta una serie di tre algoritmi: Snowflake, Snowball e Avalanche. Ogni algoritmo è costruito sulla base del precedente, e a proposito, la vera magia si trova nell’algoritmo Snowball, che è proprio quello che non appare nel titolo del documento.

Fondamentalmente, quello che hanno progettato è la metastabilità, ed è molto interessante. Ricorda, quando hai transazioni in conflitto, non importa realmente quale viene scelta perché migliorare la latenza riguarda la prevenzione del doppio spesa o effettivamente la riduzione del lasso di tempo in cui puoi avere ambiguità sul doppio spesa. L’idea di avere qualcosa che è meta-stabile è che vorresti avere un protocollo in cui i partecipanti chattano costantemente tra loro. L’obiettivo è che se ci sono due transazioni in conflitto, la rete raggiungerà un equilibrio metastabile. La rete convergerà rapidamente verso una interpretazione della verità; non importa quale, deve essere solo una. Quindi se ci sono oggetti in conflitto, la rete discuterà e risolverà il conflitto.

Snowflake fornisce un processo di convergenza lento, mentre Snowball, in questo documento, offre un trucco che permette un’accelerazione esponenziale, risultando in una convergenza molto più veloce. Avalanche contribuisce con alcune proprietà del grafo relative al grafo delle transazioni. Tuttavia, la mia personale comprensione è che il contributo di Avalanche è molto più debole; è davvero Snowball che fa la magia. Potresti voler implementare Avalanche, ma solo Snowball ti darà circa il 99% della metastabilità che cerchi.

C’è un inconveniente in questo approccio. Con la prova di lavoro di Satoshi Nakamoto e i blocchi, qualsiasi osservatore può intervenire e testimoniare ciò che è accaduto, riproducendo l’intero processo e controllando tutto. La sicurezza non dipende dall’essere online dell’osservatore. L’osservatore può essere online o offline, e non importa. Questo è un ottimo modello di sicurezza che non si basa su una connessione live alla rete.

Avalanche, d’altra parte, richiede che l’osservatore monitori costantemente le chat della rete per generare sicurezza. Non è possibile per un osservatore in ritardo unirsi e rivalutare la sicurezza delle transazioni passate. Tuttavia, non ci preoccupiamo davvero di questo problema perché se sei live sulla rete, valuti la sicurezza delle transazioni che avvengono in quel momento. Per le cose che sono accadute nel passato quando non c’eri, la prova di lavoro e i blocchi forniscono ancora un modo per convalidare le transazioni.

Avalanche non è in opposizione a Bitcoin; è complementare. Uno degli aspetti deboli della soluzione da Snowflake ad Avalanche è che non fornisce una soluzione pulita al problema dell’emissione di monete. Per ottenere il meglio da entrambi i mondi, sarebbe ideale mantenere un design simile a Bitcoin con prova di lavoro e grandi blocchi, sovrapponendo a questo una sicurezza a bassa latenza.

Per evitare certe classi di attacchi Sybil che potrebbero confondere Avalanche, potrebbe essere impiegata la prova di partecipazione. Questo introduce strati di intreccio economico, che è un modo molto Bitcoin-esque di pensare. Per raggiungere la sicurezza desiderata, dovrebbe essere creato un web di intrecci economici per garantire che tutti rimangano onesti. Ci sono modi per ingegnerizzare soluzioni per ottenere una migliore latenza.

Slide 17

Ora, ancora sul tema dell’espressività, stiamo cercando qualcosa di più che semplici transazioni finanziarie, poiché si tratta di “supply chain” e dell’uso di una blockchain per scopi di “supply chain”. Le transazioni finanziarie sono necessarie sullo sfondo, ma vogliamo essere in grado di fare di più. La domanda è, come incorporiamo questa logica extra?

Nei circoli delle criptovalute, molte criptovalute hanno introdotto la nozione di contratti intelligenti. Un contratto intelligente è fondamentalmente un programma che è gestito dagli stessi minatori sulla blockchain. I minatori controllano la validità delle transazioni, ma se puoi includere un linguaggio di programmazione o codice assembly come parte della tua transazione, i minatori potrebbero eseguire i programmi e controllare che i programmi verifichino certe proprietà. Questo è ciò che viene tipicamente fatto su Ethereum, ed è chiamato contratto intelligente. C’è questo motto che “il codice è legge”, nel senso che ci fidiamo dell’esecuzione del programma perché è certificato come corretto dai minatori stessi.

Tuttavia, credo che questo approccio sia profondamente fuorviante su due fronti molto diversi. Il primo problema è che stai rendendo il problema della scalabilità molto peggiore. Scalare una blockchain è già molto difficile, poiché devi canalizzare tutte quelle transazioni verso i minatori. I minatori non devono fare molto con queste transazioni; devono solo controllare la firma. Un minatore può potenzialmente elaborare una grande quantità di transazioni perché la quantità di controlli da eseguire per ogni transazione è minima. Ora, immagina se un minatore non solo deve convalidare le transazioni ma anche eseguire programmi arbitrari da tutte le aziende. Diventa molto difficile, ed è esattamente quello che è stato accadendo per molto tempo sulla rete Ethereum e su altre criptovalute orientate verso contratti complessi.

Sebbene le criptovalute successive come Ethereum abbiano beneficiato di una migliore ingegneria, affrontano ancora un problema enormemente più difficile in termini di scalabilità. Una volta che raggiungono un certo livello di notorietà e attività sulla rete, tutte affrontano enormi problemi di scalabilità. Tutto si riduce al fatto che devi eseguire tutti quei programmi.

Il secondo grande problema con i contratti intelligenti è che sono fondamentalmente programmi immutabili. Quando metti i programmi sulla blockchain, l’idea è che ti fidi di quei programmi perché operano autonomamente. Con “autonomamente”, si intende che ci sono minatori con incentivi finanziari per eseguire quei programmi per la comunità, e l’intero processo è trasparente e verificabile. Tuttavia, il grande problema con i programmi immutabili è che se c’è un bug, non puoi correggerlo.

La storia dei contratti intelligenti è stata una serie infinita di violazioni che hanno comportato perdite enormi per coloro che gestivano i contratti. Anche Ethereum stesso ha dovuto subire un enorme fork, portando a Ethereum ed Ethereum Classic, perché un contratto violato era così significativo che gli operatori hanno deciso che era meglio annullare i problemi e minare la proprietà immutabile che la blockchain dovrebbe offrire. Non esiste una soluzione alternativa e se fai qualcosa di non banale in un contratto intelligente, ti stai esponendo a violazioni.

Nel 2018, ho pubblicato un altro approccio chiamato Tokida che mostra come si possono avere programmi arbitrari che girano accanto alla blockchain. Con Tokida, il programma è open-source e opera su un modello di “fiducia ma verifica”. Tutte le persone interessate all’esito del contratto possono verificare se vogliono, e dal punto di vista delle prestazioni, è più flessibile perché il resto della comunità non deve eseguire il tuo programma. Se vuoi correggere il tuo software, puoi ancora farlo in qualsiasi momento senza che il resto della comunità sia all’oscuro di ciò che hai fatto.

Se c’è una violazione, non è un problema significativo perché puoi correggerla, e la comunità può valutare che la correzione è stata fatta in buona fede. L’intuizione è che la maggior parte di ciò di cui hai bisogno in termini di modello di sicurezza per scopi di “supply chain” è solo fiducia ma verifica. Devi solo assicurarti che se qualcuno imbrogli, tutte le altre persone se ne accorgeranno, e questo sarà sufficiente. Per la valuta stessa, vuoi prevenire che le persone imbrogliano in primo luogo. Ma per i contratti intelligenti, non hai bisogno dello stesso grado di sicurezza che con la valuta stessa. Essere in grado di rilevare le frodi dopo il fatto è sufficiente. Se qualcuno inizia a frodare la tua attività, semplicemente non farai più affari con quel partner, e quella sarebbe la fine della storia. Non hai bisogno di avere qualcosa che impedisca le frodi fin dall’inizio. La fiducia è essenziale negli affari, e se stai lavorando con un partner, hai un certo grado di fiducia con loro.

Slide 18

Ora, stiamo entrando nella seconda parte della lezione, che copre i casi d’uso. Credo che l’uso principale delle blockchain rimanga i pagamenti. Pagare i fornitori, soprattutto quelli all’estero, può essere ancora una sfida. L’accredito di un bonifico può essere lento, richiedendo fino a due settimane in alcuni casi. I flussi di lavoro di pagamento del sistema bancario sono lontani dall’essere aggiornati al 21° secolo, il che può portare a errori come doppi pagamenti per fatture di grandi dimensioni.

Credo che ci siano molti casi d’uso per i pagamenti, soprattutto quando si tratta di implementare meccanismi complessi come pagamenti ritardati, pagamenti condizionali o penalità per prodotti che non soddisfano i requisiti di qualità o le scadenze. Con il denaro programmabile, puoi implementare tutti questi schemi in modi che avrebbero sembrato fantascienza.

Tuttavia, ci sono due avvertenze per questo caso d’uso. Prima di tutto, le criptovalute sono ancora incredibilmente volatili nel valore, il che significa che il loro valore può fluttuare drasticamente nel tempo. Questa volatilità è un problema in corso, ma nell’ultimo decennio è stata in diminuzione. La volatilità era ancora più alta dieci anni fa, ed è stata gradualmente diminuendo da allora, ma rimane ancora oltre la zona di comfort della maggior parte delle grandi aziende. Osservare fluttuazioni giornaliere del 10% nel valore di queste criptovalute è ancora la norma. Un decennio fa, era intorno al 50%. Il secondo problema per i pagamenti è l’esistenza di migliaia di criptovalute, che crea il problema di sceglierne una e concordare con il tuo partner. Tuttavia, esistono classi di sistemi di cambio estero robotizzati che possono convertire qualsiasi criptovaluta in un’altra, prelevando commissioni molto basse come lo 0,1%, il che aiuta a mitigare questo problema.

Slide 19

Un altro caso d’uso è la tracciabilità passiva. La tracciabilità è essenziale in molte industrie come l’aerospaziale, la farmaceutica e l’automobilistica, poiché può essere questione di vita o di morte. Ad esempio, i pezzi di ricambio contraffatti per auto possono portare a incidenti fatali se falliscono sotto stress. I token non fungibili (NFT) possono essere utilizzati per portare la tracciabilità a un nuovo livello. Un NFT è come un numero di serie trasferibile. Con transazioni sicure, solo il proprietario di questo numero, con le sue chiavi private, ha il potere di trasferire il numero a un altro partecipante. L’uso degli NFT può prevenire le falsificazioni, anche da parte degli emittenti originali.

Per implementare la tracciabilità basata su NFT, hai solo bisogno di codici QR e uno smartphone, rendendola principalmente una soluzione basata su software. La tecnologia blockchain offre un modo per mantenere una tracciabilità trasparente dalla produzione al consumatore. Tuttavia, ci sono delle sfide. Prima di tutto, tutti devono concordare su un formato e una blockchain. La blockchain trasporta carichi binari, quindi se vuoi usarla per scopi di tracciabilità, il formato deve essere concordato. Questo diventa un problema complesso poiché molte industrie e aziende hanno i loro formati e standard unici.

Quello che le persone non si rendono necessariamente conto è quanto siano flessibili le supply chain nel mondo reale. Ad esempio, anche nell’aerospaziale dove la tracciabilità è assolutamente eccellente, noterai che al punto A, il documento che segue una parte è un PDF. Per la fase successiva, è lo stesso PDF ma scannerizzato, e forse per la fase successiva, è la stessa scansione ma annotata e rischiarita. Fondamentalmente, si presume che un essere umano possa intervenire e decifrare i documenti. Tuttavia, se vuoi operare su una blockchain, non puoi avere un processo così lasco. Devi specificare completamente il formato binario per tutti i dati che vuoi esporre sulla blockchain; altrimenti, perdi l’angolo programmatico dove puoi lavorare con strumenti programmatici.

Unificare tutti gli standard è difficile, e devi scegliere una blockchain perché, per far funzionare la tracciabilità, devi scegliere una blockchain che sia condivisa tra tutti i partecipanti, almeno per un verticale e una regione. Il problema è che quando si tratta di scegliere una blockchain, si hanno enormi conflitti di interesse. Poiché una blockchain non può mai essere completamente districata dalla sua criptovaluta sottostante, se investi in una criptovaluta, diventi in conflitto nel senso che hai un interesse acquisito nel fare in modo che l’azienda scelga la blockchain associata alla criptovaluta che possiedi.

Questi conflitti di interesse sono pervasivi e difficili da valutare poiché le blockchain sono tipicamente anonime. Se vuoi testare le acque e ottenere feedback su quale blockchain scegliere, devi considerare i potenziali conflitti di interesse che potrebbero sorgere tra il tuo personale. Le aziende che gestiscono grandi supply chain di solito hanno molte persone coinvolte, e questi problemi sono amplificati.

Slide 20

Ora, consideriamo un esempio più avverso. Immagina le aziende farmaceutiche che operano in paesi molto poveri, come alcuni paesi africani, dove affrontano problemi significativi con i farmaci contraffatti. Il problema è che in questi paesi poveri, tutti gli intermediari sono corrotti in qualche misura. Gli intermediari corrotti possono prendere una scatola reale con prodotti reali, scambiare i veri farmaci fuori dalla scatola, mettere farmaci contraffatti al loro posto, e poi vendere la scatola al mercato. Le persone che comprano farmaci contraffatti possono avere una condizione che mette a rischio la vita e hanno davvero bisogno del farmaco. Questo è un problema molto serio nei paesi poveri, e riprodurre l’imballaggio per i farmaci contraffatti è banale. Una potenziale soluzione è l’uso di blockchain e token per la tracciabilità attiva, che ricorda come funziona l’imposta sul valore aggiunto (IVA) in Europa. L’IVA è una tassa difficile da frodare perché crea uno schema di ingegneria sociale in cui le aziende sono intrecciate con i loro fornitori onesti.

L’idea è di prendere lo stesso concetto e applicarlo alla blockchain. Ad esempio, diciamo che sei un’azienda farmaceutica che produce un farmaco. Vendi un pacchetto del farmaco a un intermediario o grossista a un prezzo più alto, come $15 invece del prezzo effettivo di $10. Si verifica il trasferimento di proprietà del token, e il grossista può riscattare $1 sul valore, portando il loro costo a $14. Il grossista poi vende il pacchetto di farmaci al distributore, e di nuovo, c’è un trasferimento di proprietà del token. Una volta che il distributore reclama il token, possono riscattare $1 del valore che hanno appena acquistato, e così via, fino al consumatore finale.

Quando il consumatore finale riceve la scatola di farmaci, paga $11, e scannerizzando il codice QR con uno smartphone, può riscattare $1, che fluisce indietro a lui. L’app fa due cose: prima, permette al consumatore finale di riavere il loro dollaro extra, e più importante, controlla l’intera tracciabilità e la mostra al cliente. Il consumatore finale viene informato che ha appena recuperato il dollaro extra, e il numero di serie viene ora dichiarato come consumato.

Alla fine, il consumatore finale non può trasferire il token a nessun altro, e la persona che ha appena ricevuto la scatola può vedere sulla loro app mobile che l’intera catena di tracciabilità è stata controllata, e questa è una scatola reale. L’idea è che con questi incentivi finanziari, diventa molto difficile imbrogliare, poiché distribuire i farmaci senza il numero di serie associato diventa impossibile. Alla fine della catena, le persone potrebbero essere povere, ma vogliono comunque assicurarsi di poter controllare se il farmaco è legittimo, specialmente se è per una condizione che mette a rischio la vita. Questo è quello che chiamerei tracciabilità attiva, dove hai un token non fungibile (NFT) con un meccanismo finanziario sovrapposto che dà incentivi a tutti i giocatori per eseguire certe azioni.

Nel caso dell’esempio del farmaco, ogni singolo consumatore finale ha un incentivo finanziario a reclamare il numero di serie. Senza questo incentivo, le persone potrebbero non dichiarare la scatola come consumata, e i farmaci contraffatti potrebbero essere reintrodotti nella rete. Marcando il numero di serie come consumato, non può essere riutilizzato da nessuno. Tuttavia, questo approccio richiede l’allineamento e la partecipazione di tutti i partecipanti, e tutti gli intermediari dovranno giocare questo gioco finanziario. Sebbene questo sia un caso d’uso valido, richiede un’importante coordinazione tra molte parti.

Slide 21

Un’altra possibile applicazione è incentivare il riciclo attraverso i sistemi di rimborso del deposito. Questi sistemi esistono da molto tempo e sono più o meno diffusi a seconda del paese. Il produttore originale è solitamente il partecipante meglio posizionato nella rete per riutilizzare, riciclare o riparare l’attrezzatura spinta lungo la supply chain. Tuttavia, c’è attrito nel mettere in atto questi sistemi, e la sfida è abbassare ulteriormente l’attrito. Blockchain e criptovalute offrono un modo per ridurre la quantità di attrito per i micropagamenti e potenzialmente ridurre l’infrastruttura necessaria per garantire che le operazioni non siano truccate.

Ad esempio, se dovessi dare indietro 20 centesimi ogni volta che le persone riportano indietro una bottiglia di vetro, gli avversari potrebbero potenzialmente truccare il sistema producendo bottiglie contraffatte e incassando sul margine che fanno vendendo le parti recuperate. Le blockchain possono fornire un modo semplice per mitigare alcuni di questi inganni, ma è fondamentalmente qualcosa di natura incrementale. Non sto sostenendo che i sistemi di rimborso del deposito siano nuovi; esistono da molto tempo. Si tratta solo di abbassare un po’ l’attrito in modo che ci possano essere più casi d’uso.

Slide 22

Un altro caso d’uso di interesse è la sicurezza, poiché le supply chain sono vulnerabili ai cyberattacchi. Le supply chain sono distribuite geograficamente per progettazione, il che significa che i sistemi IT e i dispositivi sono sparsi ovunque. Per progettazione, la superficie di attacco è ampia, ed è difficile fare altrimenti. Una supply chain deve essere collegata a clienti, fornitori, partner e fornitori di logistica di terze parti, creando una vasta superficie di attacco. Sebbene l’integrazione di sistema, come l’EDI, possa essere preziosa per ordinare dai fornitori e migliorare i tempi di risposta, un’integrazione più stretta porta anche più problemi di sicurezza.

Un esempio di questa vulnerabilità è l’incidente del Colonial Pipeline, dove un servizio apparentemente minore legato alla fatturazione è stato hackerato, impedendo all’intero oleodotto di funzionare per una settimana e mettendo a rischio le infrastrutture critiche negli Stati Uniti. Come può aiutare la blockchain in questo contesto? Un approccio sarebbe quello di avere una piccola quantità di Bitcoin, del valore di circa $100, in ogni singolo sistema e dispositivo, anche nei dispositivi IoT. Pubblicizzando che tutti i sistemi e i dispositivi hanno questa riserva, crei un incentivo per gli hacker a cercare di penetrare nei tuoi sistemi e rubare i soldi.

Tuttavia, questo non è un furto; è considerato un premio per gli hacker che violano il tuo sistema. Se un hacker riesce a violare, diciamo, un dispositivo IoT, può reclamare la somma di denaro al suo interno. Inoltre, se tornano da te e ti dicono come hanno fatto e come risolvere il problema, potresti pagare una seconda parte del premio, del valore di circa $300 in Bitcoin. Creando un incentivo, finanzi il lavoro degli hacker etici che testano la tua sicurezza. Se solo i cattivi attori hanno un incentivo ad attaccare i tuoi sistemi, scoprirai una violazione con un cattivo attore, che può essere molto brutto, come è successo con il Colonial Pipeline. Tuttavia, se dai un incentivo agli hacker onesti ed etici per entrare nel tuo sistema, allora molto probabilmente le persone che entreranno nel tuo sistema saranno individui onesti che poi ti diranno come correggere il tuo sistema per prevenire problemi. La cosa interessante è che queste riserve sono pubbliche, quindi se le metti nella tua rete, puoi monitorare trasparentemente se sei stato violato o no. Puoi anche monitorare esternamente tutti i dispositivi, anche se il dispositivo IoT non è connesso a Internet. Se vedi che le monete che erano dentro questo dispositivo si muovono, allora significa che in qualche modo questo dispositivo è stato violato in un modo o nell’altro, ed è fondamentale saperlo.

Ricorda che in quelle violazioni di alto profilo che vengono pubblicizzate, di solito quello che succede è che gli attori erano nei sistemi per mesi prima che finalmente decidessero di chiedere il loro riscatto. Utilizzando questo sistema di sicurezza basato su blockchain, crei un meccanismo di allarme precoce. Anche se gli hacker non etici entrano nel sistema, potrebbero semplicemente prendere i soldi e scappare, senza passare attraverso il disordinato processo di riscatto.

Questo è un modo diverso di pensare alla sicurezza e probabilmente non è il caso d’uso a cui stavi pensando per la blockchain nella tua supply chain. Ma come puoi vedere, i casi d’uso interessanti per la supply chain includono sempre una sorta di incentivo monetario, che è molto in stile Bitcoin in termini di pensare a come approcciare la blockchain rispetto ai casi d’uso della supply chain.

Slide 23

Ora, come ho menzionato, le blockchain sono molto difficili da ingegnerizzare rispetto a praticamente qualsiasi soluzione alternativa. Puoi aspettarti che sia almeno due ordini di grandezza più difficile ingegnerizzare una soluzione blockchain. Quindi, ogni volta che pensi di poter affrontare un problema spendendo una settimana del tempo di un ingegnere del software, moltiplica quel numero per 100, e questo ti darà il tipo di sforzo che ci vuole per fare la stessa cosa con la blockchain. Ci sono situazioni in cui ha senso; non è perché è costoso che non può essere redditizio, ma è fondamentalmente difficile, e devi tenerlo in considerazione. I costi sono anche molto più alti quando si tratta di risorse informatiche. Tipicamente, la blockchain è molto difficile da scalare, e rispetto a un setup non-blockchain, finisci per spendere 100 volte più risorse informatiche per qualsiasi cosa tu voglia fare con la blockchain. In alcune situazioni, potrebbe non importarti, ma in molte altre situazioni, un aumento di 100 volte nel tuo costo di hardware informatico è significativo.

La domanda è, come proviamo le alternative? In quasi ogni situazione in cui è coinvolta una blockchain, esiste un’alternativa non-blockchain. Tipicamente, questo si ottiene ammorbidendo i requisiti. In termini di valore aggiunto, se sei disposto a rinunciare alla proprietà di non negabilità che ho descritto all’inizio di questa lezione, puoi nominare un consorzio di qualche tipo. Questo consorzio utilizzerà un database di controllo, pubblicherà log che possono essere verificati da qualsiasi terza parte all’interno del consorzio o potenzialmente da aziende o entità che sono fuori dal consorzio. Uno dei punti critici sarà avere formati binari molto chiaramente specificati in modo che sia possibile per le parti operare in modo programmatico. Con questo in atto, otterrai la maggior parte del valore che altrimenti otterresti da una blockchain.

Un grande esempio di supply chain di questo sarebbe GS1 per i codici a barre. GS1 è un’entità che assegna codici a barre, e lo fanno da decenni. Questa organizzazione è stata creata come entità separata, quindi all’epoca non era direttamente IBM che gestiva i codici a barre. GS1 offre il valore aggiunto di una blockchain senza effettivamente utilizzare una blockchain. Tuttavia, questo approccio richiede un’autorità centrale o un consorzio di cui puoi fidarti. In molte industrie che sono molto concentrate, come la farmaceutica, stabilire un consorzio dove c’è già una quota di mercato significativa potrebbe non essere troppo difficile.

Slide 24

Per concludere, il consenso di Satoshi Nakamoto è una scoperta sorprendente. Nel 2008, se avessi chiesto agli esperti di sistemi distribuiti se fosse possibile risolvere il problema del consenso bizantino senza ricorrere a un’autorità centrale, la maggior parte di loro avrebbe detto di no, perché non sembrava possibile. L’idea era così fuori dal campo di ciò che le persone pensavano fosse possibile che non stavano nemmeno guardando in quella direzione. Da questo punto di vista, è stata una scoperta sorprendente. Come ho presentato con il mini Bitcoin, è un’idea molto semplice che ha usi oltre il denaro, con il denaro che è il caso d’uso principale.

Quello che dobbiamo tenere a mente è che per ogni caso d’uso della blockchain, c’è tipicamente un’alternativa non-blockchain che è molto più semplice da operare. Dobbiamo davvero valutare se il sovraccarico extra associato a una blockchain vale tutto il fastidio che otterrai. Come pensiero conclusivo, non dimenticare mai che una blockchain è fondamentalmente intrecciata con la sua valuta sottostante, e questo genera la madre di tutti i conflitti di interesse.

In una delle mie precedenti lezioni sulla ricerca di mercato avversaria, ho presentato le mie opinioni su come scegliere i fornitori aziendali e ho discusso i problemi relativi alle recensioni. Molti modi intuitivi di affrontare questi problemi sono minati a causa dei conflitti di interesse. Con le blockchain e le criptovalute, il problema è mille volte peggiore. Tutti hanno incentivi massivi se possiedono Bitcoin, Bitcoin Cash, eCash o altre criptovalute. Avranno un pregiudizio significativo a causa dei loro investimenti, e se la tua azienda prende una direzione che è favorevole a una specifica blockchain, potrebbe essere favorevole anche per i loro investimenti.

Non ho una buona soluzione a questo problema, ma consiglio di essere consapevoli e preparati. La maggior parte delle informazioni trovate online sulle criptovalute non è affidabile, poiché molte persone hanno un conflitto di interesse nel promuovere la loro valuta preferita. Non fidarti di nessuno, tranne che dei colleghi di cui ti fideresti con la tua vita. Affidati al tuo giudizio o al giudizio dei colleghi che capiscono cosa sta succedendo. I conflitti di interesse con le blockchain portano a comportamenti inaspettati, soprattutto nella “supply chain”, dove sono tipicamente presenti relazioni di lunga durata e un alto grado di fiducia.

Le organizzazioni che gestiscono grandi “supply chain” potrebbero non essere preparate per il livello di sfiducia presente nello spazio delle criptovalute. Questo conclude la lezione. Diamo un’occhiata alle domande.

Slide 25

Domanda: Blockchain e Bitcoin non sono la stessa cosa; uno è unico mentre l’altro è una tecnologia di base.

Sì, la semantica e la terminologia sono importanti. Sapevo quando stavo facendo questa lezione che ci sarebbero state persone a sottolineare che non sono esattamente la stessa cosa. Tuttavia, se vuoi esaminare una pura blockchain nel senso tecnico, allora un repository Git, come GitHub, è una blockchain. I repository Git esistono da circa 15 anni, e non hanno fatto impazzire il mondo. Non ci sono miliardi di euro e dollari che entrano ed escono da questi repository Git.

Il punto è che la blockchain funziona solo in termini del valore aggiunto che crea. Ciò che differenzia Bitcoin da Git, nonostante entrambi siano blockchain, è che Bitcoin ha incentivi finanziari incorporati che sbloccano certi aspetti della tecnologia. Questo è il trucco. Se rimuovi tutti gli aspetti monetari e gli incentivi che sono ingegnerizzati, allora hai qualcosa che è solo una struttura dati tecnica, ma non ha alcun interesse. Sì, è una bella struttura dati - Git è una bella struttura dati - ma non ha fatto impazzire l’intero mercato, e certamente le persone non impazzirebbero e direbbero: “Oh, questo repository Git vale miliardi”. C’è qualcosa di diverso. Mettendo da parte il puntiglioso sulla terminologia, credo che la ragione principale per cui molte aziende hanno optato per la terminologia della blockchain fosse per introdurre una certa distinzione nel discorso da quelle criptovalute che erano viste come il completo far west.

Domanda: La blockchain è la tecnologia che permette il consenso decentralizzato ma con un costo - ritardo, scalabilità, ecc., e inquinamento.

Assolutamente. Tra l’altro, posso anche affrontare il caso d’uso dell’inquinamento. Il fatto è che ogni volta che hai un processo di emissione di denaro, non importa come viene emesso il denaro - che sia la banca centrale per l’euro, la Fed per il dollaro, o altro - se gli attori economici possono investire per beneficiare di questa emissione di denaro, investiranno fino al costo marginale. Quindi, se la banca centrale stampa 100 e io posso investire 90 per riavere quei 100, lo farò.

Non importa come hai un processo di emissione di denaro, le persone spenderanno fino al costo marginale per eguagliare l’utilità. Si è scoperto che poiché Bitcoin Core è stato inflazionato, le persone sono disposte a pagare molto in termini di elettricità per acquisire quei Bitcoin appena coniati. Tuttavia, il processo sta diminuendo esponenzialmente, il che significa che tra qualche decennio, la quantità di Bitcoin appena coniati si ridurrà quasi a nulla, e quindi l’importo che le persone saranno disposte a pagare per la prova di lavoro sarà quasi nullo. Questo è un problema transitorio, e al momento, è per lo più capacità elettrica inutilizzata che viene utilizzata.

Sono d’accordo con la tua conclusione; ti dà un consenso decentralizzato nella prospettiva del consenso bizantino, e sì, ci sono enormi sovraccarichi associati. Assolutamente, questa è la corretta conclusione.

Domanda: Perché usarlo nell’industria della “supply chain”? Cosa risolve il paradigma decentralizzato? Che problema porta?

Ho fornito vari casi d’uso nella mia lezione. Avere la decentralizzazione ti solleva dalla necessità di ingegnerizzare un consorzio. Il problema è che se hai un’autorità centrale di cui ti fidi e questa autorità centrale è onesta, allora bene - non hai bisogno di una blockchain. Il trucco è, cosa fai quando non l’hai?

Anche le aree che avevano autorità centrali, come ad esempio i trasferimenti bancari per i pagamenti, sono sotto il controllo delle autorità centrali - ci sono guardiani che sono le banche e poi le banche centrali. Non siamo, direi, in carenza di autorità centrali, ma tuttavia, nel 2021, l’incasso di un pagamento con i miei clienti all’estero richiede ancora due settimane. Questo è il 21° secolo; posso inviare un’email, e viene ricevuta entro pochi secondi da quei clienti, ma inviare un bonifico bancario richiede settimane. Quindi, ovviamente, ci sono alcuni problemi che a volte sono molto difficili da risolvere perché forse il problema non è che non hai autorità centrali, ma che hai troppe autorità centrali, o hai problemi complessi dove non riesci a far venire insieme le persone per trovare una soluzione.

Ho descritto alcuni casi d’uso, ad esempio, la tracciabilità attiva, dove operi in un paese povero dove tutti gli intermediari sono corrotti. Questo è un altro problema dove non puoi fidarti di nessuno. Quando hai corruzione epidemica, questi problemi sono molto difficili da affrontare. Questa è una situazione in cui la blockchain decentralizzata può darti un modo per ingegnerizzare l’onestà dei partecipanti. Questo è il trucco: non ci si aspetta che i partecipanti siano onesti; sono ingegnerizzati per rimanere onesti mentre gestiscono la “supply chain”. Se tutti sono già molto onesti e le autorità centrali sono applicate, allora c’è molto poco valore aggiunto.

Domanda: Come affronti l’esistenza di ASIC (Application-Specific Integrated Circuits) hardware specializzato nel mining e fattorie per garantire che nessuno possa facilmente avere il 51% della potenza delle reti?

Storicamente, gli ASIC sono stati una forza positiva per la sicurezza della rete Bitcoin Core. Perché? Perché c’è un altro problema nel panorama moderno: i botnet. I botnet sono enormi flotte di computer compromessi controllati da organizzazioni criminali che prendono letteralmente il controllo di milioni di dispositivi quotidiani come computer, stampanti e telecamere di sicurezza. Queste organizzazioni non vogliono impedirti di usare il tuo dispositivo, poiché ciò porterebbe a riparazioni e alla rimozione del malware.

In termini di sicurezza, il panorama in cui ci troviamo è che le organizzazioni criminali hanno a loro disposizione letteralmente decine di milioni di computer gratuitamente. Queste organizzazioni che operano botnet, se guardi gli aggiornamenti di sicurezza di Microsoft, vedrai che un paio di volte all’anno, Microsoft ha eliminato botnet assolutamente massicci in passato. Comunicavano, diciamo, “Abbiamo passato questo aggiornamento di Windows, e tra l’altro, abbiamo appena eliminato, cancellato questo botnet di 50 milioni di macchine”. Questo è impressionante. Quindi, gli ASIC significano che non ha senso giocare a questo gioco con l’hardware normale come quello nei tuoi computer normali. Quindi, i criminali che operano botnet non possono usare quei botnet per estrarre criptovalute, il che rimuove un angolo per monetizzare quei botnet. Costringe i minatori a essere impegnati nella valuta.

Vedi, gli ASIC non sono un problema; sono, al contrario, il tipo di soluzione che assicura che questa potenza di elaborazione extra non causi danni o sfrutti il tipo di potenza di elaborazione disponibile attraverso i botnet. I botnet sono già un enorme problema per tutti, e non vogliamo ulteriormente potenziare quei botnet.

Domanda: Quali sono i tuoi pensieri sulla Telegram Open Network che non ha potuto vedere la luce a causa dei tribunali statunitensi? Quali sono i tuoi pensieri in generale sulle criptovalute emesse dai messaggeri? Porta qualcosa di nuovo?

Beh, credo che la situazione sia molto prevedibile per Telegram e la stessa cosa per Facebook, e qualsiasi azienda che voglia operare come una società pubblica. Ci sono regolamenti generali che dicono che se sei un’azienda, ci sono requisiti KYC (Know Your Customer), e non entrerò troppo nei dettagli. Fondamentalmente, se sei una grande azienda, puoi aspettarti che in molte giurisdizioni ci saranno requisiti KYC. Non sono qui per discutere se i regolamenti sono adeguati o meno; sto solo dicendo che i regolamenti KYC sono diffusi in molti paesi.

Se torni a cosa rende una blockchain una blockchain, come ho descritto nell’elenco dei requisiti, il punto numero due è che i partecipanti sono anonimi. Quindi, ecco i requisiti KYC. Se vuoi operare una blockchain, devi essere d’accordo nel preservare una sorta di pseudo-anonimato di chiunque partecipi a questa rete, il che significa che in termini di requisiti KYC, sei completamente fuori.

Non ero troppo sicuro di cosa stessero pensando queste aziende, ma non riesco a vedere un’azienda che vuole essere sia pubblica che rispondere alle autorità come la SEC negli Stati Uniti o l’AMF in Francia, pur essendo in grado di impegnarsi in uno schema che ovviamente va completamente contro il tipo di regolamenti KYC che sono molto diffusi per le grandi aziende. La mia opinione è che fondamentalmente stavano probabilmente testando le acque per vedere se forse i regolatori avrebbero allentato i regolamenti solo per loro, solo perché erano grandi. Potrebbe non essere andata per il loro verso, e quindi stanno ritirandosi su questo. Fondamentalmente, a parte questo, credo che, ad esempio, Telegram o Facebook, se accettassero che avrebbero solo promosso una criptovaluta ma non l’avrebbero gestita, potrebbero effettivamente dare un enorme impulso a questa criptovaluta. Tuttavia, il problema è che poiché sarebbero solo promotori, non operatori, avrebbero poco da guadagnare per se stessi, a meno che non abbiano progettato un conflitto di interessi in cui beneficiano della crescita della valuta. A proposito, Elon Musk, ti sto guardando quando inizi a twittare su Bitcoin e sul fatto che la tua azienda ha una posizione su questo. Questo è letteralmente il gioco che può essere giocato: prima acquisisci una quota in una criptovaluta e poi pompi letteralmente questa criptovaluta facendo solo dichiarazioni molto visibili su di essa. Lascia che la valutazione salga e poi, una volta che è più alta, vendila. A proposito, questo processo si chiama pump and dump. Probabilmente Telegram e Facebook hanno capito che l’unico modo in cui avrebbero potuto trarre profitto dal solo promuovere una valuta ma non operarla era il pump and dump, e non volevano che la loro reputazione fosse danneggiata facendo questo tipo di manovre.

Domanda: Sette anni fa, ho visto molte startup portare la tecnologia blockchain nei campi legati alla “supply chain”. Nessuna di loro ha avuto successo, almeno su larga scala. Ne conosci qualcuna che ha avuto successo e ha dimostrato di funzionare su larga scala?

Buona domanda. Voglio dire, prima di tutto, non credo che nessuno abbia, sul pianeta, una blockchain che è dimostrabilmente scalabile e che funziona effettivamente su larga scala. Se guardiamo l’esperimento di Bitcoin Core, non sta andando bene. La rete è completamente saturata; è stata saturata per quattro anni. Questo è davvero l’opposto della scalabilità. Se guardi Bitcoin Cash, quella è un’altra blockchain. Hanno fatto qualche progresso, ma non hanno mai davvero avuto tempo; hanno avuto qualche dissenso interno, e quindi non hanno mai fatto tutti gli ultimi passaggi in termini di ingegneria per farlo funzionare. C’è un’altra, come stavo menzionando, fork appena creata chiamata eCash che è fondamentalmente una fork di Bitcoin Cash, dove stanno di nuovo cercando di fare tutte le cose che non sono state fatte nel client originale di Satoshi perché la maggior parte dei problemi di scalabilità può essere ricondotta al client originale di Satoshi. C’è qualche speranza che possano raggiungere una scalabilità massiva, ma ancora una volta, questa è più una prospettiva teorica. Questo non è provato nel senso che c’è qualcosa che, al giorno d’oggi, funziona a iperscala, anche se abbiamo motivo di credere che sia, in qualche misura, possibile. Ho pubblicato su questo, tra l’altro, se vuoi dare un’occhiata alla mia pubblicazione sui blocchi di dimensioni terabyte per Bitcoin.

Ora, non c’è nessuno che sia riuscito a portare queste sorta di cose su larga scala. È molto difficile. Scalare il livello base è la prima sfida, e poi ovviamente, le startup che vogliono farlo per la “supply chain” vogliono fare qualcosa che è ancora più avanzato. Hanno bisogno di avere il livello base che può scalare, e poi vogliono fare qualcosa che è “supply chain” su larga scala. Credo che nessuna di loro sia riuscita perché, come stavo descrivendo, sì, ci sono casi d’uso per la “supply chain”, e sì, c’è un po’ di spazio per il valore aggiunto, ma prima, devi risolvere quei problemi molto difficili di scalabilità e latenza. Potrebbe non essere andata per il loro verso, e puoi vedere che i documenti che ho citato non sono così vecchi. Voglio dire, i documenti su Avalanche sono letteralmente solo di pochi anni fa. Ci sono stati alcuni progressi che sono ancora abbastanza recenti, e ci vorrà ancora molto tempo. Per scalare, devi fare progressi a livello di algoritmi teorici, il che è molto difficile da portare avanti.

Gli algoritmi che ho descritto, come Avalanche, sono terribilmente difficili da implementare correttamente. Ci sono molti dettagli che puoi sbagliare, e in termini di blockchain, se sbagli qualcosa, significa che sarai violato, assaltato, e perderai soldi. La gravità di avere bug e problemi quando operi nel mondo della blockchain è molto grave. Questo non è come il tuo software aziendale di routine dove se si blocca, puoi riavviare, correggere manualmente i bit di dati che sono stati interessati, e riprendere da lì. Con le blockchain, una volta che hai una corruzione massiva, il danno potrebbe essere permanente, ed è un posto molto difficile in cui operare.

Credo che molte delle startup che sono entrate in questo spazio fossero assolutamente impreparate in termini di mentalità ingegneristica necessaria per affrontare le sfide di operare nel regno della blockchain. Una buona ingegneria non basta; hai bisogno di un’ingegneria davvero grande per avere successo.

Questo conclude la sezione Q&A per questa lezione. La prossima lezione sarà sull’ottimizzazione matematica per la “Supply Chain” e si terrà mercoledì 25 agosto. Prenderò un po’ di tempo libero per le vacanze. Tra l’altro, l’ottimizzazione matematica, a differenza della blockchain, viene utilizzata quotidianamente in molte “supply chain”. Le applicazioni sono enormi, e i casi d’uso sono molto concreti. Non stiamo parlando di casi d’uso di nicchia; le applicazioni sono massicce.

L’ottimizzazione matematica è molto legata all’apprendimento statistico e alla presa delle migliori decisioni sulla “supply chain”. Ci vediamo la prossima volta.