In the last few years, the blockchain technology was surrounded by a growing hype: initially conceived as an infrastructure for cryptocurrencies and digital payments, today it promises to revolutionize every industry. Thanks to smart contracts, pieces of code that run on the nodes of a blockchain network, this technology makes it possible to obtain not only trustworthy storage, but also distributed, trustworthy execution of code. Today, the lack of widely-adopted standards to describe smart contracts makes it difficult to specify their features and interfaces in an abstract way, thus hindering the creation of smart contract registries and jeopardizing their discovery, reuse and composition. Moreover, there are no efficient and flexible tools supporting the process of writing a smart contract, which is a complex and error-prone activity requiring conspicuous knowledge of the functioning mechanisms of the underlying blockchain platform, and also remarkable coding skills in smart-contract-specific languages. Future blockchain applications will require abstractions to enable developers to cope with the intrinsic complexity of this technology, such as the mechanisms offered by Service-Oriented Computing (SOC). This thesis investigates whether smart contracts as implemented by state-of-the-art blockchain technology can be exploited as building blocks of a new service-oriented, trustworthy computing paradigm. Moreover, it proposes a methodology and a tool to support the development of smart contracts, their description and their composition, in order to foster the reuse of widely tested contracts and libraries, thus improving the overall compliance with security and programming best practices and increasing cost effectiveness. More specifically, this research proposes a formal description format and a registry prototype (SolidityRegistry) for Ethereum smart contracts, thus facilitating their discovery and reuse. Furthermore, it introduces a block-based visual programming editor prototype for Ethereum smart contracts (SolidityEditor), thus addressing the lack of tools supporting the development process. Both the prototypes have been tested and assessed through the development of a case study in the insurance field.

Negli ultimi anni la tecnologia blockchain è stata circondata da un crescente entusiasmo: concepita inizialmente come infrastruttura per criptovalute e pagamenti digitali, oggi promette di rivoluzionare ogni settore industriale. Grazie agli smart contract, frammenti di codice che vengono eseguiti sui nodi di una rete blockchain, questa tecnologia rende possibile ottenere non solo un’archiviazione sicura, ma anche un’esecuzione di codice distribuita ed affidabile. Oggi la mancanza di standard ampiamente adottati per la descrizione di smart contract rende difficile specificare le loro funzionalità ed interfacce in maniera astratta, ostacolando la creazione di registry per smart contract e mettendone a rischio visibilità, riuso e composizione. Inoltre, non sono disponibili strumenti efficienti e flessibili che supportino il processo di scrittura di uno smart contract, un’attività complessa e soggetta ad errori, che richiede un’estesa conoscenza dei meccanismi di funzionamento della piattaforma blockchain sottostante, e anche notevoli capacità di scrittura di codice nello specifico linguaggio per smart contract. Le future applicazioni della blockchain richiederanno astrazioni che consentano agli sviluppatori di far fronte all’intrinseca complessità di questa tecnologia, quali, ad esempio, i meccanismi offerti dal Service-Oriented Computing (SOC). Questa tesi studia se gli smart contract, implementati con tecnologia blockchain all’avanguardia, possano essere utilizzati come elementi costitutivi di un nuovo paradigma di elaborazione dei dati sicuro e service-oriented. Inoltre, propone una metodologia e uno strumento per supportare lo sviluppo di smart contract, la loro descrizione e composizione, con l’obiettivo di promuovere il riuso di contratti e librerie ampiamente testati, così da migliorare nel complesso la conformità con le migliori pratiche di sicurezza e programmazione, e aumentare il rapporto costo-efficacia. Più specificamente, questa ricerca propone un formato per la descrizione formale e un prototipo di registry (SolidityRegistry) per smart contract Ethereum, così da facilitare la possibilità di trovarli e riusarli. Inoltre, introduce un prototipo di editor per la programmazione visuale a blocchi di smart contract Ethereum (SolidityEditor), affrontando così il problema della mancanza di strumenti a supporto del processo di sviluppo. Entrambi i prototipi sono stati testati e valutati attraverso lo sviluppo di un caso di studio nel settore assicurativo.

A service-oriented, visual programming approach for the development of blockchain smart contracts

GUIDA, LUCA
2017/2018

Abstract

