INTRODUÇÃO


A tecnologia blockchain, cujos criadores (ou criador) permanecem desconhecidos por trás do pseudônimo Satoshi Nakamoto, apareceu pela primeira vez em 2008.


Inicialmente desenvolvida para ser o alicerce da moeda digital Bitcoin, essa tecnologia, que pode ser vista como um modelo descentralizado de processamento e registro de transações, despertou o interesse de toda uma comunidade científica, por conta de suas variadas aplicações.


Este trabalho tem como objetivo esclarecer ao leitor como funciona a lógica e a arquitetura da uma blockchain, e porque esta tecnologia está potencialmente relacionada com o futuro.

O que é, afinal, uma blockchain?


Antes de explicarmos de forma técnica como funciona uma BlockChain, é interessante que o leitor se familiarize com a sua lógica. Uma analogia muito interessante, feita por engenheiros do Google, diz o seguinte: “Imagine uma planilha que foi replicada milhares de vezes em uma enorme rede de computadores. Agora imagine que essa rede funciona de forma a atualizar a planilha em intervalos de tempo regulares. Isso, basicamente, é blockchain.”


Essa analogia deixa evidente uma das principais características de uma rede blockchain: Controle público e descentralizado. Por ter cópias exatamente iguais espalhadas entre todos os envolvidos na rede, não existe uma autoridade central responsável pelo controle dos registros.


Outra importante característica da blockchain é a imutabilidade dos dados. Ainda aproveitando a analogia das planilhas, isso quer dizer que uma vez que registros foram inseridos na planilha compartilhada por todos da rede, estes não podem ser alterados ou removidos.


A rede blockchain é atualizada a cada 10 minutos. Quando isso ocorre, um novo “bloco” de registros é inserido, contendo todas as modificações que a rede sofreu nesse último intervalo. Na seção abaixo, aprofundaremos um pouco mais na arquitetura desses blocos de registros.


Arquitetura de blocos


Como diz o próprio nome da tecnologia, a estrutura base de uma blockchain (cadeia de blocos) são blocos ordenados. Esses blocos possuem identificadores únicos, e armazenam informações relativas de transações que ocorreram em dado intervalo. Além do identificador único, os blocos também possuem uma parte destinada a armazenar o identificador do bloco anterior, e uma parte destinada armazenar os dados das transações (em uma blockchain destinada a criptomoedas, esses dados comumente são: remetente, destinatário, valor transferido, etc).


A imagem abaixo, retirada do artigo “Desmistificando BlockChain: Conceitos e Aplicações”, mostra os blocos da forma como foram descritos acima.


Segurança da Blockchain


Para o entendimento do funcionamento dessa cadeia de blocos, serão esclarecidos primeiramente, alguns conceitos básicos utilizados na dinâmica desse serviço.


Função Hash


Como dito na seção anterior, cada bloco um possui um identificador único e um espaço destinado a armazenar o identificador do bloco anterior. Esses identificadores são chamados de hashes. A função hash pode ser definida como um algoritmo que mapeia dados de comprimento variável para dados alfanuméricos de tamanho fixo. É muito utilizada para buscar elementos em base de dados, verificar a integridade de arquivos baixados ou armazenar e transmitir senhas de usuários.


No caso da blockchain, é desenvolvido um código hash para cada bloco de informação armazenado. De forma que cada bloco faça referência ao anterior através dessa chave e, assim, seja formada uma cadeia de blocos interligados. Portanto, se alguma informação é modificada, o código hash será também alterado e provocará disruptura da então formada, cadeia.


A geração do código hash para a tecnologia blockchain não é feito de maneira arbitrária, é necessário que comecem com uma quantidade específica de zeros. Essa especificação, torna a geração de um código válido mais difícil, diminuindo a possibilidade de que seja gerado um outro código igual a esse.


Chaves Assimétricas


Este é um dos conceitos fundamentais da criptografia moderna. Seu funcionamento é bem simples, o algoritmo gera um par de chaves, uma pública e uma privada. Sendo esta última guardada em segredo pelo seu dono.


O objetivo é o algoritmo gerar as chaves de maneira que, caso se use a chave pública para encriptar uma mensagem, apenas o possuidor da chave privada será capaz de desencripta-la. Este é um excelente método para garantir a segurança em um canal público, uma vez que apenas a chave pública é compartilhada entre o emissor e o receptor.

Figura 3.1 - Exemplificação do tráfego de informação utilizando chaves assimétricas



