Ensuring the security of smart contracts is essential for their successful execution and reliability. While blockchain technology provides a secure environment, conflicts may arise between security requirements and blockchain characteristics. This thesis tackles this challenge by determining the appropriate placement of security elements whether they should be stored on-chain or off-chain—based on their security requirements and impact on the blockchain structure. Building upon an existing algorithm, this research proposes an enhanced approach that utilizes SecBPMN2BC, a programming modeling language guiding the design of secure business processes for blockchain implementation using smart contracts. By evaluating the security requirements, the novel algorithm optimizes security elements' placement to maximize security while minimizing conflicts. The thesis focuses on the development of two algorithms that enhance smart contract security. Both algorithms address the placement of security elements within smart contracts by using SecBPMN2BC annotations to analyze the security requirements associated with each element, considering factors such as data integrity, availability, etc. The algorithms determine whether an element should reside on-chain or in an off-chain environment. The first is a brute-force algorithm that focuses on exhaustively evaluating the security requirements of each element within a smart contract at a global level. It systematically analyzes security annotations related to each element of the smart contract to determine whether an element should be stored on-chain or off-chain, not excluding any possible case. While this approach may require more computational resources and time, it explores all possible combinations of security considerations for each element. The second algorithm is an optimized algorithm that aims to improve the efficiency and performance of the element placement process. By leveraging optimization strategies, the algorithm identifies the most suitable placement for elements, considering both security requirements and the impact on the blockchain structure. With this approach, the computational overhead is reduced while maintaining a high level of security. This research combines the concepts of security annotations, SecBPMN2BC, and algorithmic analysis to provide a practical framework for the secure placement of smart contract elements. The developed algorithms provide valuable insights and guidance for developers, ensuring that security requirements are effectively met while optimizing the performance and efficiency of smart contract execution.

Garantire la sicurezza dei contratti intelligenti è fondamentale per la loro corretta esecuzione e affidabilità. Sebbene la tecnologia blockchain fornisca un ambiente sicuro, possono sorgere conflitti tra i requisiti di sicurezza e le caratteristiche della blockchain. Questa tesi affronta questa sfida determinando il posizionamento appropriato degli elementi di sicurezza, sia che debbano essere memorizzati sulla blockchain (on-chain) o al di fuori di essa (off-chain), in base ai loro requisiti di sicurezza e all'impatto sulla struttura della blockchain. Sulla base di un algoritmo esistente, questa ricerca propone un approccio migliorato che utilizza SecBPMN2BC, un linguaggio di modellazione di programmazione che guida la progettazione di processi aziendali sicuri per l'implementazione di blockchain mediante contratti intelligenti. Valutando i requisiti di sicurezza, il nuovo algoritmo ottimizza il posizionamento degli elementi di sicurezza al fine di massimizzare la sicurezza e ridurre al minimo i conflitti. La tesi si concentra sullo sviluppo di due algoritmi che migliorano la sicurezza dei contratti intelligenti. Entrambi gli algoritmi affrontano il posizionamento degli elementi di sicurezza all'interno dei contratti intelligenti utilizzando annotazioni di SecBPMN2BC per analizzare i requisiti di sicurezza associati a ciascun elemento, considerando fattori come l'integrità dei dati, la disponibilità, ecc. Gli algoritmi determinano se un elemento deve risiedere sulla blockchain o in un ambiente esterno. Il primo è un algoritmo di forza bruta che si concentra sull'esame esaustivo dei requisiti di sicurezza di ciascun elemento all'interno di un contratto intelligente a livello globale. Analizza sistematicamente le annotazioni di sicurezza relative a ciascun elemento del contratto intelligente per determinare se un elemento deve essere memorizzato sulla blockchain o al di fuori di essa, senza escludere alcun possibile caso. Sebbene questo approccio possa richiedere più risorse computazionali e tempo, esplora tutte le possibili combinazioni di considerazioni di sicurezza per ciascun elemento. Il secondo algoritmo è un algoritmo ottimizzato che mira a migliorare l'efficienza e le prestazioni del processo di posizionamento degli elementi. Sfruttando strategie di ottimizzazione, l'algoritmo individua il posizionamento più adatto per gli elementi, considerando sia i requisiti di sicurezza che l'impatto sulla struttura della blockchain. Con questo approccio, si riduce l'onere computazionale pur mantenendo un alto livello di sicurezza. Questa ricerca combina i concetti di annotazioni di sicurezza, SecBPMN2BC e analisi algoritmica per fornire un quadro pratico per il posizionamento sicuro degli elementi dei contratti intelligenti. Gli algoritmi sviluppati forniscono preziose informazioni e orientamenti per gli sviluppatori, garantendo che i requisiti di sicurezza siano soddisfatti in modo efficace, ottimizzando al contempo le prestazioni e l'efficienza dell'esecuzione dei contratti intelligenti.

Enforcing security requirements in smart contracts: a decision-making framework

PERENZE, TECLA
2022/2023

Abstract

