Por Luís Dias
Em qualquer área de trabalho, encontrar o primeiro emprego é sempre algo muito importante e desafiante, principalmente na área tecnológica. É nesta fase de transição, entre o contexto académico e o contexto profissional, que acontecem os vários projetos promovidos pela academia do departamento Labs da agap2IT. Nesta academia, os estagiários realizam formações técnicas em boas práticas de programação e desenvolvem projetos em tecnologias de vanguarda.
O projeto no qual estou inserido tem como objetivo o desenvolvimento de uma aplicação web onde podem ser efetuadas análises a smart contracts, desenvolvidos com a linguagem de programação Solidity. A aplicação vai permitir análises de vulnerabilidades, direcionadas para developers de smart contracts, e análises de investimento, direcionadas a investidores.
A análise de vulnerabilidades consiste em inspecionar o código dum contrato para detetar problemas que podem vir a ocorrer na execução de algum método dos contratos sob análise. A análise de investimento consiste em obter e apresentar aos utilizadores informações relevantes sobre contratos publicados em blockchains, para que a decisão de investir num contrato seja informada e consciente.
Um smart contract é um programa de computador desenvolvido para a ethereum blockchain, ou seja, é uma coleção de código (funções) e dados (estado) que reside num endereço específico da blockchain. Os smart contracts são um tipo de conta ethereum e, por isso, têm um saldo. Estes podem ser alvo de transações mas não podem ser controlados por um utilizador, uma vez que são publicados na rede e executados da forma que foram programados. Os smart contracts definem regras que são aplicadas através do código e cujas interações com estes contratos são irreversíveis.
O setor financeiro apresenta-se como um dos contextos onde os smart contracts são usados, em particular nas finanças descentralizadas (DeFi). A popularidade dos smart contracts tem crescido por serem mais rápidos, transparentes, precisos, seguros e eficientes do que os métodos tradicionais centralizados. No entanto, os smart contracts podem estar sujeitos a vulnerabilidades.
DeFi é um termo coletivo para produtos e serviços financeiros que estão acessíveis a todos os que usam ethereum, isto é, qualquer pessoa com conexão à Internet. Com as DeFi, os mercados estão sempre abertos e não existem autoridades de centralização que podem bloquear pagamentos ou negar acesso.
Por vezes, os developers focam-se mais na funcionalidade e no desempenho do que na segurança dos smart contracts, havendo também pessoas mal-intencionadas que criam smart contracts com problemas para prejudicar quem interage com um dado contrato. A segurança é sempre importante, mas para os smart contracts publicados na blockchain é um aspeto vital. Os bytecodes dos contratos podem ser acedidos por qualquer pessoa e qualquer conta válida pode interagir com um smart contract. Desta forma, a mais pequena vulnerabilidade pode ser descoberta por alguém e pode, eventualmente, ser explorada. Foi com base neste contexto que surgiu a ideia para este projeto.
Este projeto foi bastante desafiante devido à falta de conhecimentos prévios nas tecnologias em causa, nomeadamente a blockchain e smart contracts. No entanto, deu-me a oportunidade de investigar sobre estes temas e perceber a sua importância num mundo cada vez mais tecnológico. Para além disso, contei sempre com a ajuda dos orientadores da academia para o esclarecimento de dúvidas sobre os temas principais do projeto.