A protocol language for smart contracts

Detalhes bibliográficos
Autor(a) principal: Falcão, Afonso Neves Ribeiro Freire
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