Ensuring the security of smart contracts is essential for their successful execution and reliability. While blockchain technology provides a secure environment, conflicts may arise between security requirements and blockchain characteristics. This thesis tackles this challenge by determining the appropriate placement of security elements whether they should be stored on-chain or off-chain—based on their security requirements and impact on the blockchain structure. Building upon an existing algorithm, this research proposes an enhanced approach that utilizes SecBPMN2BC, a programming modeling language guiding the design of secure business processes for blockchain implementation using smart contracts. By evaluating the security requirements, the novel algorithm optimizes security elements' placement to maximize security while minimizing conflicts. The thesis focuses on the development of two algorithms that enhance smart contract security. Both algorithms address the placement of security elements within smart contracts by using SecBPMN2BC annotations to analyze the security requirements associated with each element, considering factors such as data integrity, availability, etc. The algorithms determine whether an element should reside on-chain or in an off-chain environment. The first is a brute-force algorithm that focuses on exhaustively evaluating the security requirements of each element within a smart contract at a global level. It systematically analyzes security annotations related to each element of the smart contract to determine whether an element should be stored on-chain or off-chain, not excluding any possible case. While this approach may require more computational resources and time, it explores all possible combinations of security considerations for each element. The second algorithm is an optimized algorithm that aims to improve the efficiency and performance of the element placement process. By leveraging optimization strategies, the algorithm identifies the most suitable placement for elements, considering both security requirements and the impact on the blockchain structure. With this approach, the computational overhead is reduced while maintaining a high level of security. This research combines the concepts of security annotations, SecBPMN2BC, and algorithmic analysis to provide a practical framework for the secure placement of smart contract elements. The developed algorithms provide valuable insights and guidance for developers, ensuring that security requirements are effectively met while optimizing the performance and efficiency of smart contract execution.
MERONI, GIOVANNI
ING - Scuola di Ingegneria Industriale e dell'Informazione
18-lug-2023
2022/2023
Garantire la sicurezza dei contratti intelligenti è fondamentale per la loro corretta esecuzione e affidabilità. Sebbene la tecnologia blockchain fornisca un ambiente sicuro, possono sorgere conflitti tra i requisiti di sicurezza e le caratteristiche della blockchain. Questa tesi affronta questa sfida determinando il posizionamento appropriato degli elementi di sicurezza, sia che debbano essere memorizzati sulla blockchain (on-chain) o al di fuori di essa (off-chain), in base ai loro requisiti di sicurezza e all'impatto sulla struttura della blockchain. Sulla base di un algoritmo esistente, questa ricerca propone un approccio migliorato che utilizza SecBPMN2BC, un linguaggio di modellazione di programmazione che guida la progettazione di processi aziendali sicuri per l'implementazione di blockchain mediante contratti intelligenti. Valutando i requisiti di sicurezza, il nuovo algoritmo ottimizza il posizionamento degli elementi di sicurezza al fine di massimizzare la sicurezza e ridurre al minimo i conflitti. La tesi si concentra sullo sviluppo di due algoritmi che migliorano la sicurezza dei contratti intelligenti. Entrambi gli algoritmi affrontano il posizionamento degli elementi di sicurezza all'interno dei contratti intelligenti utilizzando annotazioni di SecBPMN2BC per analizzare i requisiti di sicurezza associati a ciascun elemento, considerando fattori come l'integrità dei dati, la disponibilità, ecc. Gli algoritmi determinano se un elemento deve risiedere sulla blockchain o in un ambiente esterno. Il primo è un algoritmo di forza bruta che si concentra sull'esame esaustivo dei requisiti di sicurezza di ciascun elemento all'interno di un contratto intelligente a livello globale. Analizza sistematicamente le annotazioni di sicurezza relative a ciascun elemento del contratto intelligente per determinare se un elemento deve essere memorizzato sulla blockchain o al di fuori di essa, senza escludere alcun possibile caso. Sebbene questo approccio possa richiedere più risorse computazionali e tempo, esplora tutte le possibili combinazioni di considerazioni di sicurezza per ciascun elemento. Il secondo algoritmo è un algoritmo ottimizzato che mira a migliorare l'efficienza e le prestazioni del processo di posizionamento degli elementi. Sfruttando strategie di ottimizzazione, l'algoritmo individua il posizionamento più adatto per gli elementi, considerando sia i requisiti di sicurezza che l'impatto sulla struttura della blockchain. Con questo approccio, si riduce l'onere computazionale pur mantenendo un alto livello di sicurezza. Questa ricerca combina i concetti di annotazioni di sicurezza, SecBPMN2BC e analisi algoritmica per fornire un quadro pratico per il posizionamento sicuro degli elementi dei contratti intelligenti. Gli algoritmi sviluppati forniscono preziose informazioni e orientamenti per gli sviluppatori, garantendo che i requisiti di sicurezza siano soddisfatti in modo efficace, ottimizzando al contempo le prestazioni e l'efficienza dell'esecuzione dei contratti intelligenti.
File allegati
File Dimensione Formato  
Tesi_Tecla_Perenze_10799880.pdf

accessibile in internet per tutti

Dimensione 939.33 kB
Formato Adobe PDF
939.33 kB Adobe PDF Visualizza/Apri
Executive_Summary_Tecla_10799880.pdf

accessibile in internet per tutti

Dimensione 794.91 kB
Formato Adobe PDF
794.91 kB 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/208630