Ricerca nel sito web

Blockchain 2.0 - Introduzione a Hyperledger Sawtooth [Parte 12]


Dopo aver discusso in dettaglio il progetto Hyperledger Fabric su questo blog, è ora di passare al prossimo progetto di interesse nel campo Hyperledger. Hyperledger Sawtooth è il contributo di Intel alla missione del consorzio Blockchain per sviluppare registri distribuiti modulari e applicazioni aziendali. Sawtooth è un altro tentativo di creare un registro blockchain facile da implementare per le aziende tenendo presente i limiti delle risorse e i requisiti di sicurezza. Mentre piattaforme come Ethereum offriranno in teoria funzionalità simili se affidate a mani capaci, Sawtooth offre prontamente molta personalizzazione ed è costruito da zero per casi d'uso specifici a livello aziendale.

La pagina del progetto Hyperledger contiene un video introduttivo che descrive in dettaglio l'architettura e la piattaforma Sawtooth. Lo alleghiamo qui per consentire ai lettori di ottenere un rapido riepilogo del prodotto.

Passando alle complessità del progetto Sawtooth, ci sono cinque differenze principali e significative tra Sawtooth e le sue alternative. Da ora in poi il post esplorerà queste differenze e alla fine menzionerà un esempio di caso d'uso reale di Hyperledger Sawtooth nella gestione delle catene di approvvigionamento.

Distinzione 1: L'algoritmo di consenso - PoET

Questo è forse uno dei cambiamenti più notevoli e significativi portati alla ribalta da Sawtooth. Sebbene esplorare tutti i diversi algoritmi di consenso esistenti per le piattaforme blockchain al giorno d'oggi esuli dallo scopo di questo post, ciò che va notato è che Sawtooth utilizza un algoritmo di consenso basato su Proof Of Elapsed Time (POET) . Un tale sistema per la convalida delle transazioni e dei blocchi sulla blockchain è considerato efficiente in termini di risorse a differenza di altri sistemi pesanti di calcolo che utilizzano algoritmi del tipo Proof of work o Proof of stake.

POET è progettato per utilizzare le funzionalità di sicurezza e antimanomissione dei moderni processori con implementazioni di riferimento che utilizzano l'architettura l'ambiente di esecuzione affidabile di Intel (TEE) sulle sue moderne CPU. Il fatto che l'esecuzione del programma di validazione utilizzi un TEE insieme ad un sistema “lotteria” implementato per scegliere il validatore o il nodo soddisfare la richiesta rende il processo di creazione dei blocchi sull'architettura Sawtooth sicuro ed efficiente in termini di risorse allo stesso tempo.

L'algoritmo POET fondamentalmente elegge un validatore in modo casuale sulla base di un processo stocastico. La probabilità che un particolare nodo venga selezionato dipende da una serie di puntatori, uno dei quali dipende dalla quantità di risorse di calcolo che detto nodo ha contribuito al registro finora. Il validatore scelto procede quindi a timestamp di detto blocco di dati e lo condivide con i nodi autorizzati nella rete in modo che rimanga una registrazione affidabile dell'immutabilità della blockchain. Questo metodo di elezione del nodo "convalidatore" è stato sviluppato da Intel e finora ha dimostrato di non presentare distorsioni e/o errori nell'esecuzione della sua funzione.

Distinzione 2: un livello di astrazione completamente separato tra il livello dell'applicazione e il sistema principale

Come accennato, la piattaforma Sawtooth porta la modularità a un livello superiore. Qui nell'implementazione di riferimento condivisa dalla fondazione Hyperledger project, il sistema centrale che consente agli utenti di creare un registro distribuito e l'ambiente runtime dell'applicazione (l'ambiente virtuale in cui le applicazioni sviluppate per essere eseguite sulla blockchain altrimenti nota come contratti intelligenti o chaincode) sono separati da un livello completo di astrazione. Ciò significa essenzialmente che gli sviluppatori possono codificare separatamente le applicazioni in qualsiasi linguaggio di programmazione di loro scelta invece di doversi conformare e seguire linguaggi specifici della piattaforma. La piattaforma Sawtooth fornisce supporto immediato per i seguenti linguaggi contrattuali: Java, Python, C++, Go , JavaScript e Rust. Questa distinzione tra il sistema core e i livelli applicativi si ottiene definendo una famiglia di transazioni personalizzata per ciascuna applicazione sviluppata sulla piattaforma.

Una famiglia di transazioni contiene quanto segue:

  • Un processore di transazioni: fondamentalmente, la logica delle tue applicazioni o la logica aziendale.
  • Modello di dati: un sistema che definisce e gestisce l'archiviazione e l'elaborazione dei dati a livello di sistema.
  • Gestore lato client per gestire il lato utente finale della tua applicazione.

Più famiglie di transazioni di basso livello come questa possono essere definite in una blockchain autorizzata e utilizzate in modo modulare in tutta la rete. Ad esempio, se un consorzio di banche decidesse di implementarlo, potrebbero riunirsi e definire funzionalità o regole comuni per le loro applicazioni e quindi collegare e riprodurre le famiglie di transazioni di cui hanno bisogno nei rispettivi sistemi senza dover sviluppare tutto da soli.

Distinzione 3: SETH

