The purpose of this thesis is to provide a possible implementation of the domain-specific language Stipula. The purpose of this language is to assist professionals such as lawyers in programming legal contracts. The language is based on a set of programming abstractions that correspond to the distinctive elements that make up a legal contract, namely, permissions, prohibitions, obligations, asset transfer, and openness to external context, and that is likely to be executed on both centralized and distributed systems. The unique characteristics of the language have strongly driven the implementation of a particular architecture, which is a solution obtained from a combination of different approaches present in the current blockchain context. In parallel with the development of a contract execution system, the aim of the project is also to provide secure mechanisms for asset transfer, to ensure that the transferred sum is not altered during the sending and receiving of a transaction, and avoid attacks such as double-spending. The implementation illustrated in this thesis is the first version that provides the general idea of the project, oriented towards the execution in different types of distributed systems, ranging from a simple client-server system to a network of replicated partially trusted nodes. To illustrate the implementation, the thesis fully discusses the case of non-trivial contracts such as the trading of assets and the rent of a bike. The final part of the paper presents the missing functionalities, addresses the current limits of the version presented, possible solutions proposed, and possible future developments of the project are introduced. In particular, for this last point, future developments are understood as evolutions from the point of view of security, usability, computation, and efficiency for the execution of legal contracts in distributed systems.

The purpose of this thesis is to provide a possible implementation of the domain-specific language Stipula. The purpose of this language is to assist professionals such as lawyers in programming legal contracts. The language is based on a set of programming abstractions that correspond to the distinctive elements that make up a legal contract, namely, permissions, prohibitions, obligations, asset transfer, and openness to external context, and that is likely to be executed on both centralized and distributed systems. The unique characteristics of the language have strongly driven the implementation of a particular architecture, which is a solution obtained from a combination of different approaches present in the current blockchain context. In parallel with the development of a contract execution system, the aim of the project is also to provide secure mechanisms for asset transfer, to ensure that the transferred sum is not altered during the sending and receiving of a transaction, and avoid attacks such as double-spending. The implementation illustrated in this thesis is the first version that provides the general idea of the project, oriented towards the execution in different types of distributed systems, ranging from a simple client-server system to a network of replicated partially trusted nodes. To illustrate the implementation, the thesis fully discusses the case of non-trivial contracts such as the trading of assets and the rent of a bike. The final part of the paper presents the missing functionalities, addresses the current limits of the version presented, possible solutions proposed, and possible future developments of the project are introduced. In particular, for this last point, future developments are understood as evolutions from the point of view of security, usability, computation, and efficiency for the execution of legal contracts in distributed systems.

Analysis of the implementation of the Stipula legal calculus using Distributed Ledger Technologies

ZANARDO, FEDERICO
2022/2023

Abstract

The purpose of this thesis is to provide a possible implementation of the domain-specific language Stipula. The purpose of this language is to assist professionals such as lawyers in programming legal contracts. The language is based on a set of programming abstractions that correspond to the distinctive elements that make up a legal contract, namely, permissions, prohibitions, obligations, asset transfer, and openness to external context, and that is likely to be executed on both centralized and distributed systems. The unique characteristics of the language have strongly driven the implementation of a particular architecture, which is a solution obtained from a combination of different approaches present in the current blockchain context. In parallel with the development of a contract execution system, the aim of the project is also to provide secure mechanisms for asset transfer, to ensure that the transferred sum is not altered during the sending and receiving of a transaction, and avoid attacks such as double-spending. The implementation illustrated in this thesis is the first version that provides the general idea of the project, oriented towards the execution in different types of distributed systems, ranging from a simple client-server system to a network of replicated partially trusted nodes. To illustrate the implementation, the thesis fully discusses the case of non-trivial contracts such as the trading of assets and the rent of a bike. The final part of the paper presents the missing functionalities, addresses the current limits of the version presented, possible solutions proposed, and possible future developments of the project are introduced. In particular, for this last point, future developments are understood as evolutions from the point of view of security, usability, computation, and efficiency for the execution of legal contracts in distributed systems.
2022
Analysis of the implementation of the Stipula legal calculus using Distributed Ledger Technologies
The purpose of this thesis is to provide a possible implementation of the domain-specific language Stipula. The purpose of this language is to assist professionals such as lawyers in programming legal contracts. The language is based on a set of programming abstractions that correspond to the distinctive elements that make up a legal contract, namely, permissions, prohibitions, obligations, asset transfer, and openness to external context, and that is likely to be executed on both centralized and distributed systems. The unique characteristics of the language have strongly driven the implementation of a particular architecture, which is a solution obtained from a combination of different approaches present in the current blockchain context. In parallel with the development of a contract execution system, the aim of the project is also to provide secure mechanisms for asset transfer, to ensure that the transferred sum is not altered during the sending and receiving of a transaction, and avoid attacks such as double-spending. The implementation illustrated in this thesis is the first version that provides the general idea of the project, oriented towards the execution in different types of distributed systems, ranging from a simple client-server system to a network of replicated partially trusted nodes. To illustrate the implementation, the thesis fully discusses the case of non-trivial contracts such as the trading of assets and the rent of a bike. The final part of the paper presents the missing functionalities, addresses the current limits of the version presented, possible solutions proposed, and possible future developments of the project are introduced. In particular, for this last point, future developments are understood as evolutions from the point of view of security, usability, computation, and efficiency for the execution of legal contracts in distributed systems.
Smart contract
Legal calculi
DLT
File in questo prodotto:
File Dimensione Formato  
Zanardo_Federico.pdf

accesso aperto

Dimensione 2.24 MB
Formato Adobe PDF
2.24 MB Adobe PDF Visualizza/Apri

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

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