Blockchain e a sua utilização no sistema Ethereum

Orientador: Routo Terada

1 - Blockchain

Blockchain é um tipo de banco de dados distribuído no qual a informação fica registrada em uma corrente de blocos (daí o nome block chain). Cada bloco é submetido a uma função de hash cujo resultado o identifica e contém o valor do hash do bloco anterior na cadeia. Os blocos são inalteráveis, de modo que a cadeia guarda um histórico completo de todas as transações efetuadas. O Blockchain existe em uma rede de computadores (chamados nodes) que enviam transações uns para os outros e criam novos blocos a serem adicionados. A grande vantagem deste tipo de banco de dados é permitir transações autenticadas por uma rede de pares de modo supostamente inviolável, sem a necessidade de uma entidade central controladora.

Foi originalmente idealizado por Satoshi Nakamoto durante a criação do Bitcoin para resolver o problema do gasto duplo de criptomoedas, entretanto possuí muitas outras aplicações em potencial.

2 - Ethereum

O Ethereum é uma plataforma de computação distribuída que se utiliza de Blockchain. Foi originalmente proposto por Vitalik Buterin enquanto este estava envolvido com o projeto do Bitcoin. Entretanto como não obteve apoio para implementar sua ideia no Bitcoin, acabou decidindo criar sua própria plataforma.

O Ethereum implementa uma máquina virtual Turing completa (Ethereum Virtual Machine ou EVM) na qual scripts podem ser rodados. Usando uma das linguagens de programação disponíveis, esses scripts são executados de maneira distribuída pelos vários nodes que compoem a rede. O sistema se utiliza de uma criptomoeda chamada Ether tanto para recompensar os nodes pelo tempo de processamento como para efetuar transações monetárias.

Os scripts que rodam no Ethereum são chamados Smart Contracts, que na prática são programas que facilitam a troca de dinheiro, conteúdo, propriedades, ações ou qualquer coisa de valor. Um Smart Contract presente no Ethereum executa automaticamente quando condições específicas são atendidas. Por estar rodando em um sistema de Blockchain, eles funcionam exatamente como programados, sem possibilidade de censura, fraude, queda de sistema ou interferência de terceiros.

3 - Proposta de trabalho

A intenção deste trabalho é estudar o funcionamento do Ethereum e sua utilização do Blockchain para executar os Smart Contracts, analizando-o principalmente do ponto de vista criptográfico. Por ser um sistema que envolve valores, naturalmente irá atrair a atenção de pessoas que tentam burlar o sistema para ganhar dinheiro (o que inclusive já aconteceu, com uma perda estimada em 50 milhões de dólares). O primeiro passo do projeto envolve entender a teoria por trás do Blockchain e estudar o código de implementação do Ethereum. Em seguida identificar os pontos onde técnicas de criptografia são utilizadas para assegurar a integridade do sistema e ver sua evolução ao longo das várias versões do Ethereum a medida que novas vulnerabilidades foram sendo encontradas. Por fim, pretende-se implementar alguns Smart Contracts (se for viável) e testar sua eficiência e segurança.

Monografia

Poster