Non c’è dubbio che un futuro blockchain avrebbe sicuramente Ethereum come uno degli attori chiave. Lo sanno bene quelli della fondazione Hyperledger. Il progetto Hyperledger Burrow è infatti pensato per affrontare l'esistenza di entità che lavorano su più piattaforme fornendo agli sviluppatori un modo per utilizzare le specifiche blockchain di Ethereum per creare applicazioni distribuite personalizzate utilizzando EVM (Macchina virtuale Ethereum).

In sostanza, Burrow ti consente di personalizzare e distribuire DApp basate su Ethereum (scritte in solidità) in blockchain non pubbliche (del tipo sviluppato per l'uso presso la fondazione Hyperledger). I progetti Burrow e Sawtooth si sono uniti e hanno creato SETH. Il progetto Sawtooth-Ethereum Integration (SETH) ha lo scopo di aggiungere funzionalità di contratto intelligente Ethereum (solidità) e compatibilità alle reti di contabilità distribuita basate su Sawtooth. Un programma molto meno noto a SETH è il fatto che le applicazioni (DApp) e i contratti intelligenti scritti per EVM possono ora essere facilmente portati su Sawtooth.

Distinzione 4: principio ACIDO e capacità di elaborazione batch

Una caratteristica piuttosto innovativa di Sawtooth è la sua capacità di raggruppare le transazioni e quindi impacchettarle in un blocco. I blocchi e le transazioni saranno comunque soggetti al principio ACID (Atomicità, Cconsistenza, Isolazione e Ddurabilità). Le implicazioni di questi due fatti sono evidenziate utilizzando un esempio come segue.

Supponiamo che tu abbia 6 transazioni da raggruppare in due blocchi (4+2). Il blocco A ha 4 transazioni che devono avere successo individualmente affinché il blocco successivo di 2 transazioni venga contrassegnato con data e ora e convalidato. Supponendo che abbiano successo, viene elaborato il blocco successivo di 2 transazioni e, supponendo che anche loro abbiano successo, l'intero pacchetto di 6 transazioni viene considerato riuscito e la logica aziendale complessiva è considerata corretta. Ad esempio, supponiamo che tu stia vendendo un'auto. Affinché l'operazione possa essere considerata valida, dovranno essere completate diverse transazioni tra l'acquirente (blocco A) e il venditore (blocco B). La proprietà viene trasferita solo se entrambe le parti riescono a portare a termine le rispettive transazioni.

Tale caratteristica migliorerà la responsabilità a livello individuale separando le responsabilità e migliorerà la riconoscibilità delle colpe e degli errori secondo lo stesso principio. Il principio ACID viene implementato codificando per un processore di transazioni personalizzato e definendo una famiglia di transazioni che memorizzerà i dati in detta struttura a blocchi.

Distinzione 5: esecuzione parallela delle transazioni

Le piattaforme blockchain di solito seguono un percorso seriale primo arrivato, primo servito per eseguire le transazioni e seguono un sistema di code per le stesse. Sawtooth fornisce supporto sia per l'esecuzione seriale che parallela delle transazioni. L'elaborazione delle transazioni parallele offre miglioramenti significativi delle prestazioni per transazioni ancora più veloci riducendo le latenze complessive delle transazioni. Transazioni più veloci verranno elaborate insieme a transazioni più lente e più grandi contemporaneamente sulla piattaforma invece di transazioni di tutti i tipi da tenere in attesa.

La metodologia seguita per implementare il paradigma delle transazioni parallele si prende cura in modo efficiente dei problemi di doppia spesa e degli errori dovuti a molteplici modifiche apportate allo stesso stato definendo uno scheduler personalizzato per la rete in grado di identificare i processi e i loro predecessori.

Caso d'uso nel mondo reale: gestione della catena di fornitura utilizzando Sawtooth applicato all'IoT

Il sito web ufficiale di Sawtooth elenca la tracciabilità dei prodotti ittici come caso d'uso di esempio per la piattaforma Sawtooth. Il modello di base è applicabile a quasi tutti i casi d'uso relativi alla catena di fornitura.

Figura 1 Dal sito web ufficiale di Hyperledger Sawtooth

Le tradizionali soluzioni di gestione della catena di fornitura in questo ambito funzionano principalmente attraverso la tenuta manuale dei registri, che lascia spazio a massicce frodi, errori e problemi significativi di controllo della qualità. L’IoT è stato citato come una soluzione per superare tali problemi con le catene di approvvigionamento nell’uso quotidiano. I economici tag RFID abilitati per GPS possono essere attaccati al pescato fresco o ai prodotti a seconda dei casi e possono essere scansionati per l'aggiornamento automaticamente nei singoli centri di lavorazione. Gli acquirenti o gli intermediari possono verificare e/o tenere traccia facilmente delle informazioni utilizzando un client sul proprio dispositivo mobile per conoscere il percorso che ha seguito la cena prima di arrivare nei loro piatti.

Mentre il monitoraggio dei prodotti ittici sembra essere un problema mondiale in paesi come l’India, il cambiamento che un sistema abilitato all’IoT può apportare ai sistemi di consegna pubblici nei paesi in via di sviluppo può essere un cambiamento positivo. L'applicazione è disponibile per la demo a questo link e gli utenti sono incoraggiati a giocherellare con essa e ad adottarla in base alle proprie esigenze.

Riferimento:

  • I documenti ufficiali di Hyperledger Sawtooth

Articoli correlati