In the last few years, the blockchain technology was surrounded by a growing hype: initially conceived as an infrastructure for cryptocurrencies and digital payments, today it promises to revolutionize every industry. Thanks to smart contracts, pieces of code that run on the nodes of a blockchain network, this technology makes it possible to obtain not only trustworthy storage, but also distributed, trustworthy execution of code. Today, the lack of widely-adopted standards to describe smart contracts makes it difficult to specify their features and interfaces in an abstract way, thus hindering the creation of smart contract registries and jeopardizing their discovery, reuse and composition. Moreover, there are no efficient and flexible tools supporting the process of writing a smart contract, which is a complex and error-prone activity requiring conspicuous knowledge of the functioning mechanisms of the underlying blockchain platform, and also remarkable coding skills in smart-contract-specific languages. Future blockchain applications will require abstractions to enable developers to cope with the intrinsic complexity of this technology, such as the mechanisms offered by Service-Oriented Computing (SOC). This thesis investigates whether smart contracts as implemented by state-of-the-art blockchain technology can be exploited as building blocks of a new service-oriented, trustworthy computing paradigm. Moreover, it proposes a methodology and a tool to support the development of smart contracts, their description and their composition, in order to foster the reuse of widely tested contracts and libraries, thus improving the overall compliance with security and programming best practices and increasing cost effectiveness. More specifically, this research proposes a formal description format and a registry prototype (SolidityRegistry) for Ethereum smart contracts, thus facilitating their discovery and reuse. Furthermore, it introduces a block-based visual programming editor prototype for Ethereum smart contracts (SolidityEditor), thus addressing the lack of tools supporting the development process. Both the prototypes have been tested and assessed through the development of a case study in the insurance field.
ING - Scuola di Ingegneria Industriale e dell'Informazione
3-ott-2018
2017/2018
Negli ultimi anni la tecnologia blockchain è stata circondata da un crescente entusiasmo: concepita inizialmente come infrastruttura per criptovalute e pagamenti digitali, oggi promette di rivoluzionare ogni settore industriale. Grazie agli smart contract, frammenti di codice che vengono eseguiti sui nodi di una rete blockchain, questa tecnologia rende possibile ottenere non solo un’archiviazione sicura, ma anche un’esecuzione di codice distribuita ed affidabile. Oggi la mancanza di standard ampiamente adottati per la descrizione di smart contract rende difficile specificare le loro funzionalità ed interfacce in maniera astratta, ostacolando la creazione di registry per smart contract e mettendone a rischio visibilità, riuso e composizione. Inoltre, non sono disponibili strumenti efficienti e flessibili che supportino il processo di scrittura di uno smart contract, un’attività complessa e soggetta ad errori, che richiede un’estesa conoscenza dei meccanismi di funzionamento della piattaforma blockchain sottostante, e anche notevoli capacità di scrittura di codice nello specifico linguaggio per smart contract. Le future applicazioni della blockchain richiederanno astrazioni che consentano agli sviluppatori di far fronte all’intrinseca complessità di questa tecnologia, quali, ad esempio, i meccanismi offerti dal Service-Oriented Computing (SOC). Questa tesi studia se gli smart contract, implementati con tecnologia blockchain all’avanguardia, possano essere utilizzati come elementi costitutivi di un nuovo paradigma di elaborazione dei dati sicuro e service-oriented. Inoltre, propone una metodologia e uno strumento per supportare lo sviluppo di smart contract, la loro descrizione e composizione, con l’obiettivo di promuovere il riuso di contratti e librerie ampiamente testati, così da migliorare nel complesso la conformità con le migliori pratiche di sicurezza e programmazione, e aumentare il rapporto costo-efficacia. Più specificamente, questa ricerca propone un formato per la descrizione formale e un prototipo di registry (SolidityRegistry) per smart contract Ethereum, così da facilitare la possibilità di trovarli e riusarli. Inoltre, introduce un prototipo di editor per la programmazione visuale a blocchi di smart contract Ethereum (SolidityEditor), affrontando così il problema della mancanza di strumenti a supporto del processo di sviluppo. Entrambi i prototipi sono stati testati e valutati attraverso lo sviluppo di un caso di studio nel settore assicurativo.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2018_10_Guida.pdf

non accessibile

Descrizione: Tesi completa
Dimensione 11.97 MB
Formato Adobe PDF
11.97 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/142826