Árvore de Merkle


Dada uma grande quantidade de informações, a árvore de Merkle é uma estrutura que permite a verificação da presença de uma certa informação em um determinado local de maneira simples.


Inicialmente, essa grande quantidade de informações será quebrada em blocos, mantendo-os em ordem, aplica-se uma função de hash a cada um. O próximo passo então, seguindo a ordem original, consiste em concatenar esses hashes dois a dois (três a três dependendo da configuração) e aplicar a função hash a esta concatenação. Teremos então, o nó de uma árvore e os hashes que originam seus filhos. Este procedimento é repetido com todas as partes e depois com os nós gerados pelas partes, sucessivamente, até que se obtenha o nó raiz. Ou seja, é uma árvore construída de baixo para cima.


O motivo principal da utilização desta configuração é que ela permite a utilização da prova de Merkle. Caso um cliente queira verificar uma certa informação que se encontra em uma determinada posição da árvore. Basta que o cliente possua o hash da raiz fornecido por alguma fonte confiável e a parte que está sendo investigada precisará enviar apenas os hashes complementares ao longo do ramo que leva da folha até a raiz.


Na figura abaixo, por exemplo, conseguiríamos provar que o Hash 0-1 está neste lugar sabendo os hash 0-0, 1-0 e 1-1.

Figura 3.2 - Exemplificação da Árvore de Merkle


Mineradores


O blockchain é armazenado de maneira íntegra nos computadores de mineradores, estes são responsáveis por manter e atualizar a base de dados. Como todos possuem as mesmas informações, não é possível que um minerador cometa alguma fraude no sistema.


O trabalho do minerador, portanto, é a geração da chave hash com as especificações indicadas e a manutenção dos dados em seu computador.


Para produzir o código alfanumérico é realizado uma espécie de jogo. Os mineradores recebem um bloco de informações e há uma competição entre eles para gerar um código compatível com as especificações em um prazo de dez minutos. Uma vez gerada, os outros devem validar o hash e assim, o produtor ganha uma bonificação em bitcoin e coloca um novo bloco de informação na base de dados.


O que são Smart Contracts ?



Smart contracts são contratos digitais feitos entre duas entidades, umas das vantagens dele ser digital é que não pode ser perdido ou adulterado e é auto-executável. São usadas Blockchains para criar tais contratos, pois elas garantem eficiência e segurança computacional para os contratos. Na prática, os smart contracts são algoritmos e regras implementadas usando blockchains. Com a criação de smart contracts alguns problemas vieram com ela, como por exemplo, o fato de que não podem guardam muita informação, podem guardar apenas 40 bytes de metadados por transação, o que para algumas aplicações pode ser pouco, como por exemplo stream de vídeo.


Ethereum


Ethereum é um dos maiores projetos relacionados a criptomoedas da atualidade, ela é uma plataforma para criação de smart contracts usando blockchains. Nela é possível criar smart contracts usando uma linguagem de programação na plataforma ethereum, chamada solidity. As transações feitas na plataforma da Ethereum são feitas através da sua criptomoeda, o ether, que serve para financiar novos projetos criados na plataforma. a Ethereum permite que a tecnologia blockchain possa ser usada na criação de vários projetos, através da programação, como casas de apostas, sistemas de crowdfunding e redes sociais.

Referências Bibliográficas


  • Desmistificando BlockChain: Conceitos e Aplicações – 2019 – https://www.researchgate.net/publication/327060805_Desmistificando_Blockchain_Conceitos_e_Aplicacoes – acesso em: 06/05/2019

  • Figura 3.1: Publicação: Criptografia simétrica e assimétrica. Sabe a diferença? - 2010 - https://pplware.sapo.pt/tutoriais/networking/criptografia-simetrica-e-assimetrica-sabe-a-diferenca/ - acesso em: 07/05/2019

  • Figura 3.2: Publicação: O que é a tecnologia Blockchain? - 2019 - http://www.redesavancadas.com.br/tag/bitcoin/ - acesso em 07/05/2019

  • Blockchains: How They Work and Why They’ll Change the World - 2017 - https://spectrum.ieee.org/computing/networks/blockchains-how-they-work-and-why-theyll-change-the-world - acesso em 04/05/2019

  • O que são Smart Contracts? Conceito - 2019 - https://confionacompra.com/o-que-sao-smart-contracts-conceito-e-exemplos/ - acesso em 08/05/2019