Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

5
voti

Byzantine Fault Tolerance: la chiave per la blockchain

Oggi vi presento un articolo relativo ad un problema squisitamente informatico ma di recente attualità, la Blockchain. E' stato scritto da Christopher Tozzi, un ricercatore americano noto nel settore, ma che lo affronta in modo divulgativo senza troppi tecnicismi. Ho ritenuto fosse il caso di tradurlo dall'inglese all'italiano perché la tematica è sempre più presente in molti settori, come ad esempio la logistica, la supply-chain ed il mondo fintech.
Talvolta, esagerando, in alcuni mezzi di informazione, convegni e portali specializzati, la blockchain viene spacciata come la soluzione di ogni male. In realtà non è così e le sue applicazioni sono indirizzate ad alcuni casi specifici. Mi è quindi sembrato opportuno tradurre l'articolo per dare un contributo a fare chiarezza sull'argomento.

Blockchain_How_Work.jpg

Blockchain_How_Work.jpg


Indice

Qualche definizione

Prima di iniziare, vi anticipo un paio di definizioni sulla "Byzantine Fault Tolerance".
Quella che mi è sembrata più azzeccata l'ho trovata nella presentazione di un convegno svoltosi all'Università di Udine, dove si legge:
“Byzantine fault-tolerance (BFT), una tecnica per costruire sistemi in grado di continuare a funzionare in modo corretto a dispetto di guasti e attacchi ostili. Un sistema BFT garantisce il proprio corretto funzionamento, anche nel caso in cui una parte delle componenti dovesse deviare in modo arbitrario dal suo corretto funzionamento”.
Wikipedia invece presenta la seguente definizione:
“Il problema dei generali bizantini è un problema informatico su come raggiungere consenso in situazioni in cui è possibile la presenza di errori. Il problema consiste nel trovare un accordo, comunicando solo tramite messaggi, tra componenti diversi nel caso in cui siano presenti informazioni discordanti.“

Byzantine Fault Tolerance: The Key for Blockchains

di Christopher Tozzi
da www.nasdaq.com
Tra aziende che operano in ambito blockchain recentemente si sono visti investimenti di miliardi di dollari, mentre oggi molte aziende comprese nell'elenco “Fortune 500” stanno esplorando applicazioni con registri distribuiti. Ormai, la blockchain è chiaramente sulla strada per l'adozione mainstream, ma per sfruttare al meglio la tecnologia blockchain, è di aiuto avere una comprensione dei concetti che la rendono così potente.
La caratteristica nota come “Tolleranza ai Guasti Bizantini” (BFT, Byzantine Fault Tollerant) è uno di quei concetti che vale la pena comprendere. La capacità di tollerare ciò che gli scienziati informatici chiamano "guasti bizantini" è una parte cruciale della capacità di una blockchain di conservare le transazioni, in modo affidabile, trasparente ed a prova di manomissione.

BlockchainTrain.png

BlockchainTrain.png

Il problema dei generali bizantini

Il termine BFT rappresenta una soluzione al "problema dei generali bizantini", un dilemma logico che i ricercatori Leslie Lamport, Robert Shostak e Marshall Pease descrissero in un articolo accademico pubblicato nel 1982.
Essenzialmente, l'articolo immagina un gruppo di generali bizantini e i loro eserciti che circondano un castello che si preparano ad attaccare. Per avere successo, questi eserciti devono tutti attaccare nello stesso momento. Ma sanno che c'è un traditore in mezzo a loro.
Il problema che affrontano è quello di lanciare un attacco di successo avendo comunque un cattivo attore sconosciuto nel loro sistema.
La metafora descrive un problema che affligge molte reti di computer.
Quando un gruppo sta tentando di prendere una decisione collettiva, c'è il rischio che i traditori all'interno del gruppo possano inviare messaggi misti sulle loro preferenze.
I traditori potrebbero dire ad alcuni membri del gruppo che desiderano fare una cosa e dire agli altri membri del gruppo il contrario. Ciò può causare problemi alla capacità del gruppo di coordinare efficacemente le sue azioni.
Se alcuni membri del gruppo sono portati a credere in una cosa e gli altri credono in qualcosa di diverso, i membri del gruppo non riusciranno ad agire all'unisono.
La coesione e l'efficacia del gruppo saranno poi abbattute, esattamente come i traditori desidererebbero.


Lo_Byzantine-Generals-Problem.jpg

Lo_Byzantine-Generals-Problem.jpg

Metafora digitale

Forse ti starai chiedendo cosa c'entri tutto questo con i computer.
In qualsiasi ambiente di elaborazione distribuito, ovvero in un ambiente in cui più utenti, applicazioni, server o altri tipi di nodi compongono l'ambiente, c'è il rischio che delinquenti o attori inaffidabili possano corrompere il sistema.
Un cluster di server non funzionerà correttamente se alcuni server all'interno non riescono a passare i dati in modo coerente agli altri server. Una rete di computer non funzionerà se i dispositivi che ne fanno parte non concordano su un protocollo di rete comune da utilizzare durante lo scambio di informazioni.
Per essere affidabile, un ambiente di calcolo distribuito deve essere progettato in modo tale da risolvere il problema dei generali bizantini fornendo ciò che è noto come BFT.
Probabilmente da nessuna parte è più essenziale BFT che su una blockchain. La maggior parte degli ambienti di elaborazione distribuita tradizionali, infatti, dispone di database o autorità di configurazione centrali che possono aiutare a correggere errori nel caso in cui si verifichino guasti bizantini.
Ma su una blockchain, per definizione, non c'è nessuna autorità centrale!!
La capacità delle blockchain di legittimare le transazioni sulla base del solo consenso della comunità è ciò che le rende così potenti. Questa forte dipendenza dal consenso della comunità rende anche la fragilità bizantina una sfida particolarmente importante.
Se alcuni membri della comunità inviano informazioni incoerenti agli altri sulle transazioni, l'affidabilità della blockchain decade e non c'è nessuna autorità che possa intervenire per correggerla.
Quindi, a meno che tu non possa riporre la fiducia assoluta in tutti coloro che partecipano alla tua blockchain (cosa che non puoi fare, nella maggior parte delle situazioni), hai bisogno di un modo per proteggerti dagli errori bizantini che potrebbero verificarsi nel caso in cui alcuni membri distribuiscano dati errati, fuorvianti o informazioni corrotte sulle transazioni.

