Dissertação
Extending the Concert Framework to Verify Solana Programs EVALUATED
Smart Contracts são programas guardados numa blockchain que ajuda o acordo entre dois participantes sem envolvimento de um terceiro confiável. Uma vez que, Smart Contracts contêm enormes quantidades de criptomoedas e não podem ser modificados uma vez enviados para a blockchain é crucial assegurar o seu correto funcionamento e que e estes não possuem bugs nem vulnerabilidades. Solana é uma blockchain recente que possui a funcionalidade de Smart Contracts. Esta blockchain apresenta um crescimento rápido em consequência da sua velocidade e baixa taxa de transação. Nesta tese, adaptamos e estendemos a framework de verificação de Smart Contracts em Coq, ConCert. A nossa extensão permite a escrita de contratos Solana introduzindo ao modelo existente conceitos de Solana. É também possível extrair Smart Contracts escritos em Coq para Rust e, uma vez extraídos, e após pequenas correções estão prontos para ser enviados para a blockchain Solana. O ConCert estendido permite a verificação de contratos Solana existentes e o desenvolvimento de contratos verificados. A framework estendida foi avaliada através da avaliação das provas conseguidas no modelo, avaliando a complexidade dos contratos que a framework conseguiu representar e extrair, o tempo de extração e o overhead obtido na extração. Verificou-se que, devido à expressividade do nosso modelo, contratos complexos não são possíveis representar e, por consequência, não foram verificados nem extraídos. Contudo, contratos mais simples fora representados e extraídos. Desta forma, esta dissertação introduza possibilidade de escrever contratos verificados em Coq e extraí-los para a blockchain Solana.
novembro 25, 2022, 10:30
Publicação
Obra sujeita a Direitos de Autor
Orientação
ORIENTADOR
João Fernando Peixoto Ferreira
Departamento de Engenharia Informática (DEI)
Assistant Professor
ORIENTADOR
Pedro Miguel dos Santos Alves Madeira Adão
Departamento de Engenharia Informática (DEI)
Associate Professor