Titulo Estágio
Validation of Smart Contracts through Automated Tooling
Áreas de especialidade
Engenharia de Software
Local do Estágio
Sede da empresa
Enquadramento
No decorrer dos últimos anos assistiu-se a um crescimento significativo da tecnologia Blockchain que permitiu a criação de inúmeras e bem conhecidas criptomoedas tais como Bitcoin, Ethereum ou Litecoin. Estas são apenas alguns dos exemplos de criptomoedas que têm tido crescimentos acima dos 900% em 2017 sendo cada vez mais faladas e usadas pelo mundo.
A descentralização inerente ao sistema da Blockchain faz com que não exista a necessidade de um intermediário que adiciona geralmente insegurança e custos no processo. Foi desta forma que surgiram smart contracts um dos aspectos mais valiosos da Blockchain. Estes facilitam transações e negociações entre várias entidades sem a necessidade de uma outra entidade central.
Porém, dada a natureza determinística destes contractos inteligentes, estes são susceptíveis a erros de programação. Uma vez fechados e introduzidos na rede nunca mais podem ser alterados. Situações como estas são já comuns. Pequenos bugs existentes em contratos levaram ao bloqueio de 280.000.000$ em ether ou ao roubo de outros 30.000.000$.
É neste sentido que surge uma necessidade crescente no mercado de soluções que permitam automatizar a validação e verificação de smart contracts reduzindo o risco de potenciais bugs.
Objetivo
Neste estágio pretende-se que o estagiário analise a tecnologia actual que se encontra em constante mudança e desenvolva um serviço que vise a validação do smart contract reduzindo o risco de erros através da análise do código fonte.
Esta solução terá de ter em conta diversas vulnerabilidades de segurança actuais. Terá ainda de ser tão simples quanto possível de forma a que o utilizador possa submeter o seu contracto e perceba facilmente onde existem pontos com possíveis falhas.
Tratando-se de uma tecnologia recente e instável, é expectável que surjam informações que obriguem a pequenos ajustes dos objectivos deste estágio no decorrer do tempo.
Durante o processo de desenvolvimento, devem ser adoptadas metodologias ágeis. A análise do estado de arte actual terá de ser feito ao longo de todo o estágio dada a constante evolução desta tecnologia recente com uma forte adopção por todo o mundo.
Plano de Trabalhos - Semestre 1
- Análise das maiores vulnerabilidades até à data
- Análise das ferramentas e serviços actuais no domínio da Blockchain e smart contracts que permitam prevenir ataques e validar contractos
- Proposta de melhorias ou novos processos de validação de smart contracts tendo em vista um conjunto seleccionado de vulnerabilidades
- Proposta de desenvolvimento da aplicação ou serviço
- Escrita do relatório intermédio
Plano de Trabalhos - Semestre 2
- Implementação incremental de melhorias ou novos processos de validação de smart contracts para as vulnerabilidades seleccionadas
- Implementação de um pequeno serviço que execute as novas validações de smart contracts
- Enquadramento da aplicação desenvolvida analisando a evolução da tecnologia durante o período do estágio
- Escrita do relatório final
Condições
A Whitesmith disponibilizará ao estagiário um posto de trabalho nos seus escritórios. Assume-se que o estagiário tem em sua posse o material necessário para a realização do estágio. Caso isto não aconteça, a empresa irá atuar no sentido de suprir as necessidades que existirem.
A Whitesmith será também capaz de fornecer ao estagiário trabalho num ambiente empreendedor e desafiante, característico de uma startup. O estágio será remunerado.
Orientador
João Pedro Gaioso Barbosa
joao@whitesmith.co 📩