The first blockchain, Bitcoin, was born in 2009 as an infrastructure for managing a cryptocurrency, but the possibilities offered by this technology are many more. With the introduction of smart contracts, pieces of code, which run on the blockchain infrastructure inheriting its key features, such as not being subject to any downtime, diddling or third party control, the blockchains became the perfect environment for developing applications with special requirements. Ethereum has been the first blockchain to introduce Touring-complete smart contracts and several businesses benefit from this innovation, from financial services to IoT, from supply chain management to asset management. When the blockchain is used to implement complex business processes, the quality of the stored data becomes critical: data are a valuable asset just if they are qualitative, which means that they fit the specific case, and since they are used to drive the application logic, to take critical decisions and to trigger actions, assessing their quality before storing them is crucial; while this is valid in any applications, it is even more important in the context of blockchains, where the data are permanent and immutable after being stored. While the blockchain technology provides some quality guarantees for the data stored, such as anti-tampering, thanks to the hashes linking blocks, and non-repudiation, thanks to the use of cryptographic signatures, the payload of transactions is not subject to any analysis or approval by the standard consensus protocol and analyzing these data requires implementing data quality controls as specific smart contracts. Writing code to run on the blockchain poses some strict constraints, for example smart contracts implement passive application logic, cannot access any data stored off-chain and every operation costs money, so the purpose of this work is studying how data quality controls can be efficiently implemented to enrich existing code, evaluating the impact they have on both cost and performance. Considering two case studies, this thesis first proposes two smart contracts to perform data quality controls and, after performing a cost-benefits analysis, decides whether it's convenient or not to add those checks.

La prima blockchain, Bitcoin, è nata nel 2009 come un'infrastruttura per la gestione di una criptovaluta, cioè una moneta digitale, ma le possibilità offerte da questa tecnologia sono molto maggiori. Con l'introduzione dei cosiddetti smart contracts, cioè codice che viene eseguito sulla blockchain ereditandone le proprietà principali, come il fatto di non essere soggetta a guasti che causino periodi di inattività, a manomissioni o al controllo da parte di una singola entità, la blockchain è diventata un ambiente ideale per sviluppare applicazioni con specifici requisiti. Ethereum è stata la prima blockchain ad offrire un linguaggio di programmazione Touring equivalente e molti settori hanno ricevuto benefici da questa innovazione: dai servizi finanziari all'ioT, dalla gestione della supply chain a quella dei beni. Quando la blockchain viene usata per implementari complessi processi di business, la qualità dei dati salvati diventa un aspetto critico: i dati sono una risorsa preziosa se sono di qualità, cioè adatti al caso specifico, e dal momento che vengono usati per guidare la logica dell'applicazione, per prendere decisioni critiche e per innescare azioni, valutare la loro qualità prima di immagazzinarli diventa cruciale; nonostante questo sia valido in ogni applicazione, assume un'importanza ancora maggiore nel contesto delle blockchains, dove i dati salvati sono permanenti e immutabili. Nonostante la blockchain offra, per sua stessa natura, alcune garanzie sulla qualità dei dati salvati, come il fatto di non essere manomettibili, grazie agli hashes che uniscono i blocchi, e la non repudiabilità, grazie all'uso di firme crittografate, il payload delle transazioni non è soggetto ad alcun tipo di controllo o approvazione da parte del protocollo di consenso, per cui analizzare questi dati richieste l'implementazione di appositi smart contracts che facciano controlli sulla loro qualità. Scrivere codice da eseguire sulla blockchain è però un'attività molto complessa, soggetta ad alcuni limiti importanti: gli smart contracts implementano solo logica passiva, non possono accedere a dati salvati al di fuori della blockchain e ogni singola operazione ha un costo economico, dunque lo scopo di questo lavoro è studiare come dei controlli di qualità dei dati possano essere implementati in modo efficiente all'interno di applicazioni per la blockchain, valutando l'impatto che hanno su costi e performance. Utilizzando due casi di studio, questa tesi presenta due smart contracts per fare controlli sulla qualità dei dati e, dopo aver fatto un'analisi di costi e benefici, si prefigge di stabilire se sia conveniente o meno implementarli.

Quality-aware transaction validation in blockchains

BONELLI, LORENZO MARIA
2018/2019

Abstract

