Developing distributed applications typically requires to integrate new code with legacy third-party services, e.g., e-commerce facilities, maps, etc. These services cannot always be assumed to smoothly collaborate with each other; rather, they live in a “wild” environment where they must compete for resources, and possibly diverge from the expected behaviour if they find it convenient. To overcome these issues, some recent works have proposed to discipline the interaction of mutually distrusting services through behavioural contracts. In the first part of this dissertation, we exploit a theory of timed behavioural contracts to formalise, design and implement a message-oriented middleware in which distributed services can be dynamically composed, and their interaction monitored to detect contract violations. We show that the middleware allows to reduce the complexity of developing distributed applications, by relieving programmers from the need to explicitly deal with the misbehaviour of external services. On the other hand, this middleware introduces a ”single point of trust” in the distributed application. We then explore the possibility that contract-oriented applications safely interact in absence of this trusted entity. To this purpose, the middleware functions are delegated to a network of nodes, that must globally reach a consensus on the decisions to take about the fulfillment of the contracts. We exploit the peer-to-peer network of Bitcoin, a decentralized cryptocurrency introduced in 2009. In particular, we use the Bitcoin blockchain to record tamper-proof execution traces of behavioural contracts, by exploiting the few bytes of metadata that can be carried on standard Bitcoin transactions. Such execution traces form a subchain inside the blockchain. Existing approaches either postulate that subchains are always consistent, or give weak guarantees about their security (for instance, they are susceptible to Sybil attacks). However, there may exist inconsistent subchains which represent incorrect contract executions. Thus, in the second part of this thesis, we propose a consensus protocol, based on Proof-of-Stake, that incentivizes nodes to consistently extend the subchain. Finally, we evaluate the security of our protocol, and we show how to exploit it as a basis for implementing behavioural contracts on Bitcoin.

Behavioural contracts: from centralized to decentralized implementations

PODDA, ALESSANDRO SEBASTIAN
2018-03-06

Abstract

Developing distributed applications typically requires to integrate new code with legacy third-party services, e.g., e-commerce facilities, maps, etc. These services cannot always be assumed to smoothly collaborate with each other; rather, they live in a “wild” environment where they must compete for resources, and possibly diverge from the expected behaviour if they find it convenient. To overcome these issues, some recent works have proposed to discipline the interaction of mutually distrusting services through behavioural contracts. In the first part of this dissertation, we exploit a theory of timed behavioural contracts to formalise, design and implement a message-oriented middleware in which distributed services can be dynamically composed, and their interaction monitored to detect contract violations. We show that the middleware allows to reduce the complexity of developing distributed applications, by relieving programmers from the need to explicitly deal with the misbehaviour of external services. On the other hand, this middleware introduces a ”single point of trust” in the distributed application. We then explore the possibility that contract-oriented applications safely interact in absence of this trusted entity. To this purpose, the middleware functions are delegated to a network of nodes, that must globally reach a consensus on the decisions to take about the fulfillment of the contracts. We exploit the peer-to-peer network of Bitcoin, a decentralized cryptocurrency introduced in 2009. In particular, we use the Bitcoin blockchain to record tamper-proof execution traces of behavioural contracts, by exploiting the few bytes of metadata that can be carried on standard Bitcoin transactions. Such execution traces form a subchain inside the blockchain. Existing approaches either postulate that subchains are always consistent, or give weak guarantees about their security (for instance, they are susceptible to Sybil attacks). However, there may exist inconsistent subchains which represent incorrect contract executions. Thus, in the second part of this thesis, we propose a consensus protocol, based on Proof-of-Stake, that incentivizes nodes to consistently extend the subchain. Finally, we evaluate the security of our protocol, and we show how to exploit it as a basis for implementing behavioural contracts on Bitcoin.
6-mar-2018
File in questo prodotto:
File Dimensione Formato  
Tesi di dottorato_Alessandro Sebastian Podda.pdf

accesso aperto

Descrizione: tesi di dottorato
Dimensione 1.66 MB
Formato Adobe PDF
1.66 MB Adobe PDF Visualizza/Apri

I documenti in IRIS 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/11584/255958
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact