Liquid types para la verificación de smart contracts

Autores
Consoli, Gonzalo
Año de publicación
2025
Idioma
español castellano
Tipo de recurso
tesis de grado
Estado
versión publicada
Colaborador/a o director/a de tesis
Melgratti, Hernán Claudio
Descripción
En este trabajo se desarrolló una herramienta para la verificación de smart contracts escritos en Solidity. La estrategia empleada consiste en traducir el código fuente de Solidity a Haskell, utilizando las instrucciones require y assert como base para generar refinement types, los cuales se interpretan como precondiciones y postcondiciones. Estos tipos refinados se utilizan posteriormente en el proceso de verificación mediante Liquid Haskell. Además, se presentan ejemplos de uso con contratos de Azure y Rosetta, así como adaptaciones específicas para esta herramienta. Finalmente, se incluye una comparación con otras herramientas de verificación existentes, como SMTChecker y Slither.
This work presents a tool for the formal verification of smart contracts written in Solidity. Our approach translates Solidity source code into Haskell, leveraging the require and assert statements to derive refinement types, which naturally encode the contracts’ preconditions and postconditions. These refinement types are then used within the Liquid Haskell framework to perform the verification. We illustrate the tool’s capabilities with examples based on Azure and Rosetta contracts, along with specific adaptations tailored to our framework. Finally, we compare our approach against existing verification tools, including SMTChecker and Slither.
Fil: Consoli, Gonzalo. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
Materia
CONTRATOS INTELIGENTES
SOLIDITY
BLOCKCHAIN
ANALISIS ESTATICO
TIPOS REFINADOS
LIQUID HASKELL
VERIFICACION DE SOFTWARE
SMART CONTRACTS
SOLIDITY
BLOCKCHAIN
STATIC ANALYSIS
REFINEMENT TYPES
LIQUID HASKELL
SOFTWARE VERIFICATION
Nivel de accesibilidad
acceso abierto
Condiciones de uso
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
Repositorio
Biblioteca Digital (UBA-FCEN)
Institución
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
OAI Identificador
seminario:seminario_nCOM000874_Consoli

id BDUBAFCEN_1e8327b505007cbafc6820bf03663bdc
oai_identifier_str seminario:seminario_nCOM000874_Consoli
network_acronym_str BDUBAFCEN
repository_id_str 1896
network_name_str Biblioteca Digital (UBA-FCEN)
spelling Liquid types para la verificación de smart contractsConsoli, GonzaloCONTRATOS INTELIGENTESSOLIDITYBLOCKCHAINANALISIS ESTATICOTIPOS REFINADOSLIQUID HASKELLVERIFICACION DE SOFTWARESMART CONTRACTSSOLIDITYBLOCKCHAINSTATIC ANALYSISREFINEMENT TYPESLIQUID HASKELLSOFTWARE VERIFICATIONEn este trabajo se desarrolló una herramienta para la verificación de smart contracts escritos en Solidity. La estrategia empleada consiste en traducir el código fuente de Solidity a Haskell, utilizando las instrucciones require y assert como base para generar refinement types, los cuales se interpretan como precondiciones y postcondiciones. Estos tipos refinados se utilizan posteriormente en el proceso de verificación mediante Liquid Haskell. Además, se presentan ejemplos de uso con contratos de Azure y Rosetta, así como adaptaciones específicas para esta herramienta. Finalmente, se incluye una comparación con otras herramientas de verificación existentes, como SMTChecker y Slither.This work presents a tool for the formal verification of smart contracts written in Solidity. Our approach translates Solidity source code into Haskell, leveraging the require and assert statements to derive refinement types, which naturally encode the contracts’ preconditions and postconditions. These refinement types are then used within the Liquid Haskell framework to perform the verification. We illustrate the tool’s capabilities with examples based on Azure and Rosetta contracts, along with specific adaptations tailored to our framework. Finally, we compare our approach against existing verification tools, including SMTChecker and Slither.Fil: Consoli, Gonzalo. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesMelgratti, Hernán Claudio2025-09-24info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttps://hdl.handle.net/20.500.12110/seminario_nCOM000874_Consolispainfo:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/arreponame:Biblioteca Digital (UBA-FCEN)instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesinstacron:UBA-FCEN2026-10-01T10:19:46Zseminario:seminario_nCOM000874_ConsoliInstitucionalhttps://digital.bl.fcen.uba.ar/Universidad públicaNo correspondehttps://digital.bl.fcen.uba.ar/cgi-bin/oaiserver.cgiana@bl.fcen.uba.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:18962026-10-01 10:19:48.394Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse
dc.title.none.fl_str_mv Liquid types para la verificación de smart contracts
title Liquid types para la verificación de smart contracts
spellingShingle Liquid types para la verificación de smart contracts
Consoli, Gonzalo
CONTRATOS INTELIGENTES
SOLIDITY
BLOCKCHAIN
ANALISIS ESTATICO
TIPOS REFINADOS
LIQUID HASKELL
VERIFICACION DE SOFTWARE
SMART CONTRACTS
SOLIDITY
BLOCKCHAIN
STATIC ANALYSIS
REFINEMENT TYPES
LIQUID HASKELL
SOFTWARE VERIFICATION
title_short Liquid types para la verificación de smart contracts
title_full Liquid types para la verificación de smart contracts
title_fullStr Liquid types para la verificación de smart contracts
title_full_unstemmed Liquid types para la verificación de smart contracts
title_sort Liquid types para la verificación de smart contracts
dc.creator.none.fl_str_mv Consoli, Gonzalo
author Consoli, Gonzalo
author_facet Consoli, Gonzalo
author_role author
dc.contributor.none.fl_str_mv Melgratti, Hernán Claudio
dc.subject.none.fl_str_mv CONTRATOS INTELIGENTES
SOLIDITY
BLOCKCHAIN
ANALISIS ESTATICO
TIPOS REFINADOS
LIQUID HASKELL
VERIFICACION DE SOFTWARE
SMART CONTRACTS
SOLIDITY
BLOCKCHAIN
STATIC ANALYSIS
REFINEMENT TYPES
LIQUID HASKELL
SOFTWARE VERIFICATION
topic CONTRATOS INTELIGENTES
SOLIDITY
BLOCKCHAIN
ANALISIS ESTATICO
TIPOS REFINADOS
LIQUID HASKELL
VERIFICACION DE SOFTWARE
SMART CONTRACTS
SOLIDITY
BLOCKCHAIN
STATIC ANALYSIS
REFINEMENT TYPES
LIQUID HASKELL
SOFTWARE VERIFICATION
dc.description.none.fl_txt_mv En este trabajo se desarrolló una herramienta para la verificación de smart contracts escritos en Solidity. La estrategia empleada consiste en traducir el código fuente de Solidity a Haskell, utilizando las instrucciones require y assert como base para generar refinement types, los cuales se interpretan como precondiciones y postcondiciones. Estos tipos refinados se utilizan posteriormente en el proceso de verificación mediante Liquid Haskell. Además, se presentan ejemplos de uso con contratos de Azure y Rosetta, así como adaptaciones específicas para esta herramienta. Finalmente, se incluye una comparación con otras herramientas de verificación existentes, como SMTChecker y Slither.
This work presents a tool for the formal verification of smart contracts written in Solidity. Our approach translates Solidity source code into Haskell, leveraging the require and assert statements to derive refinement types, which naturally encode the contracts’ preconditions and postconditions. These refinement types are then used within the Liquid Haskell framework to perform the verification. We illustrate the tool’s capabilities with examples based on Azure and Rosetta contracts, along with specific adaptations tailored to our framework. Finally, we compare our approach against existing verification tools, including SMTChecker and Slither.
Fil: Consoli, Gonzalo. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
description En este trabajo se desarrolló una herramienta para la verificación de smart contracts escritos en Solidity. La estrategia empleada consiste en traducir el código fuente de Solidity a Haskell, utilizando las instrucciones require y assert como base para generar refinement types, los cuales se interpretan como precondiciones y postcondiciones. Estos tipos refinados se utilizan posteriormente en el proceso de verificación mediante Liquid Haskell. Además, se presentan ejemplos de uso con contratos de Azure y Rosetta, así como adaptaciones específicas para esta herramienta. Finalmente, se incluye una comparación con otras herramientas de verificación existentes, como SMTChecker y Slither.
publishDate 2025
dc.date.none.fl_str_mv 2025-09-24
dc.type.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
info:eu-repo/semantics/publishedVersion
http://purl.org/coar/resource_type/c_7a1f
info:ar-repo/semantics/tesisDeGrado
format bachelorThesis
status_str publishedVersion
dc.identifier.none.fl_str_mv https://hdl.handle.net/20.500.12110/seminario_nCOM000874_Consoli
url https://hdl.handle.net/20.500.12110/seminario_nCOM000874_Consoli
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
eu_rights_str_mv openAccess
rights_invalid_str_mv https://creativecommons.org/licenses/by-nc-sa/2.5/ar
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
dc.source.none.fl_str_mv reponame:Biblioteca Digital (UBA-FCEN)
instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron:UBA-FCEN
reponame_str Biblioteca Digital (UBA-FCEN)
collection Biblioteca Digital (UBA-FCEN)
instname_str Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron_str UBA-FCEN
institution UBA-FCEN
repository.name.fl_str_mv Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
repository.mail.fl_str_mv ana@bl.fcen.uba.ar
_version_ 1877857579688787968
score 12.854657