Aviso: para depositar documentos, por favor, inicia sesión e identifícate con tu cuenta de correo institucional de la UCM con el botón MI CUENTA UCM. No emplees la opción AUTENTICACIÓN CON CONTRASEÑA
 

Especificación de Scilla en Maude

dc.contributor.advisorRiesco Rodríguez, Adrián
dc.contributor.authorFuente Lorenzo, Laura de la
dc.date.accessioned2023-06-16T14:49:15Z
dc.date.available2023-06-16T14:49:15Z
dc.date.issued2021-07-13
dc.descriptionTrabajo de Fin de Máster en Ingeniería Informática, Facultad de Informática UCM, Departamento de Sistemas Informáticos y Computación, Curso 2020-21
dc.description.abstractEste trabajo busca proporcionar una especificación formal al lenguaje de contratos inteligentes Scilla mediante el lenguaje Maude, para así poder ejecutar contratos reales siempre que estén escritos adecuadamente y realizar un análisis para detectar partes de código muerto, es decir, variables que no van a ser usadas en ningún momento. Para llevar a cabo esta implementación, se ha tenido que realizar una transformación previa del archivo de entrada por ciertas limitaciones que tiene Maude, se han creado dos gramáticas: la primera, muy parecida a la sintaxis de Scilla, se utiliza para analizar sintácticamente el archivo de entrada; por su lado, la segunda gramática es más funcional y se utliza para trabajar internamente. Para la descripción de la semántica se ha creado una memoria para poder almacenar las variables con los valores y el nombre, entradas y cuerpo de los procedimientos, funciones y transiciones de Scilla, y distintas reglas de reescritura que permiten actualizar esos datos en la memoria y ejecutar las operaciones. También, el usuario podrá interactuar con el sistema por medio de la entrada/salida, donde puede introducir un contrato válido, indicar si quiere analizarlo o ejecutarlo y en el caso de que se quiera ejecutar, introducir los valores necesarios para ello. También recibirá respuesta por parte del sistema, en el caso del análisis, indicando si el contrato es correcto o si tiene partes que no se usan, mostrando cuáles son y a qué función, transición o procedimiento corresponde y, en el caso de la ejecución, devolviendo el estado de las variables que son globales y además, la información de la transición ejecutada. Por último, se busca también que el análisis sea escalable para no solo analizar contratos escritos en Scilla, sino en cualquier otro lenguaje. Para ello, se ha parametrizado el código, es decir, en vez de poner la sintaxis concreta de las partes que se quieren analizar de Scilla dentro del código que realiza el análisis, se especifica aparte y se pasa como parámetro.
dc.description.abstractThe present project seeks to provide a formal specification to the Scilla smart contract language using the Maude language, in order to be able to execute real contracts, as long as they are properly written, and to perform an analysis in order to detect parts of dead code, specifically variables that are not going to be used at any time. In order to implement it, the input file had to be previously converted due to certain limitations of Maude. Thus, two grammars have been created. On the one hand, the first one, very similar to Scilla syntax, is used to syntactically analyze the input file. On the other hand, the second grammar is more functional and is used to work internally. For the description of the semantics, a memory has been created to save the variables that include the values, the names, the entries and the body of Scilla procedures, functions and transitions, as well as different rewrite-rules that allow updating these data in the memory and implementing the operations. In addition, the users can interact with the system through input/output, where they can enter a valid contract, indicate whether they want to analyze or execute it and, in that case, enter the necessary values for it. The users will also receive a response from the system, in the case of analysis, indicating if the contract is correct or if it has modules that are not used, showing which ones are and to which function, transition or procedure they correspond, and, in the case of execution, returning the status of the variables that are global, as well as the information of the transition executed. Finally, the analysis is also intended to be scalable to not only analyze contracts written in Scilla language, but also in any other language. For this purpose, the code has been parameterized, that is, instead of introducing the specific syntax of the Scilla modules to be analyzed within the code that performs the analysis, it is specified separately and passed as a parameter.
dc.description.departmentDepto. de Sistemas Informáticos y Computación
dc.description.facultyFac. de Informática
dc.description.refereedTRUE
dc.description.statusunpub
dc.eprint.idhttps://eprints.ucm.es/id/eprint/67211
dc.identifier.urihttps://hdl.handle.net/20.500.14352/5125
dc.language.isospa
dc.master.titleMáster en Ingeniería Informática
dc.page.total54
dc.rightsAtribución-NoComercial 3.0 España
dc.rights.accessRightsopen access
dc.rights.urihttps://creativecommons.org/licenses/by-nc/3.0/es/
dc.subject.cdu004(043.3)
dc.subject.keywordMaude
dc.subject.keywordScilla
dc.subject.keywordLógica de reescritura
dc.subject.keywordContratos inteligentes
dc.subject.keywordMetarrepresentación
dc.subject.keywordEspecificación formal.
dc.subject.keywordReewriting logic
dc.subject.keywordSmart contracts
dc.subject.keywordMetarepresentation
dc.subject.keywordFormal specification
dc.subject.ucmInformática (Informática)
dc.subject.unesco1203.17 Informática
dc.titleEspecificación de Scilla en Maude
dc.title.alternativeSpecification of Scilla in Maude
dc.typemaster thesis
dspace.entity.typePublication
relation.isAdvisorOfPublication068dda11-d320-4634-a908-28a4bc4b0eb4
relation.isAdvisorOfPublication.latestForDiscovery068dda11-d320-4634-a908-28a4bc4b0eb4

Download

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Memoria_TFM.pdf
Size:
968.55 KB
Format:
Adobe Portable Document Format