A protocol language for smart contracts
Autor(a) principal: | |
---|---|
Data de Publicação: | 2021 |
Tipo de documento: | Dissertação |
Idioma: | eng |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | http://hdl.handle.net/10451/56093 |
Resumo: | Tese de mestrado, Engenharia Informática (Engenharia de Software), 2021, Universidade de Lisboa, Faculdade de Ciências |
id |
RCAP_973f8ae2f26bbc86d5ea24b2575bd8a9 |
---|---|
oai_identifier_str |
oai:repositorio.ul.pt:10451/56093 |
network_acronym_str |
RCAP |
network_name_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
7160 |
spelling |
A protocol language for smart contractsContratos inteligentesLinguagens de ProgramaçãoEspecificação de protocolosMaquina de estadosTeses de mestrado - 2021Departamento de InformáticaTese de mestrado, Engenharia Informática (Engenharia de Software), 2021, Universidade de Lisboa, Faculdade de CiênciasSmart contracts are immutable automated scripts published on distributed ledgers (such as blockchains) that express a set of procedures to be followed by the participants. These contracts have gained popularity, yet breaches in their reliability and security linger on, with some of these exploits causing losses of millions of USD. Examples of attacks are the DAO and the parity wallet hack. Among the vulnerabilities in smart contracts, we concentrate on faults rooted in out-of-order interactions with contract endpoints. We propose SmartScribble, a protocol language to specify patterns of interaction between users and endpoints, allowing developers to implement correctby-construction contracts. From a protocol description, the compiler generates a smart contract that the programmer should complete with the relevant business logic. SmartScribble’s syntax is heavily inspired in Scribble, even if it covers only a fragment of the latter language and adapts it to fit the blockchain environment. Generated contracts rely on integrated finite state machines to control endpoint invocations by detecting unexpected interactions and ensuring that they have no potentially harmful side effects. As a proof of concept, we target Plutus, a smart contract programming language from the Cardano blockchain. Initial results point to secure contracts that enforce correct interaction patterns and exhibit a decrease of 75% in the size of the code that developers must write. Performance-wise, contracts generated with SmartScribble are on par with to those implemented by experts that also use a state machine.Mordido, Andreia Filipa TorcatoVasconcelos, Vasco ThudichumRepositório da Universidade de LisboaFalcão, Afonso Neves Ribeiro Freire2023-02-01T11:07:14Z202120212021-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/56093TID:202934160enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T17:03:28Zoai:repositorio.ul.pt:10451/56093Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T22:06:39.102621Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse |
dc.title.none.fl_str_mv |
A protocol language for smart contracts |
title |
A protocol language for smart contracts |
spellingShingle |
A protocol language for smart contracts Falcão, Afonso Neves Ribeiro Freire Contratos inteligentes Linguagens de Programação Especificação de protocolos Maquina de estados Teses de mestrado - 2021 Departamento de Informática |
title_short |
A protocol language for smart contracts |
title_full |
A protocol language for smart contracts |
title_fullStr |
A protocol language for smart contracts |
title_full_unstemmed |
A protocol language for smart contracts |
title_sort |
A protocol language for smart contracts |
author |
Falcão, Afonso Neves Ribeiro Freire |
author_facet |
Falcão, Afonso Neves Ribeiro Freire |
author_role |
author |
dc.contributor.none.fl_str_mv |
Mordido, Andreia Filipa Torcato Vasconcelos, Vasco Thudichum Repositório da Universidade de Lisboa |
dc.contributor.author.fl_str_mv |
Falcão, Afonso Neves Ribeiro Freire |
dc.subject.por.fl_str_mv |
Contratos inteligentes Linguagens de Programação Especificação de protocolos Maquina de estados Teses de mestrado - 2021 Departamento de Informática |
topic |
Contratos inteligentes Linguagens de Programação Especificação de protocolos Maquina de estados Teses de mestrado - 2021 Departamento de Informática |
description |
Tese de mestrado, Engenharia Informática (Engenharia de Software), 2021, Universidade de Lisboa, Faculdade de Ciências |
publishDate |
2021 |
dc.date.none.fl_str_mv |
2021 2021 2021-01-01T00:00:00Z 2023-02-01T11:07:14Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/10451/56093 TID:202934160 |
url |
http://hdl.handle.net/10451/56093 |
identifier_str_mv |
TID:202934160 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação instacron:RCAAP |
instname_str |
Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
collection |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository.name.fl_str_mv |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
repository.mail.fl_str_mv |
|
_version_ |
1799134619264614400 |