The first blockchain, Bitcoin, was born in 2009 as an infrastructure for managing a cryptocurrency, but the possibilities offered by this technology are many more. With the introduction of smart contracts, pieces of code, which run on the blockchain infrastructure inheriting its key features, such as not being subject to any downtime, diddling or third party control, the blockchains became the perfect environment for developing applications with special requirements. Ethereum has been the first blockchain to introduce Touring-complete smart contracts and several businesses benefit from this innovation, from financial services to IoT, from supply chain management to asset management. When the blockchain is used to implement complex business processes, the quality of the stored data becomes critical: data are a valuable asset just if they are qualitative, which means that they fit the specific case, and since they are used to drive the application logic, to take critical decisions and to trigger actions, assessing their quality before storing them is crucial; while this is valid in any applications, it is even more important in the context of blockchains, where the data are permanent and immutable after being stored. While the blockchain technology provides some quality guarantees for the data stored, such as anti-tampering, thanks to the hashes linking blocks, and non-repudiation, thanks to the use of cryptographic signatures, the payload of transactions is not subject to any analysis or approval by the standard consensus protocol and analyzing these data requires implementing data quality controls as specific smart contracts. Writing code to run on the blockchain poses some strict constraints, for example smart contracts implement passive application logic, cannot access any data stored off-chain and every operation costs money, so the purpose of this work is studying how data quality controls can be efficiently implemented to enrich existing code, evaluating the impact they have on both cost and performance. Considering two case studies, this thesis first proposes two smart contracts to perform data quality controls and, after performing a cost-benefits analysis, decides whether it's convenient or not to add those checks.
DANIEL, FLORIAN
ING - Scuola di Ingegneria Industriale e dell'Informazione
6-giu-2020
2018/2019
La prima blockchain, Bitcoin, è nata nel 2009 come un'infrastruttura per la gestione di una criptovaluta, cioè una moneta digitale, ma le possibilità offerte da questa tecnologia sono molto maggiori. Con l'introduzione dei cosiddetti smart contracts, cioè codice che viene eseguito sulla blockchain ereditandone le proprietà principali, come il fatto di non essere soggetta a guasti che causino periodi di inattività, a manomissioni o al controllo da parte di una singola entità, la blockchain è diventata un ambiente ideale per sviluppare applicazioni con specifici requisiti. Ethereum è stata la prima blockchain ad offrire un linguaggio di programmazione Touring equivalente e molti settori hanno ricevuto benefici da questa innovazione: dai servizi finanziari all'ioT, dalla gestione della supply chain a quella dei beni. Quando la blockchain viene usata per implementari complessi processi di business, la qualità dei dati salvati diventa un aspetto critico: i dati sono una risorsa preziosa se sono di qualità, cioè adatti al caso specifico, e dal momento che vengono usati per guidare la logica dell'applicazione, per prendere decisioni critiche e per innescare azioni, valutare la loro qualità prima di immagazzinarli diventa cruciale; nonostante questo sia valido in ogni applicazione, assume un'importanza ancora maggiore nel contesto delle blockchains, dove i dati salvati sono permanenti e immutabili. Nonostante la blockchain offra, per sua stessa natura, alcune garanzie sulla qualità dei dati salvati, come il fatto di non essere manomettibili, grazie agli hashes che uniscono i blocchi, e la non repudiabilità, grazie all'uso di firme crittografate, il payload delle transazioni non è soggetto ad alcun tipo di controllo o approvazione da parte del protocollo di consenso, per cui analizzare questi dati richieste l'implementazione di appositi smart contracts che facciano controlli sulla loro qualità. Scrivere codice da eseguire sulla blockchain è però un'attività molto complessa, soggetta ad alcuni limiti importanti: gli smart contracts implementano solo logica passiva, non possono accedere a dati salvati al di fuori della blockchain e ogni singola operazione ha un costo economico, dunque lo scopo di questo lavoro è studiare come dei controlli di qualità dei dati possano essere implementati in modo efficiente all'interno di applicazioni per la blockchain, valutando l'impatto che hanno su costi e performance. Utilizzando due casi di studio, questa tesi presenta due smart contracts per fare controlli sulla qualità dei dati e, dopo aver fatto un'analisi di costi e benefici, si prefigge di stabilire se sia conveniente o meno implementarli.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
Bonelli_Lorenzo_Maria_876070.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 5.87 MB
Formato Adobe PDF
5.87 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/154490