Byzantine_fault_tolerance

Byzantine_fault_tolerance

Soluzioni potenziali

Non esiste una soluzione singola o ufficiale per la tolleranza ai guasti bizantini all'interno dei sistemi blockchain.
Molti dei sistemi di blockchain più influenti che siano emersi finora, incluso Bitcoin, si sono basati su un concetto chiamato proof of work (PoW).
In questo modello, chiunque desideri aggiungere dati alla blockchain deve eseguire un'attività intensiva di lavoro utilizzando le informazioni precedentemente inserite della blockchain per aggiungere nuove informazioni.
Nel caso di Bitcoin, il PoW (*) viene prodotto utilizzando un algoritmo di hashing che, per sua natura, richiede una buona quantità di tempo per essere svolto.

(* si tratta di un numero a 256 bit, normalmente rappresentato con una stringa di 64 cifre esadecimali,ndt).

In un sistema PoW, i dati non possono essere aggiunti alla blockchain senza un investimento di tempo significativo da parte di chi li vuole aggiungere. Ciò fornisce una protezione pratica contro la manipolazione della blockchain perché, al fine di minare il consenso del gruppo, una parte malintenzionata avrebbe bisogno di investire una grande quantità di tempo producendo PoW sufficienti per esercitare un'influenza significativa sulla blockchain stessa.
Su una blockchain sufficientemente grande, il requisito PoW fornisce effettivamente resistenza ai guasti bizantini (BFT). Questo approccio ha anche un problema: richiede il dispendio di una grande quantità di sforzi computazionali (** Questo si traduce in un consumo di energia elettrica, ndt).

Una soluzione alternativa - e che non richiede operazioni di elaborazione intensiva - si basa sul fare affidamento sui voti dei nodi e sul consenso della maggioranza per sradicare i guasti. Il rovescio della medaglia di questa strategia è che fornisce protezione contro gli errori bizantini solo fino a quando una grande maggioranza di nodi sulla blockchain continuerà ad agire legittimamente.
Il consenso sulle transazioni legittime potrebbe diventare poco chiaro nel caso in cui il numero di nodi "traditori" inizia ad avvicinarsi al cinquanta per cento.

Lo_Bitcoin_Process_Work.png

Lo_Bitcoin_Process_Work.png

Perché è importante

Le complessità della BFT possono sembrare qualcosa a cui solo gli informatici o i designers di valute digitali dovrebbero preoccuparsi. In una certa misura, è così. Una volta implementata una blockchain ben progettata, gli utenti finali non dovrebbero pensare agli errori bizantini.
Tuttavia, dato che la tecnologia blockchain in molti luoghi è ancora nelle fasi di progettazione e pianificazione, la comprensione delle questioni BFT è importante per le persone che vogliono applicare la blockchain come nuova soluzione in aree al di là delle valute digitali.
L'approccio di Bitcoin al problema degli errori bizantini potrebbe non essere pratico per altri tipi di applicazioni blockchain.
Ad esempio, richiedere agli operatori sanitari di impiegare grandi quantità di risorse informatiche per elaborare la PoW sarebbe molto inefficiente. In settori come l'assistenza sanitaria, potrebbe essere più logico affidarsi al voto dei nodi. Poiché i partecipanti a una blockchain nel settore sanitario hanno maggiori probabilità di essere altruisti e operare sotto identità reali rispetto agli utenti di un sistema altamente anonimo e non regolamentato come Bitcoin, i benefici di evitare la PoW possono superare i rischi associati al voto del nodo come soluzione ai guasti bizantini.
La BFT è una parte cruciale di una blockchain efficiente e ci sono molti modi in cui può essere implementata. Decidere quale approccio adottare richiede di valutare la natura e le priorità della comunità associata alla blockchain che un'organizzazione vuole costruire.Le soluzioni a BFT che hanno reso possibili sistemi come Bitcoin potrebbero non funzionare bene nelle applicazioni blockchain del futuro.



Link Articolo Originale

https://www.nasdaq.com/article/byzantine-fault-tolerance-the-key-for-blockchains-cm810058


Altri Link

"Blockchain | Il problema dei generali bizantini rivoluziona l’economia" su Antifragile.it
https://blogantifragile.com/blockchain-problema-generali-bizantini/

Note

  • L'algoritmo di hashing che usa Bitcoin per generare la Prova di Lavoro (PoW) è lo stesso che utilizza la "chiavetta" che hanno imprese e professionisti italiani per la firma digitale; nel gergo l'algoritmo si chiama SHA256.
  • Le immagini sono liberamente prese da internet.
1

Commenti e note

Inserisci un commento

di ,

Questa dei guasti bizantini mi mancava proprio........Non si finisce mai d'imparare!!!!

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.