Você está na página 1de 55

UNIVERSIDADE DO SUL DE SANTA CATARINA

CARLOS ROBERTO ARTHUR JUNIOR


IGOR CAPELLA DE AZEVEDO

HYPERLEDGER:
DESCENTRALIZANDO INFORMAÇÕES DE MANEIRA SEGURA COM
BLOCKCHAIN

Florianópolis
2019
CARLOS ROBERTO ARTHUR JUNIOR
IGOR CAPELLA DE AZEVEDO

HYPERLEDGER:
DESCENTRALIZANDO INFORMAÇÕES DE MANEIRA SEGURA COM
BLOCKCHAIN

Trabalho de Conclusão de Curso apresentado


ao Curso de Sistemas de Informação da
Universidade do Sul de Santa Catarina como
requisito parcial à obtenção do título de
Bacharel.

Orientador: Prof. Aran Bey Tcholakian Morales, Dr.

Florianópolis
2019
CARLOS ROBERTO ARTHUR JUNIOR
IGOR CAPELLA DE AZEVEDO

HYPERLEDGER:
DESCENTRALIZANDO INFORMAÇÕES DE MANEIRA SEGURA COM
BLOCKCHAIN

Este Trabalho de Conclusão de Curso foi


julgado adequado à obtenção do título de
Bacharel e aprovado em sua forma final pelo
Curso de Sistemas de Informação da
Universidade do Sul de Santa Catarina.

Florianópolis, 12 de junho de 2019.

______________________________________________________
Professor e orientador Prof. Aran Bey Tcholakian Morales, Dr.
Universidade do Sul de Santa Catarina

______________________________________________________
Prof. Daniella Vieira, Ms.
Universidade do Sul de Santa Catarina

______________________________________________________
Prof. Maria Inés Castiñeira, Dra.
Universidade do Sul de Santa Catarina
Dedicamos este trabalho, a todas as pessoas que
buscam o novo e não se contentam com o
normal. Dedicamos também a todos os
professores, mestres e doutores, especialmente
a nossos familiares e amigos que nos apoiaram
durante esta fase.
AGRADECIMENTOS

Carlos Roberto Arthur Junior agradece a:


Inicialmente, gostaria de agradecer, Igor Capella de Azevedo, grande amigo que
tive o prazer de ter ao lado durante a elaboração deste trabalho.
Gostaria de agradecer também a, Paula Bressan Garcia, grande incentivadora e
esposa amada, que se desdobrou em esforços para me ajudar durante esse período de minha
vida. Obrigado pela força, apoio e por ouvir minhas lamentações.
Agradeço a todos os professores que muito contribuíram com a minha trajetória
acadêmica, especialmente ao Dr. Aran Bey Tcholakian Morales e a Dra. Maria Inés Castiñeira,
responsáveis pela orientação do nosso projeto. Obrigado por esclarecerem tantas dúvidas e
serem tão atenciosos e pacientes.
Agradeço а Deus e a Nossa Senhora Aparecida, pois sem eles eu não teria forças
para essa longa jornada.
Igor Capella de Azevedo agradece a:
Antes de tudo, agradeço a Deus pelas oportunidades que colocou em meu caminho
e a força que me deu para chegar até aqui.
Agradeço ao meu amigo Carlos Roberto Arthur Junior, com quem tive o prazer de
realizar este trabalho.
Agradeço aos meus pais, Débora Capella de Azevedo e Jorge Adriano dos Santos,
por todo apoio, e por me incentivarem a sempre continuar no caminho dos meus sonhos.
Agradeço a todos os meus familiares e amigos, que de alguma forma, contribuíram
para que eu chegasse onde estou.
Agradeço ao nosso orientador, Dr. Aran Bey Tcholakian Morales por todo apoio e
a positividade no tema proposto deste trabalho.
Agradeço a Dra. Maria Inés Castiñeira, por todo apoio, pelas aulas e revisões deste
trabalho.
Agradeço aos demais professores do curso de Sistemas de Informação da Unisul,
por compartilharem seu tempo e experiências conosco.
“Eu gosto do impossível porque lá a concorrência é menor.” (Walt Disney "Walt
Disney's Disneyland", Martin A. Sklar - Walt Disney Productions, 1965).
RESUMO

Blockchain é um tema que tem sido muito abordado por profissionais de diversas áreas, este
trabalho busca mostrar os principais motivos dessa proposta, que agrega muita segurança e tem
diversas aplicações. Essa tecnologia ganhou notoriedade ao servir como base para transações
de criptomoedas, e com a difusão de seus recursos, cada vez mais suas aplicações aumentam, e
tem sido utilizado em múltiplas plataformas, desde redes de supply chain, passando pelo
sistema financeiro e chegando até o setor de saúde. A tecnologia tem potencial para diminuir
burocracia, substituir cartórios e descentralizar transações, substituindo órgãos responsáveis por
autenticar e gerar documentos, por uma rede de computadores distribuídos pelo mundo que
validam esses dados com segurança e garantem a auditabilidade das transações. A força da
utilização da tecnologia blockchain se dá por ele ser uma rede compartilhada, que possui vários
servidores com as mesmas informações processando transações, em síntese, se trata de uma
lista encadeada que utiliza o resumo do bloco como identificador, dentro desse resumo estão os
dados da transação e o resumo do bloco anterior, fazendo com que a lista seja imutável, pois se
por um acaso seja violada a informação de um bloco, ele nunca será capaz de completar a lista,
sendo descartado pelo restante dos participantes por não fazer parte do consenso. Para utilizar
todos os recursos de uma rede blockchain este trabalho apresenta uma ferramenta: o
Hyperledger, uma plataforma criada pela IBM e cedida para a Linux Foundation, sendo mantida
pela comunidade open source, totalmente baseada em blockchain, com a intenção de facilitar o
desenvolvimento de smart contracts, a ferramenta abstrai e simplifica a implementação
entregando uma API-REST com todos os endpoints necessários para realizar as transações,
dentro de uma rede de computadores espalhados pelo mundo. O material a seguir abstrai o
processo de implementação de um sistema pra falar de maneira relevante sobre a tecnologia
Blockchain, o caso de uso apresentado neste trabalho foi simplificado para demonstrar de uma
maneira compreensível e direta o funcionamento do Blockchain.

Palavras-chave: Blockchain, Hyperledger e Smart Contracts.


LISTA DE ILUSTRAÇÕES

Figura 1 – Exemplo simplificado do encadeamento dos blocos .............................................. 25


Figura 2 – Ilustração do bloco gênesis ..................................................................................... 26
Figura 3 – Ilustração do processo de armazenamento de um bloco ......................................... 26
Figura 4 – Exemplo de autenticação e assinatura de transações .............................................. 27
Figura 5 – Exemplo simplificado da mineração de um bloco .................................................. 28
Figura 6 – Funcionamento simplificado da proposta de protótipo ........................................... 36
Figura 7 – Ferramentas utilizadas para desenvolvimento do projeto ....................................... 37
Figura 8 – Funcionamento simplificado da proposta de protótipo ........................................... 41
Figura 9 – Demonstração das máquinas virtuais rodando no terminal..................................... 43
Figura 10 – Chaincode utilizado como exemplo durante o desenvolvimento do projeto ........ 43
Figura 11 – Captura de tela do software Insomnia, cadastrando uma transação. ..................... 45
Figura 12 – Captura de tela do terminal do sistema, mostrando o log das operações .............. 45
Figura 13 – Exemplo da busca de transações realizada através da ferramenta Insomnia ........ 46
Figura 14 – Exemplo de funcionamento de uma API-REST ................................................... 46
SUMÁRIO

1 INTRODUÇÃO .............................................................................................................. 11
1.1 EXPOSIÇÃO DO TEMA E DO PROBLEMA ............................................................... 12
1.2 OBJETIVOS .................................................................................................................... 13
1.2.1 Objetivo geral .............................................................................................................. 13
1.2.2 Objetivos específicos ................................................................................................... 13
1.3 JUSTIFICATIVA ............................................................................................................ 14
1.4 ESTRUTURA DA MONOGRAFIA ............................................................................... 14
2 REVISÃO BIBLIOGRÁFICA ..................................................................................... 16
2.1 BLOCKCHAIN (CADEIA DE BLOCOS) ....................................................................... 16
2.1.1 Identidade .................................................................................................................... 17
2.1.2 Segurança de dados ..................................................................................................... 17
2.1.3 Auditoria ...................................................................................................................... 20
2.1.4 Interoperabilidade ....................................................................................................... 20
2.1.5 Oportunidades ............................................................................................................. 20
2.1.6 Limitações .................................................................................................................... 21
2.2 SEGURANÇA E PRIVACIDADE.................................................................................. 21
2.3 CRIPTOMOEDAS .......................................................................................................... 22
2.3.1 Sociedade e sistema financeiro ................................................................................... 23
2.3.2 Bitcoin ........................................................................................................................... 23
2.3.3 Ethereum ...................................................................................................................... 24
2.4 SMART CONTRACTS ................................................................................................... 24
2.5 BLOCKCHAIN: UMA VISÃO GERAL SOBRE SEU FUNCIONAMENTO ............... 24
2.6 CONSIDERAÇÕES FINAIS SOBRE O CAPÍTULO .................................................... 31
3 METODOLOGIA .......................................................................................................... 32
3.1 METODOLOGIA DA PESQUISA ................................................................................. 32
3.2 METODOLOGIA DO TRABALHO .............................................................................. 33
3.3 DELIMITAÇÕES ............................................................................................................ 33
4 MODELAGEM DA APLICAÇÃO .............................................................................. 34
4.1 ANÁLISE DE REQUISITOS .......................................................................................... 34
4.1.1 Requisitos Funcionais ................................................................................................. 34
4.1.2 Requisitos Não Funcionais.......................................................................................... 35
4.2 FUNCIONAMENTO DO SISTEMA .............................................................................. 35
5 DESENVOLVIMENTO DO APLICATIVO EM BLOCKCHAIN ............................ 37
5.1 FERRAMENTAS UTILIZADAS ................................................................................... 37
5.1.1 Visual Studio Code ...................................................................................................... 38
5.1.2 Hyperledger Composer ............................................................................................... 38
5.1.3 Hyperledger Fabric ..................................................................................................... 39
5.1.4 NodeJS .......................................................................................................................... 39
5.1.5 Docker .......................................................................................................................... 40
5.2 HISTÓRICO DO DESENVOLVIMENTO ..................................................................... 40
5.2.1 Funcionamento e Serviços Esperados ....................................................................... 42
5.3 IMPLEMENTAÇÃO DA ARQUITETURA ................................................................... 42
5.4 ESTRUTURA DO SMART CONTRACT ...................................................................... 43
5.5 COMUNICAÇÃO ENTRE SISTEMAS EXTERNOS E O BLOCKCHAIN
HYPERLEDGER FABRIC ...................................................................................................... 44
5.6 AVALIAÇÃO DA ARQUITETURA.............................................................................. 46
6 CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS ...................................... 47
6.1 CONSIDERAÇÕES FINAIS........................................................................................... 48
6.2 TRABALHOS FUTUROS .............................................................................................. 49
7 REFERÊNCIAS ............................................................................................................... 51
11

1 INTRODUÇÃO

O mundo tem constantemente se transformado, isso pode ser percebido com os


avanços tecnológicos dos últimos anos que estão o levando para a quarta revolução industrial.
Entre os avanços tecnológicos, tem-se destacado o blockchain, um conceito que ganhou força
em 2008 e que está sendo impulsionado por grandes indústrias tecnológicas, como por exemplo,
a IBM (International Business Machines). O Blockchain, conhecido como o protocolo da
confiança, ou até mesmo seu nome, na língua portuguesa, cadeia de dados, vem chamando
muita atenção por garantir a imutabilidade da informação, sendo assim, os dados nunca poderão
ser alterados (CONTARDI, 2018).
Diversos setores da economia focam suas atenções na grande questão da era digital:
armazenamento de dados de forma segura. Atualmente equipes que gerenciam a segurança da
informação utilizam diversas medidas para evitar fraudes e o padrão blockchain vem de
encontro com essa necessidade para garantir nativamente proteção contra alterações de
informação, proporcionado a centralização das informações, descentralização do
armazenamento, transparência e auditabilidade. Características que tem a capacidade de
proporcionar benefício para a sociedade, possibilitando projetos em áreas como saúde,
educação, transportes, alimentos e meio ambiente (TAPSCOTT, 2016).
O conceito de blockchain ou cadeia de dados, nada mais é do que um sistema de
consenso distribuído, transparente e verificável. A tecnologia mudou a maneira de como as
pessoas pensam sobre trocar dinheiro, ações, produtos, serviços, o cumprimento de contratos e
o compartilhamento de dados (PEREIRA, 2018).
As criptomoedas alcançaram uma visibilidade tão grande que serviram como
referência e isso gerou um grande interesse pelas tecnologias que dão suporte para o
funcionamento das mesmas. A principal criptomoeda responsável pela fama do blockchain foi
o bitcoin, a primeira do mercado e a mais famosa até hoje. Bitcoin é uma aplicação baseada no
conceito de blockchain, com isso é garantido que todas as transações sejam seguras, pois o
consenso compartilhado dos milhares de nós, que são representados por computadores
“minerando”, que na verdade estão realizando o processamento das transações, faz com que
todos validem as informações e, dependendo do algoritmo do consenso, ela é validada. No caso
do Bitcoin, se 50% mais 1 dos nós aprovarem a transação, ela será realizada (PEREIRA, 2018).
12

1.1 EXPOSIÇÃO DO TEMA E DO PROBLEMA

Segundo (TAPSCOTT, 2016), essa nova maneira de lidar com o armazenamento


de dados e de transações financeiras tem a capacidade de ser programada para guardar
virtualmente praticamente qualquer coisa que tenha valor e relevância para a humanidade, como
escrituras, certidões, diploma, registros médicos, dados contábeis, registros de votos, dados que
possibilitem a rastreabilidade de produtos alimentícios, entre as diversas coisas que podem ser
expressadas através de código computacional.
O armazenamento das informações é normalmente centralizado em um único banco
de dados. Além disso, conta também com um único órgão central pra realizar o processamento
de uma transação. Consideravelmente, essa situação é normal, mas possui um risco, este risco
se deve a algum acontecimento nesta unidade de processamento que impactará em todas as
atividades por causa desse costume de centralização (PEREIRA, 2018).
É possível perceber que, na maior parte do mundo, as empresas trabalham de forma
centralizada, empresas utilizam documentos Word e Excel que passam de mão e mão, o que
pode ocasionar diversas divergências e muitas dores de cabeça, quando se necessita de
informações precisas. Hoje as pessoas dependem de um cartório para autenticar seus
documentos, ou seja, um órgão centralizado, somente neste local, pode-se tirar um xerox do
documento original para que eles coloquem um selo que comprova que esse documento é legal
(PEREIRA, 2018).
Os bancos, em que depositamos dinheiro, são centralizados, o dinheiro fica somente
em um lugar, no sentido de que, somente aquele banco conseguirá realizar transferência e
somente ele poderá liberar-lo, desta forma, somente ele processa sua transação se estiver tudo
certo, ou seja, o banco realiza uma tomada de decisão centralizada. Os bancos não estão livres
da falha conhecida como double spending, uma transação no qual um único token é utilizado
mais de uma vez (PEREIRA, 2018). Portanto, como exemplo:

Suponha que um bandido tenha apenas 7.000 reais em seu nome. Digamos que ele
enviou 7.000 e 6.500 reais para dois de seus amigos. Essa transação não aconteceria
normalmente, mas, ao manipular o token digital, o trapaceiro pode, de fato, fazer isso
acontecer. Sim, esse é um tipo de fraude que ocorre no sistema bancário atual.
(PEREIRA, 2018).

A centralização está sendo cada vez mais atingida pelo conceito de blockchain, pois
ele garante segurança, empresas correm risco ao usar o modelo atual para banco de dados, por
exemplo, se não possuir políticas de backup, a empresa pode vir a falir devido à adulteração ou
13

a uma limpeza da base. O blockchain serve para essas situações, um nó que possui as
informações não pode ser apagado e caso ele seja desconectado ou adulterado, os outros nós
irão lidar com isso e manter a disponibilidade do sistema, pois ele não é centralizado, se possui
nós com o banco de dados intacto, são eles quem mandam na decisão, ou seja, o sistema
continua em pé como se nada tivesse acontecido (PROOF, 2018).
Depender de um único lugar para tomada de decisão é um risco muito alto.
Empresas estão buscando o blockchain para essa solução. Os documentos pessoais, como RG,
CPF, CNH e certidão de nascimento, ficam cada um em um único lugar, isso é muito
complicado para o mundo atual, somente esses lugares apresentam a integridade das
informações. Atualmente, é fácil falsificar documentos e utilizá-los de forma ilegal, pois é
difícil validá-los (BETHA, 2018).
A centralização faz com que os usuários desistam de sua privacidade para as
empresas que controlam seus dados. Nas empresas que possuem baixa segurança da
informação, há grandes possibilidades de invasões de segurança por ser vulnerável o seu
sistema, violando, assim, a privacidade das pessoas e dando margem para invasores mal-
intencionados utilizarem as informações ilegalmente (PEDRO, 2018).

1.2 OBJETIVOS

Com base no tema problema da pesquisa, apresentam-se na sequência, os objetivos


do trabalho de conclusão de curso a serem alcançados.

1.2.1 Objetivo geral

Apresentar a tecnologia blockchain e como ela pode ser utilizada para resolver os
principais problemas de confiabilidade em transações digitais.

1.2.2 Objetivos específicos

§ Conceituar o que é Blockchain.


§ Apresentar porque a descentralização é importante.
§ Descrever porque a tecnologia blockchain pode substituir os cartórios ou demais
órgãos centralizados que validem documentos.
§ Apresentar uma aplicação baseada em blockchain que possa validar documentos.
14

§ Desenvolver uma aplicação que demonstre o funcionamento de um Smart


Contract.

1.3 JUSTIFICATIVA

Este trabalho visa ser útil para que as pessoas entendam a importância do
blockchain. Com a descentralização, principalmente dos dados pessoais, pode-se, com ajuda
desta tecnologia, controlar os dados, pois os usuários passariam a dar permissão para uma
entidade consultar, assim, não existirá a necessidade de armazenar dados pessoais em outras
aplicações e sim, consultar os dados na rede blockchain (PEDRO, 2018).
Este trabalho se justifica em apresentar à sociedade algo novo, atualizado e
disruptivo, visando diminuir a burocracia com a utilização de tecnologia. Analisando tendências
mundiais é possível observar que a dependência de papel (documentos físicos) e de órgãos
centrais, estão se tornando obsoletos e o blockchain surge como alternativa, para resolver essas
e muitas outras questões, ou seja, permitindo validar documentos, transações e autenticações,
diminuindo a necessidade de cartórios físicos, uma vez que a plataforma oferece segurança,
auditabilidade e transparência, pois os dados na rede blockchain são imutáveis (PEREIRA,
2018).

1.4 ESTRUTURA DA MONOGRAFIA

Este trabalho será organizado como descrito a seguir.


No capítulo um, foi abordado o tema e problemas, os objetivos gerais e específicos
e a justificativa do trabalho.
No capítulo dois, será apresentada uma revisão da literatura sobre os seguintes
assuntos: blockchain, smart contracts, criptomoedas, redes blockchain que permitem ser
utilizadas para aplicações, projetos open source para criação de rede blockchain, frameworks
de blockchain.
No capítulo três, será apresentada a metodologia de pesquisa sobre o tema foco do
trabalho que são os assuntos: montando uma rede blockchain, criação de smart contracts,
definições de permissões, manutenção da rede blockchain.
No capítulo quatro, será apresentada a modelagem, abrangendo os assuntos:
blockchain, estrutura da rede blockchain, criação dos smart contracts, análise de consenso da
rede.
15

No capítulo cinco, é apresentado o protótipo e resultados do trabalho que envolve


um sistema de documentos seguro e descentralizado com o qual podemos garantir a integridade
devido ao consenso compartilhado, que valida se o documento é original ou foi alterado.
No capítulo seis, são apresentadas as conclusões e os trabalhos futuros do trabalho
de conclusão de curso.
16

2 REVISÃO BIBLIOGRÁFICA

Este capítulo apresenta a revisão da literatura a respeito do blockchain, como


funciona e sua forte segurança e confiabilidade. É constituída a fundamentação teórica para o
desenvolvimento da proposta a qual este trabalho tem por objetivo.

2.1 BLOCKCHAIN (CADEIA DE BLOCOS)

O blockchain foi um conceito que começou a ser utilizado visivelmente pelo mundo
na aplicação financeira do Bitcoin, onde a imutabilidade e a confiança na rede vêm dos registros
que são realizados no livro razão, podendo chamar livro contábil no caso do bitcoin. A rede é
espalhada pelo mundo, possui o compartilhamento e distribuição deste livro contábil pelos
computadores que a formam e encadeiam as transações que são realizadas onde são salvas as
informações e o tempo atual do registro (UDACITY, 2018).
A imutabilidade e segurança do blockchain se dá por tratar-se de um banco de dados
em que as informações não podem ser alteradas sem comprometer todo o sistema. É possível
auditar as transações, o blockchain permite isso, pois uma de suas vantagens é a transparência
que se pode ter (UDACITY, 2018).
O blockchain é uma rede distribuída em que podemos realizar transações sem
depender de intermediários, ou seja, as validações de uma transação são feitas pela rede de
acordo com o consenso compartilhado que ela possui, pois esses computadores denominados
nós são os responsáveis por reconhecer essas transações, para que se tornem válidas e não
utilizam outras instituição. Como exemplo, o uso de cartão de crédito, onde a transação passa
pela operadora da máquina para validar a operação, após, envia para bandeira realizar uma outra
validação e só, depois, o banco recebe esta informação para validar também, além de ter mais
de um intermediário, são essas organizações em que se percebe como é a “burocracia” de um
banco de dados centralizado (PROOF, 2017).
Uma situação interessante para explicar blockchain, é o Google Docs como
exemplo, há muito tempo, usa-se o Microsoft Word, com o qual um documento não podia ser
editado ao mesmo tempo por mais de uma pessoa. Nas empresas, usa-se muito o Excel na parte
de finanças, e era sempre necessário esperar uma pessoa editar para a outra fazer as
modificações que se quisesse. O Google Docs veio para resolver esses problemas de
compartilhamento de conteúdo e com a sua plataforma, é possível que todos visualizem os
dados, as alterações, inclusões e exclusões tudo simultaneamente, pois todos estão com uma
17

versão única e legítima do documento, ou seja, o documento é distribuído e compartilhado, o


Blockchain funciona da mesma forma (PEREIRA, 2018).
Em outras palavras, um banco de dados inviolável distribuído que protege todos os
registros que são adicionados a ele, onde quer que existam, cada registro contém um timestamp1
e links seguros para o registro anterior (BRODERSEN et al., 2016, tradução nossa).

2.1.1 Identidade

Com a preocupação em criar uma identidade que tenha base, o blockchain é uma
particularidade na era da internet, embora existam esforços imperfeitos para gerar essa
identidade no mundo físico, carteiras de identidade, números da previdência ou até um
passaporte, não existem sistemas equivalentes para garantir a autenticação online dos nossos
dados pessoais ou criar uma identidade de entidades digitais global (BLOCKCHAIN &
INFRASTRUCTURE, 2016, tradução nossa).
Explorando soluções para essa problemática, encontra-se no blockchain caminhos
que possibilitam a criação de identidades únicas e protegidas. Os blockchains possuem um par
de chaves criptografadas, que são a chave pública e a chave privada, necessárias para associar
qualquer atividade de um membro participante da rede. Esse procedimento de identidade única
pode fornecer a base para um ID unificado entre usuários e provedores (EY, 2016, tradução
nossa).

2.1.2 Segurança de dados

Modelos convencionais de segurança de dados dependem da criação de “barreiras”


cada vez mais fortes e adicionando vários fatores à autenticação para acesso, que normalmente
dependem do mesmo conceito fundamental: uma vez que você entra no sistema, você pode
acessar a todos os dados (BLOCKCHAIN & INFRASTRUCTURE, 2016, tradução nossa).

_______________________
1
Timestamp - Representa um registro digital do tempo de ocorrência de um determinado evento.
18

Com blockchain, existe o potencial para diminuir drasticamente esse problema,


tornando o custo de qualquer violação ou combinação de violações muito menor se combinado
com métodos de criptografia fortes e provas de conhecimento zero, um método muito mais
seguro de armazenamento e acesso a dados que podem ser estabelecidos, capaz de validar um
processo sem a necessidade de conhecer o conteúdo do mesmo, melhorando a capacidade dos
gerentes de dados para proteger informações críticas (BLOCKCHAIN & INFRASTRUCTURE,
2016, tradução nossa).
A utilização de termos técnicos é inevitável para explicar o funcionamento do
blockchain, e com base na Cartilha de Segurança para internet (CERT.BR, 2016), será
apresentado a seguir um resumo e uma pequena introdução sobre o assunto.
Conforme o CERT.BR (2016), hash, também conhecida como função resumo, tem
como objetivo garantir a integridade da informação onde for aplicada. Em outras palavras, sua
função é garantir que a informação não foi alterada, várias funções hash são frequentemente
utilizadas em tecnologia da informação.
Uma função hash produz um resultado chamado digest, os algoritmos mais
conhecidos são: MD-5, SHA-1, SHA-256 (CERT.BR, 2016).
São particularidades relevantes de uma função de hash: operar de maneira
unidirecional, exigir um espaço fixo de armazenamento (normalmente 128 ou 256 bits), não
importando o tamanho da informação de entrada, seu cálculo deve ser executado com relativa
facilidade, evitar colisões de hash para informações diferentes, mudar drasticamente o valor se
ocorrer uma pequena mudança na mensagem (CERT.BR, 2016).
Segundo o CERT.BR (2016), a criptografia é a ciência de transformar uma
mensagem legível em forma cifrada e vice-versa. A criptografia é utilizada desde a antiguidade
quando militares precisavam trocar informações em segurança até os dias atuais na
comunicação pela Internet.
A criptografia de chave simétrica utiliza uma mesma chave para codificar e
decodificar a mensagem. A segurança é comprometida, quando a chave precisa ser enviada ao
destinatário da mensagem. Além disso, cada comunicação entre par de envolvidos diferentes
precisa utilizar chaves diferentes (CERT.BR, 2016).
A criptografia de chaves assimétricas, usa chaves com características diferentes e
permite um uso mais flexível para atender diferentes requisitos de segurança da comunicação.
As chaves são assimétricas porque existe uma pública - que é de conhecimento público - e uma
privada – que é de conhecimento apenas do dono da chave. A codificação é realizada com uma
chave e a decodificação com a outra (CERT.BR, 2016).
19

Se a codificação ocorrer com a chave pública do destinatário da mensagem, será


possível garantir que apenas o destinatário conseguirá ler o conteúdo codificado, já que apenas
ele possui a chave privada. Essa forma de uso da criptografia assimétrica garante a
confidencialidade da mensagem, evitando que alguém que não pertença a transação (man-in-
the-middle) possa interceptar a comunicação para, possivelmente, fraudá-la (CERT.BR, 2016).
Por outro lado, se a codificação for realizada, utilizando a chave privada do emissor,
significa que qualquer pessoa poderá ler a mensagem decodificando-a com sua chave pública,
mas que é garantido que quem gerou a mensagem foi realmente o emissor pois, apenas ele
possui a chave privada. Essa forma de uso da criptografia assimétrica garante a autenticidade
da mensagem, ou seja, a identidade do emissor da mensagem, e que a mensagem não foi
alterada. Também é possível garantir o não-repúdio, ou seja, garantir que o emissor não negue
que foi ele quem enviou a mensagem (CERT.BR, 2016).
Exemplos de algoritmos que usam criptografia assimétrica são RSA e ECDSA. São
algoritmos que exigem maior poder computacional do que os de chave privada (SULLIVAN,
2014).
Sistemas híbridos combinam o uso de várias técnicas para aumentar a segurança e
a ainda manter o desempenho onde são aplicados. É o caso do protocolo SSL, usado
maciçamente na navegação Web (SULLIVAN, 2014).
Na assinatura digital, o emissor envia a mensagem original e uma codificação da
função hash da mensagem original, utilizando sua chave privada. Isso permite garantir a
autenticidade e não-repúdio, conforme já discutido e ainda não precisar de muito poder
computacional para realizar a codificação e decodificação, uma vez que o hash possui tamanho
pequeno (SULLIVAN, 2014).
O blockchain enxerga, como uma de suas principais preocupações, a necessidade
dos dados serem mantidos de maneira segura (BLOCKCHAIN & INFRASTRUCTURE, 2016,
tradução nossa).
Qualquer transação introduzida em um blockchain é registrada e criptografada,
gerando obstáculos que visam a aumentar a segurança e dificultar os processos de falsificação
das mesmas, assim que o bloco de dados é armazenado em um nó não existe o risco de perda
(LI, 2017, tradução nossa).
Com a preocupação de gerar um elevado grau de propriedade pessoal, com controle
de dados, estruturada e de uma maneira que busque benefícios para a sociedade baseado na
agregação de dados (BLOCKCHAIN & INFRASTRUCTURE, 2016, tradução nossa).
20

2.1.3 Auditoria

O protocolo derivado do blockchain viabiliza a transparência e segurança de todas


as transações por ser aberto (disponível para quem quiser observar o processo) e também de sua
arquitetura composta por protocolos de validação de blocos e transações, utilizando chaves
assimétricas e também “proof of work” (prova de trabalho) (NAKAMOTO, 2008).
A trilha de auditoria existente nas cadeias de blocos são um dos recursos mais
valiosos do blockchain, transações na rede são agrupadas em blocos para serem processadas
em lote podendo incluir qualquer tipo de dado e, com o passar do tempo, os blocos formam
uma cadeira cronológica, cada novo bloco obrigatoriamente faz referência a informações que
estão no bloco anterior, todos os participantes da rede podem manter um histórico completo das
transações do bloco (EY, 2016, tradução nossa).

2.1.4 Interoperabilidade

Segundo Lallana (2008, tradução nossa), interoperabilidade é definida como a


capacidade de um ou mais sistemas trocarem informações entre si, permitindo trabalhar de
maneira conjunta mesmo que se tenha diferentes bases de dados, a fim de auxiliar na tomada
de decisões, integrando as mais diversas áreas.
O termo “Interoperabilidade” indica a criação de processos eficientes que
diminuam a redundância de dados entre diversos sistemas de informação (REALINI, 2004).

2.1.5 Oportunidades

Segundo Crosby (2016), blockchain tem potencial para transformar o mundo


digital, possibilitando transações que estejam envolvidas na cadeia de blocos, possam ser
analisadas a qualquer momento e ainda manter a privacidade das informações de quem está
realizando a transação.
A questão da interoperabilidade de dados é levantada por Brodersen et al. (2016,
tradução nossa), que sustentam a tese de que o blockchain tem potencial para lidar os desafios
atuais relacionados ao tema, já que a cadeia de blocos lida com os paradigmas de TI que
envolvem a privacidade e a segurança e ainda garante auditoria robusta e melhorando a
segurança para provedores de dados.
21

2.1.6 Limitações

Blockchain é uma tecnologia que apresenta algumas restrições na questão da


escalabilidade, principalmente quando é relacionado o volume de transações com o poder
computacional disponível (NAKAMOTO, 2008).
Quando o blockchain é utilizado em modo público, possibilita um acesso amplo e
demonstra um poder computacional maior, utilizando a rede, de forma que, blockchains em
modo público encaram restrições no volume das transações, já blockchains que trabalham no
modo privado encaram um poder de computacional menor devido à quantidade reduzida ou
limitada de usuários na rede (CROSBY et al., 2016, tradução nossa).
A padronização e escopo de dados também gera preocupações relacionadas ao
tamanho das informações armazenadas nas cadeias de blocos, transações que necessitem o
envio de dados um tanto quanto grandes podem afetar o desempenho do blockchain, ao
desenvolver uma rede blockchain deve se alinhar quais os dados, formatos e tamanho da
informação que devem ser enviados, a fim de padronizar os dados que devem ser armazenados
(NAKAMOTO, 2008).
Consumo computacional elevado relacionado aos custos operacionais derivados
dessa nova tecnologia, para processar transações com grande volume por meio da rede, é
extremamente necessária a realização de testes para dimensionar e personalizar a rede e
entender os custos de um blockchain (CROSBY et al., 2016, tradução nossa).

2.2 SEGURANÇA E PRIVACIDADE

Utilizando o modelo Blockchain do bitcoin como referência sobre o assunto de


segurança e privacidade, cada usuário possui uma identificação assim como as transações
também, e sem essa identificação é impossível saber quem está atrás daquele processo, e claro
impossível também de se participar da rede. O blockchain dá transparência do processo mesmo
que a transação seja registada em todos os nós da rede que qualquer um pode ver, ao mesmo
tempo consegue se ter privacidade, já que há uma necessidade de se possuir os dados de
identificação da transação das partes envolvidas do processo (PROOF, 2017).
A cada transação que passa a existir, elas se agrupam dentro de blocos (pelo qual
se originou o nome blockchain). Os blocos se formam somente quando são respeitadas algumas
regras, como tamanho máximo das transações que cada bloco pode comportar, e, claro, somente
transações que já foram verificadas como válidas, garantindo que não são guardadas
22

informações que não condizem com a realidade da rede. As transações que passam a existir
esperam para ser adicionadas em algum bloco, ficam numa estrutura denominada pool até serem
validadas (PROOF, 2017).
As transações, após serem validadas, são incluídas no próximo bloco, formando o
registro na blockchain de acordo com seu hash. Para as transações serem validadas passam por
um processo chamado proof-of-work, que é quando um nó resolve o problema e encontra a
resposta, com isso, é validada de acordo com as cópias espalhadas das transações na rede
(UDACITY, 2018).
Não se pode dizer que o blockchain é a prova de fraudes, pois, nenhum sistema
pode ou deve garantir uma segurança 100%, mas, o blockchain é o mais próximo disso, uma
vez trata os dados de maneira imutável contido nos blocos. É possível perceber que se trata de
algo difícil de ser modificado, graças a sua programação, pois depende da conclusão da rede
em si, lembrando que é um consenso distribuído, se por ventura for mudado uma informação
de forma indevida ou pelo menos alguém tente, será muito fácil a detecção (LEC NEWS, 2018).

2.3 CRIPTOMOEDAS

No “Manifesto Cypherpunk” (Hughes, 1993), vemos nascer a ideia de defesa da


privacidade em vários aspectos. Com relação à moeda, privacidade significa que em uma
transação financeira cada lado da transação deve ter apenas ciência do que é estritamente
relevante para aquela operação. O manifesto provocou programadores a aderir a essa causa e
desenvolver softwares para implementar ideias que protejam a privacidade e o conceito da
moeda estava nisso incluído.
Coinmarketcap (COINMARKETCAP, 2018) lista dezenas de moedas em um site,
os exemplos mais citados, no decorrer da leitura desse trabalho, além do bitcoin são: ethereum
e hyperledger.
Muitos têm alertado que governos não tolerarão que o sistema monetário seja
reformado por um punhado de cyberpunks e seu dinheiro mágico de internet. Haverá
intervenções. Haverá regulações. Haverá taxações. Haverá também tentativas de
controlar. Mas olhemos a história recente. Governos tentaram impedir e então
nacionalizar os correios. Buscaram impedir o compartilhamento de arquivos.
Procuraram acabar com a pirataria. Tentaram também suspender a distribuição online
de fármacos. Tentaram acabar com o uso, a fabricação e distribuição online de drogas.
Buscaram gerir e controlar o desenvolvimento de software por meio de patentes e leis
antitruste. Se tentarem barrar ou até mesmo controlar uma criptomoeda, não terão
êxito. Serão novamente derrotados pelas forças de mercado (ULRICH, 2014).
23

2.3.1 Sociedade e sistema financeiro

Com o passar do tempo, a moeda se transformou e se atualizou junto com a


sociedade e foi ganhando cada vez mais relevância em nações que tinham como objetivo
realizar trocas comerciais (SENNA, 2010).
Quem teve o papel de controlar e regulamentar a moeda sempre foi o Estado, que é
responsável por controlar a utilização e os órgãos reguladores estatais para a divisão e
movimentação desses objetos (SENNA, 2010).
Porém, com o avanço da tecnologia e da programação, é possível observar o
surgimento de um novo conceito, relacionado a moedas na década passada, com o objetivo de
revolucionar a maneira como são feitas as transações financeiras em todo mundo praticamente
sem a intervenção de governos ou de entidades particulares que visam lucro em cada transação
(ULRICH, 2014).
Atualmente, presenciamos a geração de novos modelos de negócios, sustentados
por oportunidades geradas pela tecnologia, novas empresas propõem soluções para transações
comerciais de maneira eficiente, transparente, com baixos custos para os usuários (ULRICH,
2014).
Os motivos fundamentais que impulsionaram a criação do Bitcoin são, portanto,
evidentes: um sistema financeiro instável e com elevado nível de intervenção estatal
e a crescente perda de privacidade financeira. Mas esse estado de coisas não é
novidade. A intervenção dos governos no âmbito monetário é milenar, assim como a
cumplicidade e conivência do sistema bancário. A diferença entre o sistema financeiro
mundial atual e o de cem anos atrás é meramente de grau; na sua essência, a
intervenção estatal prevalece tanto hoje como no início do século XX. Por que então
algo como o Bitcoin não surgiu antes? Por que precisamos assistir ao sistema
financeiro mundial tornar-se tão vulnerável, a ponto de quase testemunharmos o seu
mais absoluto colapso em 2008? Simplesmente porque, antes, uma tecnologia como
a internet não estava disponível e madura como hoje está; de fato, a rede mundial de
computadores foi o que viabilizou a criação do Bitcoin. A era da informação
revolucionou diversos aspectos da cooperação social, e não poderia ser diferente com
uma das instituições mais importantes para o convívio em sociedade, o dinheiro.
(ULRICH, 2014).

2.3.2 Bitcoin

O Bitcoin é um tipo de dinheiro, bem como o real, dólar ou o euro, diferente desses,
o bitcoin é uma moeda unicamente digital, não pode e não deve ser controlada por nenhum
governo, seu valor é determinado de maneira livre por todos os usuários que compõem esse
mercado, facilitando pagamentos online por ser rápido, barato e seguro (ULRICH, 2014).
Em síntese, Bitcoin é um tipo de moeda digital baseado em tecnologia peer-to-peer
(par a par ou, simplesmente, de ponto a ponto) que não se baseia e nem depende de nenhuma
24

espécie de controle estatal ou uma autoridade centralizadora. A grande inovação dentre as


diversas aplicações que vieram depois foi o fato de ser o primeiro sistema de pagamentos
globalizado completamente descentralizado (ULRICH, 2014).

2.3.3 Ethereum

O Ethereum é uma plataforma blockchain aberta e também uma criptomoeda assim


como bitcoin, a diferença que ele permite é que qualquer pessoa construa e use aplicações
descentralizadas que são executadas em tecnologia blockchain. Diferente da rede blockchain
do bitcoin, o ethereum é adaptável e flexível e possui muitos recursos para qualquer um criar
aplicativos. Usando essa rede blockchain, para criação desses aplicativos, é necessário saber
trabalhar com os Smart contracts, assim, os usuários podem programar uma operação da forma
que desejar. Não há necessidade de montar uma rede blockchain, pode se usar a do ethereum,
assim sendo menos custoso, pois as empresas pagariam por operações realizadas e o preço disso
seria pagar com a criptomoeda ethereum que ela possui e sai mais barato do que a empresa criar
uma rede do 0 e trabalhar com ela para suas aplicações (ETHEREUM, 2016).

2.4 SMART CONTRACTS

Uma rede baseada em blockchain pode utilizar aplicativos e serviços para conectar
sistemas de dados existentes. Essas APIs padrão podem alimentar dados do provedor em
contratos inteligentes - pedaços de código de computador executável, representando a lógica de
negócios (ou seja, termos de pagamento) embutidos em um blockchain - para automatizar partes
do processo de atualização e permissão (EY, 2016, tradução nossa).

2.5 BLOCKCHAIN: UMA VISÃO GERAL SOBRE SEU FUNCIONAMENTO

Segundo Nakamoto (2008), o blockchain administra e controla a distribuição de


redes P2P (Peer to peer) baseadas na estrutura de dados de encadeamento de blocos para realizar
transações seguras, distribuídas e consistentes, o que define essa tecnologia como algo muito
confiável capaz de prover segurança baseada em um sistema distribuído e compartilhado,
conforme exemplificado na figura 1.
25

Para realizar transações financeiras a criptomoeda Bitcoin apresentou uma rede que
permitia armazenar quantidades mínimas de dados entre cada nó da rede, apenas o suficiente
para validar a operação (NAKAMOTO, 2008).

Figura 1 – Exemplo simplificado do encadeamento dos blocos

Fonte: Elaboração dos autores, 2019.

Uma segunda geração de blockchain, teve como proposta, representar transações


mais complexas através dessa tecnologia, o que gerou um novo termo conhecido como Smart
Contract (contrato inteligente) e elevou o patamar de pesquisa e relevância desta tecnologia
para a sociedade em geral. A ideia da segunda geração é realizar a automatização de regras
executáveis com o consentimento das várias partes envolvidas, ou seja, acordos estabelecidos
em código e livres de interpretação aberta, normas que deverão ser executadas se os termos do
contrato forem atingidos (WOOD, 2014).
A plataforma é inteiramente baseada em resumos criptográficos equivalentes ao seu
conteúdo, sendo que o cada bloco armazena seus dados e ainda um Hash com o resumo do
bloco anterior, a única exceção é o bloco conhecido como Genesis (primeiro bloco a ser gerado)
que deve receber um Hash determinado no momento da criação da rede. Blockchain tem como
conceito garantir a segurança e confiabilidade, por ser baseado em redes de nós descentralizados
e cada nó tem ainda a liberdade de entrar e sair sem a necessidade de um órgão validador
centralizado (NAKAMOTO, 2008).
26

Figura 2 – Ilustração do bloco gênesis

Fonte: Elaboração dos autores, 2019.

Para garantir a auditoria nesse ambiente aparentemente desfavorável, foi necessário


estabelecer regras para que todos os nós tenham uma visão única da cadeia de blocos,
distribuindo e replicando os dados entre todos os nós da rede, garantindo assim que todos
tenham acesso a mesma informação, possibilitando a criação de procedimentos de validação e
consenso para efetivar a réplica dos dados de maneira distribuída, coerente e confiável.
Transações blockchain são basicamente sequências de operações atômicas que seguem a
semântica ACID (Atomicidade, Consistência, Isolamento e Durabilidade) exatamente como
nos mais tradicionais bancos de dados relacionais (DINH et al., 2017).
Para um bloco fazer parte da rede, quatro camadas são processadas: transações,
validação, geração de blocos e distribuição (DINH et al., 2017).
Figura 3 – Ilustração do processo de armazenamento de um bloco

Fonte: Elaboração dos autores, interpretação baseada no processo descrito no capítulo, 2019.
27

A camada que retrata a relação da tecnologia blockchain com o usuário é a de


transações, pois o usuário tem que seguir parâmetros estabelecidos pela rede, como organização
e uma linguagem de desenvolvimento pré-estabelecida, para poder elaborar as transações.
Também é nessa camada que está o principal relacionamento de uma estrutura blockchain: a
assinatura dos usuários envolvidos na transação, que é realizada através de um par de chaves
assimétricas que cada usuário recebe ao participar de uma rede. Ao efetuar uma transação o
usuário utiliza sua chave privada, para assiná-la e pode ser endereçado por sua chave pública,
a utilização dessa assinatura digital garante o não repúdio às transações, possibilita autenticação
do conteúdo da transação e o controle de acesso. Assim que a transação recebe a assinatura, o
usuário a repassa para os outros nós pertencentes a rede. Vale ressaltar que o blockchain não
conta com uma estrutura para autenticação de usuários, pois os usuários já são identificados por
suas chaves públicas e não há nada que relacione uma chave pública com uma entidade
conhecida, uma prática comum em outras tecnologias (DINH et al., 2017).

Figura 4 – Exemplo de autenticação e assinatura de transações

Fonte: Elaboração dos autores, 2019.

O processo de auditoria e análise das transações ocorre na camada de validação,


que é uma verificação realizada pelos outros nós participantes da rede, cada nó analisa, se a
transação está de acordo com os critérios da rede, se tudo estiver dentro dos conformes a
transação é transmitida para cada nó vizinho caso contrário aquela transação é descartada. Um
exemplo dessa atuação é o saldo durante a transferência de criptomoedas, se o usuário daquela
chave pública, está transferindo um valor e não tiver saldo suficiente, aquela transação é
descartada pelos outros nós da rede (CHRISTIDIS, 2019).
A geração de blocos é a camada onde transações coletadas e validadas, são
ordenadas e empacotadas em um bloco candidato a ser inserido com registro de data e hora no
28

blockchain. Todo esse processo de geração de bloco recebe o termo mineração. O mecanismo
de consenso em que a rede se baseia e o conteúdo do bloco são fundamentais na escolha do nó
que irá minerar. O bloco aprovado por consenso recebe um resumo criptográfico (hash) que
serve como referência para o bloco antecessor, e assim se forma um encadeamento de blocos.
O algoritmo que calcula o hash é unidirecional, diminuindo o risco de uma recuperação dos
dados através do resumo gerado, assim como é improvável a geração de um conteúdo diferente
da transação original mantendo o resumo, isso garante a integridade dos dados na cadeia (DINH
et al., 2017).

Figura 5 – Exemplo simplificado da mineração de um bloco

Fonte: Elaboração dos autores, 2019.

Os blocos minerados são validados e adicionados à estrutura de dados no


blockchain de cada nó através da camada de distribuição, vários processos são executados nessa
camada para atualizar a visão global da rede, vale ressaltar que uma transação modifica o estado
global da rede, seja por uma transferência de recursos ou a execução de um smart contract.
Todos os nós participantes devem possuir o mesmo estado global da cadeia, na mesma
sequência e com mesmo conteúdo, se todos estiverem nesse estado a rede é considerada que
está em consenso, em outras palavras assim que atinge o consenso todos os nós passam a ter
aceso a mesma informação, essa visão global distribuída permite a disponibilidade e auditoria
dos dados armazenados (CHRISTIDIS, 2019).
29

As redes podem ser classificadas como: pública, privada, permissionada e híbrida,


conforme o tipo de utilização, disponibilidade de informações, a maneira como ocorre o
consenso, o papel de cada nó dentro da rede (PILKINGTON, 2019).
Redes públicas não se preocupam com mecanismos de controle de acesso, qualquer
nó pode entrar e sair de uma rede, sem prejudicar as ferramentas de consenso, ou a geração de
novos blocos. Em redes privadas um nó precisa receber uma autorização para poder acessar a
rede. Já na classificação entre redes permissionadas, alguns grupos de nós recebem autorização
apenas para parte das regras da rede, um grupo lida com o consenso e outro grupo minera novos
blocos e em redes não permissionadas todos fazem parte da rotina, podem gerar transações,
minerar novos blocos e realizar o consenso, esse caso exige uma rigidez muito maior aos
mecanismos de consenso, já que trabalha em redes públicas e qualquer nó pode entrar e sair
dessa rede (CHRISTIDIS, 2019).
As desvantagens de redes blockchain públicas, se devem as taxas que devem
remunerar os nós com a finalidade de estimular sua participação na rede e assim minerarem
blocos, existe o receio com a escalabilidade da rede e também com o tempo de confirmação de
cada transação. Esses problemas são relacionados a redes públicas não permissionadas, que são
executadas em ambiente colaborativo, com uma preocupação muito maior relacionada a
privacidade dos dados e a disponibilidade das informações. Com foco em aplicações que
tenham um custo menor, foram desenvolvidas redes públicas permissionadas, que verificam a
identidade de cada nó e determina o que cada grupo de nós é responsável por fazer
(ARMKNECHT et al., 2015).
Redes públicas como citado anteriormente, utilizam mecanismos de consenso e um
dos mais empregados é a Prova de Trabalho (Proof of Work), que deve ser a realização de um
cálculo computacional não trivial, o que inicia uma disputa entre todos os nós da rede para a
realização do mesmo, assim o nó que tiver mais recursos computacionais em sua infraestrutura
realizará o cálculo em menor tempo e será declarado o vencedor, provando assim que foi capaz
de realizar o desafio computacional e assim que minerar o bloco, os outros nós respeitam essa
capacidade e alcançam o consenso encadeando este bloco ao restante da cadeia (NAKAMOTO,
2008).
Por outro lado, como esse mecanismo trabalha com um consenso probabilístico,
existe uma possibilidade de vários nós requisitarem o próximo bloco a ser adicionado a cadeia
o que pode acabar gerando uma ramificação. Porém esses ramos geralmente são de curta
duração pois tendem a se alinhar e receber o consenso da cadeia mais longa. Vale ressaltar que
os nós recebem recompensas assim que conseguem minerar um bloco e o anexar a cadeia mais
30

longa, portanto a vantagem está em alinhar os blocos as cadeias mais longas, forçando os nós
focarem seus recursos para esse fim e não com um bloco que possa ser descartado
(CHRISTIDIS, 2019).
Mecanismos de consenso como a Prova de Trabalho, recebem diversas críticas
negativas relacionadas a sustentabilidade durante o processo de mineração, já que existe um
gasto enorme de recursos como: energia elétrica, para a criação de um bloco (PILKINGTON,
2019).
A alta latência também pode ser apontada como desvantagem na utilização da Prova
de Trabalho e como consequência, um número menor de transações validadas no decorrer do
tempo (CHRISTIDIS, 2019).
Existe também a possibilidade teórica de um usuário ou pequeno grupo de usuários
controlar mais da metade dos recursos computacionais dessa rede gerando rapidamente os
blocos, e ficando responsável pela maioria das transações distorcendo a natureza
descentralizada da rede (PILKINGTON, 2019).
Um mecanismo de consenso alternativo e que visa minimizar as desvantagens da
Prova de Trabalho é a Prova de Posse (Proof of Stake) que tem como base a preservação da
origem descentralizada de uma rede pública. O método de trabalho da Prova de Posse, da
oportunidades para os nós, levando em consideração, sua capacidade computacional (um nó
recebe x oportunidades durante o tempo se tiver x recursos), isso estabelece também uma regra
que os nós com maior participação podem reivindicar a geração do próximo bloco. A
participação do nó pode ser determinada pela ligação de um ou mais fatores, como recursos,
disponibilidade e diversos outros fatores que compõem a rede. A Prova de Posse é um
mecanismo que exige um conjunto de nós para operar como mineradores, bloqueando seus
recursos como prova de sua participação, esses são os responsáveis pelo consenso um nó é
selecionado por um algoritmo pseudoaleatório e assim cria o novo bloco, adicionando o mesmo
ao blockchain existente (KING; NADAL, 2012).
Em redes privadas o mecanismo de consenso é a Prova de Autoridade (Proof of
Authority), onde uma entidade é responsável pela rede e pode definir a função de alguns nós.
Esse mecanismo de consenso, determina um conjunto específico de nós que tem a autoridade
de participar do consenso e esses nós se responsabilizam pela geração de novos blocos e
validação das transações. A Prova de Autoridade habilita um bloco como participante do
blockchain se ele for assinado por pelo menos um nó com autoridade. O modelo de recompensas
dentro desse mecanismo de consenso conta com um mecanismo de confiança que analisa o
comportamento dos nós de autoridade e evidencia a importância de um nó sustentar sua
31

reputação para se manter como nó de autoridade. Vale ressaltar que na Prova de Autoridade
todos os nós devem concordar sobre o estado global da rede mantendo assim a natureza
distribuída da rede (POA, 2019).

2.6 CONSIDERAÇÕES FINAIS SOBRE O CAPÍTULO

O blockchain mostra que veio para revolucionar a era da tecnologia, cada vez mais
discussões sobre privacidade e segurança tomam os corredores das empresas do meio. Como
descrito nas seções acima, exemplos de aplicações e empresas que estão desenvolvendo
plataformas baseadas nessa tecnologia, mostram que a preocupação atual com segurança,
disponibilidade, descentralização e auditabilidade está sendo suprida pelo blockchain, por estar
em uma rede de consenso compartilhado, onde uma informação só é válida quando a maioria
dos nós a confirmam.
O blockchain está sendo um grande motor quando o assunto é a interoperabilidade,
pois consegue prover a integração com sistemas de bases de dados diferentes, fazendo com que
pessoas e organizações se comuniquem por estarem compartilhando a mesma rede.
O conceito blockchain revolucionou o mercado financeiro com as moedas digitais,
e são a prova de que o modelo é confiável realizando operações financeiras e conquistando as
maiores empresas do mercado. Independentemente dos valores das moedas digitais estarem em
alta ou em baixa, não se pode negar que foram as responsáveis por abrir os olhos do mundo
sobre importância de aplicar o blockchain nos negócios.
32

3 METODOLOGIA

Neste capítulo, é abordado o tipo de pesquisa sobre a blockchain, as etapas


metodológicas, o planejamento de atividades e a proposta de solução e suas delimitações.

3.1 METODOLOGIA DA PESQUISA

Os autores Silva e Menezes (2001, p. 20) citam que “pesquisa é um conjunto de


ações, propostas para encontrar a solução para um problema, que têm por base procedimentos
racionais e sistemáticos. A pesquisa é realizada quando se tem um problema e não se têm
informações para solucioná-lo”. Para os autores, pesquisas devem ser classificadas, de acordo
com sua natureza, como pesquisa básica ou pesquisa aplicada.
Uma pesquisa básica, segundo Silva e Menezes (2001), tem como objetivo gerar
conhecimentos novos que possam ser úteis para o avanço da ciência sem uma aplicação prática,
já uma pesquisa aplicada tem o papel de fornecer conhecimentos para aplicações práticas,
focadas na solução de problemas específicos, já que abrange interesses locais.
Este trabalho utiliza o método de pesquisa aplicada, pois será desenvolvido um
modelo de aplicação para autenticação de documentos online, com o objetivo de verificar a
viabilidade de uma alternativa descentralizada de autenticação de documentos.
Pesquisas, que têm seu ponto de vista na de abordagem do problema, são
classificadas como:
Pesquisa Qualitativa: considera que há uma relação dinâmica entre o mundo real e o
sujeito, isto é, um vínculo indissociável entre o mundo objetivo e a subjetividade do
sujeito que não pode ser traduzido em números. A interpretação dos fenômenos e a
atribuição de significados são básicos no processo de pesquisa qualitativa. Não requer
o uso de métodos e técnicas estatísticas. O ambiente natural é a fonte direta para coleta
de dados e o pesquisador é o instrumento-chave. É descritiva. Os pesquisadores
tendem a analisar seus dados indutivamente. O processo e seu significado são os focos
principais de abordagem. SILVA E MENEZES (2005, p. 20).

As pesquisas realizadas, neste trabalho, podem ser classificadas no ponto de vista


dessa abordagem como pesquisa qualitativa.
Na visão dos objetivos da pesquisa, neste trabalho, é aplicada a pesquisa
exploratória, já que sua intenção é promover maior familiaridade com o problema com o
objetivo de torná-lo visível ou tentar construir uma hipótese sobre o mesmo (SILVA E
MENEZES, 2005).
Este trabalho envolve levantamento bibliográfico e, segundo Silva e Menezes
(2005), quando é elaborado referenciado em materiais que já tenham sido publicados,
33

constituídos principalmente em cima de livros, artigos de periódicos e com material


disponibilizado na internet, consistem em uma pesquisa bibliográfica baseada em
procedimentos técnicos. Sendo esta uma pesquisa bibliográfica, já que é baseada em materiais
já publicados.

3.2 METODOLOGIA DO TRABALHO

O desenvolvimento da pesquisa se dá pela realização das etapas a seguir:


a) para entender os aspectos técnicos relacionados aos assuntos do tema foi
realizada uma pesquisa bibliográfica;
b) escolha da ferramenta para desenvolvimento do modelo de aplicação para
realizar a autenticação de documentos online (pesquisa aplicada);
c) estudo e aprendizado da ferramenta selecionada para desenvolvimento da
aplicação;
d) desenvolvimento de um protótipo blockchain que verifique a integridade de um
documento digital;
e) validação dos resultados;
f) conclusões da pesquisa.

3.3 DELIMITAÇÕES

As aplicações de uma rede blockchain são incalculáveis, já que se trata de uma


tecnologia disruptiva e devido ao tamanho e a complexidade que essa pesquisa pode chegar,
seguem abaixo as limitações deste trabalho:
a) será criado um protótipo para validação de documentos baseado em blockchain.
b) será utilizada uma ferramenta para construção dos modelos de autenticação e
validação dos resultados.
34

4 MODELAGEM DA APLICAÇÃO

Neste capítulo, é abordada a etapa planejamento e modelagem da aplicação


blockchain proposta por este trabalho.

4.1 ANÁLISE DE REQUISITOS

A análise de requisitos tem como objetivo especificar as funcionalidades do sistema


e as suas restrições. Segundo Rezende (2005, p.124), a análise de requisitos são "... as funções
ou as atividades elaboradas ou em elaboração, visando o pleno atendimento das necessidades
do cliente ou usuário", sendo, assim, as necessidades que deverão ser satisfeitas por parte do
administrador da rede blockchain.
Para a definição dos requisitos e sua execução na tarefa de análise, que segundo
Pressman (1995, p. 232) é uma tarefa de engenharia de software que possibilita efetuar o
levantamento das especificações do software, e nessas especificações temos itens como as
funções, desempenho, interfaces e restrições.

4.1.1 Requisitos Funcionais

Os requisitos funcionais conforme Sommerville (2003, p. 83) são ações que o


sistema deve fornecer, ou seja, são eles que descrevem o comportamento das funcionalidades
do sistema. Assim, os requisitos funcionais definem uma tarefa para que o sistema possa ter
reações em determinadas situações, existindo também a possibilidade destes requisitos
especificar o que o sistema não deve fazer.
Abaixo será apresentado a lista de requisitos funcionais:
• RF001 – Gerenciar Usuário: O sistema deve permitir o cadastro de usuário,
alteração e a possibilidade de inativar;
• RF002 – Criação de Chaves: O sistema deve criar par de chaves para o usuário;
• RF003 – Validação de Informação: O sistema deve permitir a validação de
informações pelo usuário;
• RF004 – Gerenciamento de transações: O sistema deve permitir o
gerenciamento de transações digitais.
35

4.1.2 Requisitos Não Funcionais

Segundo Sommerville (2003, p. 83) os requisitos não funcionais representam as


restrições das funcionalidades do sistema, estas restrições podem ser relacionadas ao tempo,
plataforma da aplicação, sobre o processo de desenvolvimento, dentre outros. Os requisitos não
funcionais foram criados pensando nas necessidades do protótipo, abaixo será apresentado a
lista de requisitos não funcionais:
• RNF001 – O sistema deve ser multiplataforma, funcionando para os principais
sistemas operacionais: Windows, Linux e MAC;
• RNF002 – O Sistema deve ser implementado através do framework Hyperledger
Composer;
• RNF003 – O Sistema deve ser desenvolvido em NodeJs;
• RNF004 – O Sistema deve possuir no mínimo 2 nós para validação de
informações no blockchain.

4.2 FUNCIONAMENTO DO SISTEMA

A proposta de implementação blockchain neste trabalho, abstrai o funcionamento


da interface e do servidor do lado cliente, para simplificar e demonstrar o funcionamento da
rede blockchain, focando apenas no smart contract e nos requisitos para o funcionamento
completo de uma API-REST, demonstrando a interoperabilidade empregada ao conceito.
Na figura 6, é possível observar o funcionamento completo da proposta, todos os
passos e a abstração do serviço no lado do cliente.
36

Figura 6 – Funcionamento simplificado da proposta de protótipo

Fonte: Elaboração dos autores, 2019.

O diagrama trata de todo o processo necessário para o cadastro do documento,


porém neste trabalho será abordado apenas o processo do pool da API-REST.
A aplicação desenvolvida é um serviço, possibilitando a comunicação via API-
REST de maneira universal através de um arquivo JSON, ou seja, qualquer aplicação
desenvolvida em uma linguagem que possua serviços WEB, pode consumir o serviço para
inserir documentos e validá-los.
37

5 DESENVOLVIMENTO DO APLICATIVO EM BLOCKCHAIN

Este capítulo apresenta, as ferramentas utilizadas para o desenvolvimento do


protótipo deste trabalho e, apresentação das telas com uma breve descrição e validação dos
processos.

5.1 ESCOLHA DA FERRAMENTA

A escolha da ferramenta para alcançar os resultados necessários sobre o blockchain,


foi realizada com base em pesquisas realizadas, em seminários e eventos que tratavam com
propriedade sobre o assunto, as opções encontradas foram: desenvolver uma rede blockchain
do zero, utilizar a plataforma Ethereum ou utilizar o Hyperledger.
A plataforma Ethereum, não tem tanto suporte da comunidade e não foi encontrado
durante a pesquisa, material suficiente a solução dos objetivos. O desenvolvimento de uma rede
blockchain completa foi levado em conta, porém, descartado devido a complexidade e o tempo
de seu desenvolvimento. A escolha foi feita pelo Hyperledger e se deu pela quantidade de
documentação encontrada em sua plataforma, por ser open source e permitir que você crie sua
rede blockchain através de máquinas virtuais em ambiente local, não gerando custos, vale
ressaltar que a plataforma é mantida pela Linux Foundation e está em constante crescimento e
atualização, o Hyperledger, abstrai toda complexidade do blockchain, facilitando a utilização e
diminuindo a curva de aprendizado.

5.2 FERRAMENTAS UTILIZADAS

Nesta seção, são apresentadas as ferramentas utilizadas para o desenvolvimento da


aplicação proposta para este trabalho.

Figura 7 – Ferramentas utilizadas para desenvolvimento do projeto


38

Fonte: Elaboração dos autores, 2019.

5.2.1 Visual Studio Code

Esta é uma ferramenta desenvolvida pela Microsoft, para os sistemas operacionais


Windows, Linux e MAC. A ferramenta auxilia no desenvolvimento em diversas linguagens e,
todas as utilizados nos protótipos possuem suporte nela. É possível contar com as suas
funcionalidades como: suporte para depuração do código, controle do Git incorporado, realce
de sintaxe, complementação inteligente de código, snippets e refatoração do código
(VISUALSTUDIO, 2019).

5.2.2 Hyperledger Composer

O Hyperledger Composer faz parte da lista de ferramentas e frameworks da família


Hyperledger, e ele possui um extenso conjunto de ferramentas e estrutura de desenvolvimento
aberto para facilitar o desenvolvimento de aplicativos blockchain, e é mantida pela The Linux
Foundation e, também o seu código é aberto para a comunidade contribuir. O objetivo principal
deste conjunto de ferramentas do Hyperledger Composer, é acelerar o tempo de valor e facilitar
a integração de seus aplicativos blockchain aos sistemas de negócios existentes. O Composer
pode ser utilizado para desenvolver rapidamente casos de uso e implantar uma solução
blockchain em semanas, em vez de meses. O Composer permite modelar sua rede de negócios
e integrar sistemas e dados existentes com seus aplicativos blockchain.
O Hyperledger Composer, tem a possibilidade de suportar a infraestrutura e o tempo
de execução do blockchain do Hyperledger Fabric, que possui protocolos de consenso de
blockchain plugáveis para garantir que as transações sejam validadas, conforme a política dos
participantes da rede de negócios designada.
39

Uma das principais ferramentas do Hyperledger Composer que é utilizada neste


trabalho, é o composer-rest-server, a ferramenta permite realizar requisições via WEB com o
modelo de arquitetura API REST, desta forma pode ser criar aplicações que consomem as
informações do blockchain (HYPERLEDGER, 2019).

5.2.3 Hyperledger Fabric

Conforme página oficial do Hyperledger, o Hyperledger Fabric é um framework


para implementação de estrutura blockchain, um dos projetos Hyperledger hospedados pela The
Linux Foundation. Destinado como uma base para o desenvolvimento de aplicativos ou
soluções com uma arquitetura modular, o Hyperledger Fabric permite que componentes, como
consenso e serviços de associação, sejam plug-and-play. O Hyperledger Fabric utiliza a
tecnologia de contêiner para hospedar contratos inteligentes chamados “chaincode”, que
compõem a lógica de aplicação do sistema. O Hyperledger Fabric foi inicialmente contribuído
pela Digital Asset e IBM, como resultado do primeiro hackathon (HYPERLEDGER-FABRIC,
2019).
O Blockchain Hyperledger Fabric, utiliza diversas tecnologias para o processo de
desenvolvimento da rede, como sistemas operacionais, sistemas de virtualização e alguns
softwares para o funcionamento do sistema (HYPERLEDGER, 2019).
A Linux Foundation desenvolveu esse projeto envolvendo diversas lideranças
globais, do sistema financeiro, Internet das Coisas (IoT), cadeias de suprimento (Supply Chain),
manufatura e tecnologia, Hyperledger é um projeto criado para atuar como um sistema
operacional direcionado para diversos mercados, moedas virtuais, redes de compartilhamento
de dados e comunidades digitais descentralizadas.

5.2.4 NodeJS

Conforme na página Oficial do NodeJS, este é um interpretador de código


JavaScript que possui o código aberto para comunidade, e possui o foco em migrar o JavaScript
do lado do cliente para servidores, ou seja, é uma plataforma de desenvolvimento server-side
baseada em rede. Seu objetivo é ajudar os desenvolvedores na criação de aplicações de alta
escalabilidade, possibilitando códigos capazes de manipular várias conexões simultâneas, em
uma única máquina física. (NODEJS, 2019).
40

A plataforma NodeJS foi construída sobre o motor JavaScript do Google Chrome,


com o objetivo da criação fácil de aplicações de redes rápidas e escaláveis. O NodeJS utiliza o
modelo de entrada e saída de dados direcionada a evento não bloqueante que o torna leve e
eficiente. O NodeJS foi apresentado pelo programador jovem chamado Ryan Dahl na JSConf
2009 Europeia, afirma (NODEBR, 2019).

5.2.5 Docker

Conforme página oficial da ferramenta, O Docker é uma plataforma com um


conjunto de tecnologias e soluções integradas para criação, compartilhamento e execução de
aplicativos baseados em contêineres, da área de trabalho do desenvolvedor à nuvem. Ele é
baseado nos principais componentes básicos do Docker, e possui a vantagem de se trabalhar
visando qualquer linguagem e plataforma (DOCKER, 2019).

5.2.6 Insomnia

Conforme página oficial do Insomnia, é uma ferramenta gratuita que auxilia


desenvolvedores em testes de API. o Insomnia permite testes de serviços de API REST, e conta
com funcionalidades de importação e exportação de dados teste, e também pode realizar
validação de certificado SSL (INSOMNIA, 2019).

5.3 HISTÓRICO DO DESENVOLVIMENTO

A implementação de Blockchain foi realizada através do Hyperledger Fabric, todas


as tecnologias utilizadas para o desenvolvimento do projeto fazem parte das recomendações da
Linux Foundation e da IBM, que inicialmente foi a empresa que desenvolveu a plataforma
Hyperledger Fabric, em seguida, disponibilizou o projeto para a comunidade de software livre
(HYPERLEDGER, 2019).
A escolha pelo Hyperledger Fabric da Linux Foundation foi feita por ser um código
construído com um enorme esforço colaborativo da comunidade de código aberto (Open
Source) que foi criado para promover a utilização do blockchain nos diversos setores do sistema
econômico (HYPERLEDGER, 2019).
A arquitetura propõe uma abordagem empírica com o objetivo de experimentar as
APIs relacionadas ao projeto. Neste sentido, implementou-se uma aplicação que consiste no
41

cadastro e consulta para validação de registros de documentos resumidos em HASH (Como por
exemplo um PDF) que são armazenados no formato JSON através da aplicação desenvolvida
na rede blockchain.
Os registros são negociados remotamente através de uma API Rest disponibilizada
pela ferramenta Hyperledger Fabric, a opção pela utilização de uma API Rest, tem como base
a interoperabilidade de sistemas que podem atuar em diversas plataformas.

Figura 8 – Funcionamento simplificado da proposta de protótipo

Fonte: Elaboração dos autores, 2019.

A Figura exibe o fluxo de operações que envolveram tal experimento. Para detalhar
o processo, os componentes necessários para o funcionamento do blockchain foram ilustrados
de maneira simplificada, onde o sistema externo, está representando a utilização de uma
aplicação compatível com o padrão REST.
A proposta de aplicação transforma os dados que foram inseridos no sistema em
um arquivo JSon, que mantém apenas o HASH/Resumo Criptográfico do PDF e envia para a
API Rest, dessa forma, o fluxo de dados gerados por componentes externos pode ser enviado a
API, que verifica se os parâmetros recebidos estão corretos e encaminha aos peers uma proposta
de transação, caso a maioria dos peers concorde que a transação está correta, o sistema devolve
uma autorização para submissão da transação ao Sistema. Neste ponto, o Sistema envia uma
42

requisição de submissão de transação ao serviço, criando uma transação completa, o


Hyperledger irá verificar se os usuários envolvidos na operação tem as permissões definidas
pelas políticas de controle de acesso, e se as regras estabelecidas pelo Smart Contract foram
satisfeitas para finalizar o processo, submetendo a transação aos peers para persistir os dados
na base de dados do Hyperledger Fabric, enfim todos os peers armazenam exatamente a mesma
base de dados blockchain.
O Hyperledger Fabric conta com uma documentação bem precisa em sua página, a
definição dos requisitos de implentação da ferramenta foram encontradas na sua arquitetura.
A ferramenta conta com uma API REST conhecida como COMPOSER e tem a
proposta de facilitar a integração de sistemas mais conhecidos e utilizados do mercado e que
foram desenvolvidos sem a previsão de uma integração ao blockchain. A funcionalidade
possibilita que sejam mantidos ou replicados, dados e informações como por exemplo: registros
financeiros, dados registro de cartórios, dados recebidos por ferramentas IoT, entre outros. Para
realizar essa integração a arquitetura segue o padrão de aplicações Web, que normalmente é
utilizado para esse fim, fornecendo uma interface que possibilita o recebimento de dados e tem
a capacidade de responder requisições no formato JSON.

5.3.1 Funcionamento e Serviços Esperados

Conforme a organização proposta, a expectativa é que através dela seja possível


realizar registros e consultas ao blockchain por diferentes clientes. As informações são tratadas
pelas requisições REST/JSON, e os dados são convertidos para o formato compatível com o
Smart Contract, e assim entregues ao blockchain. Quando uma pesquisa é realizada os registros
armazenados no blockchain são convertidos para JSON, dessa maneira o serviço de registro e
consulta pode ser integrado a qualquer aplicação que utilize o padrão de serviços Web, fazendo
todo o processo de maneira transparente, realizando os registros com os padrões blockchain.

5.4 IMPLEMENTAÇÃO DA ARQUITETURA

Com a finalidade de demonstrar o funcionamento de um Smart Contract de maneira


simplificada e com fins ilustrativos, o registro a ser gerenciado nos testes corresponde a classe
“ValidacaoPDF”, contendo os campos: ‘pdf’, ‘contratanteNome’, ‘contratanteCpf’,
‘contratadoNome’, ‘contratadoCpf’. É proposital a simplificação com a finalidade de abstrair a
43

complexidade de registros com muitos dados, e assim demonstrar um exemplo de uso de


maneira geral.
A arquitetura do projeto contém a seguinte estrutura como base: Utilização de
sistema operacional Mac OS, com os pré-requisitos necessários para o funcionamento de
containers Docker do Hyperledger Fabric, como a linguagem de programação Node.js
(NODEJS, 2019), servidor e cliente Docker rodando imagens do Hyperledger Fabric de forma
a inicializar os serviços necessários para a estrutura necessária para o Blockchain, os containers
Docker Hyperledger Fabric são compostos por serviços que realizam as tarefas necessárias em
diversos containers.

Figura 9 – Demonstração das máquinas virtuais rodando no terminal

Fonte: Elaboração dos autores, 2019.

5.5 ESTRUTURA DO SMART CONTRACT

Programas escritos na linguagem de programação conhecida como Hyperledger


Composer Modelling Language, são chamados de Chaincode e são responsáveis por definir as
regras de processamento dos dados introduzidos na rede blockchain Hyperledger, geralmente o
Chaincode é o responsável pelas regras de negócios introduzidas no blockchain, ele é a base de
um Smart Contract, que define as condições contratuais estabelecidas pelos stakeholders de
uma negociação realizada pelo blockchain.
Para o desenvolvimento protótipo foi necessária a criação do chaincode, determinando
as regras para as transações dos smart contracts, o código pode ser observado na figura 9.

Figura 10 – Chaincode utilizado como exemplo durante o desenvolvimento do projeto


44

Fonte: Elaboração dos autores, 2019.

5.6 COMUNICAÇÃO ENTRE SISTEMAS EXTERNOS E O BLOCKCHAIN


HYPERLEDGER FABRIC

Para demonstrar a comunicação entre sistemas externos e o Hyperledger Fabric,


foram realizados testes utilizando o software Insomnia com padrão REST, enviando os dados
necessários para o cadastro do PDF. No exemplo, são enviados parâmetros referentes ao
cadastro do PDF utilizando o método POST, informando o endereço disponibilizado pela API
do servidor, o parâmetro referente a função a ser chamada, e as variáveis referentes:
“ValidacaoPDF”, ‘pdf’, ‘contratanteNome’, ‘contratanteCpf’, ‘contratadoNome’,
‘contratadoCpf’.
45

Figura 11 – Captura de tela do software Insomnia, cadastrando uma transação.

Fonte: Elaboração dos autores, 2019.

Para avaliar o processo de comunicação e analisar o sucesso da operação, também


foram monitorados os registros do blockchain através das mensagens geradas pela API através
do terminal do MAC, que demonstram sucesso no cadastro da transação. As mensagens
demonstram que a proposta cadastro da transação foi satisfeita com sucesso pelo serviço de
consenso da ferramenta, utilizando os parâmetros do Smart Contract, verificando se o usuário
tem permissões para submissão da proposta, em seguida a mensagem informa que a transação
foi submetida com sucesso, e os dados foram registrados no peer, na sequencia os dados foram
submetidos ao serviço responsável para replicar os dados nos outros peers.

Figura 12 – Captura de tela do terminal do sistema, mostrando o log das operações

Fonte: Elaboração dos autores, 2019.


46

Após a certificação de que os dados foram registrados com sucesso, foi realizada
uma consulta com o software Insomnia passando um parâmetro do registro a ser consultado no
padrão REST, o método de consulta foi o GET, informando o link disponibilizado pela API
para consulta do registro, seguindo o padrão de comunicação REST, a resposta da consulta
corresponde ao registro enviado anteriormente.

Figura 13 – Exemplo da busca de transações realizada através da ferramenta Insomnia

Fonte: Elaboração dos autores, 2019.

5.7 AVALIAÇÃO DA ARQUITETURA

A escolha de optar por uma plataforma que forneça uma API-REST, se mostrou
coesa, já que foi feita pensando na interoperabilidade de sistemas legados, que disponham de
serviços web, assim não importa qual a plataforma de implementação do sistema base, ele se
comunica com a API-REST de maneira universal através de um arquivo JSON.

Figura 14 – Exemplo de funcionamento de uma API-REST

Fonte: Elaboração dos autores, 2019.


47

A plataforma Hyperledger Fabric, forneceu toda a documentação necessária para a


implementação do projeto e simplificou o processo de desenvolvimento acelerando a curva de
aprendizado e facilitando o desenvolvimento de uma rede blockchain com ferramentas práticas
e bem documentadas.
48

6 CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS

Este capítulo apresenta as considerações finais baseadas na aplicação proposta e na


apresentação da tecnologia blockchain, além disso, algumas sugestões para trabalhos futuros
serão elencadas.

6.1 CONSIDERAÇÕES FINAIS

Neste trabalho, foram apresentados problemas relacionados ao risco do


armazenamento de dados de maneira centralizada. Nesses casos um impacto negativo como
invasão cibernética, ou algum descuido na manipulação de informações em um banco de dados,
pode comprometer as atividades da empresa. A tecnologia blockchain busca resolver esse risco
com a distribuição de nós e a replicação dos dados entre eles.
Foram encontradas diversas dificuldades durante o período de pesquisa deste
trabalho, a busca por materiais científicos para abordar a tecnologia blockchain e os conceitos
para criação de uma aplicação baseada nela foi muito escassa e a maior parte das fontes
encontradas foram em inglês, inclusive a documentação da principal ferramenta utilizada, o
Hyperledger Fabric.
Para resolver os problemas do objetivo geral, foi apresentado neste trabalho, todo o
funcionamento da tecnologia blockchain. A confiabilidade que essa tecnologia gera em
transações digitais, foi utilizada como base para o funcionamento de criptomoedas, atestando
sua eficiência e credibilidade para serviços financeiros, abrindo portas para sua aplicação em
diversas áreas.
A capacidade do blockchain para validar transações digitais, criou a oportunidade
de resolver problemas como a validação de documentos, de identidade e de informações
virtuais, o que pode levar a diminuição da burocracia e redução do uso de papel. Além disso,
suas características aumentam a transparência e permitem a rastreabilidade. Com essas
informações pode se afirmar que tecnologicamente é possível substituir órgãos centrais para
validação de contratos, certidões, documentos e certificados. Diminuindo a utilização de
cartórios físicos, locomoção até órgão de serviços de expedição de documentos, entre outros,
utilizando essa tecnologia para transformar toda a documentação física em digital de maneira
segura e confiável.
No decorrer do trabalho é possível perceber os motivos de tantas empresas
procurarem criar soluções com a utilização do blockchain.
49

Graças a evolução da discussão e desenvolvimento da tecnologia, hoje vários


provedores de serviços estão facilitando a implementação e criando recursos que buscam maior
difusão do blockchain. Em nossas pesquisas encontramos um serviço que ajuda a abstrair a
maioria dos desafios dessa tecnologia, e emprega uma rede permissionada completa, junto de
uma API-REST que facilita a integração de sistemas legados, permitindo que sistemas
desenvolvidos em qualquer linguagem que utilize serviços web, possam se integrar e desfrutar
das vantagens dessa tecnologia.
A utilização da plataforma Hyperledger-Fabric, para a criação do modelo
apresentado, se mostrou assertiva, pela quantidade de documentação encontrada na sua
plataforma, outra vantagem foi a entrega de uma API-REST com os endpoints prontos para
todo o gerenciamento das transações, simplificando o processo de desenvolvimento do modelo.
Vários desafios tecnológicos, relacionados ao blockchain ainda podem afetar o
desenvolvimento dessa tecnologia. Sua capacidade total ainda não foi alcançada, existe também
a preocupação com a quantidade de recursos utilizados para minerar seus blocos, um fator muito
relevante, em um mundo cada vez mais preocupado com a utilização recursos naturais.

6.2 TRABALHOS FUTUROS

Apesar deste trabalho ter atingido os objetivos estabelecidos, foi possível perceber
que com a tecnologia blockchain, existem diversas maneiras de utilização da mesma para
diversos meios de negócios, esse trabalho possibilita a viabilidade de alguns projetos como:
A criação de uma página Web que possibilite a validação completa de documentos,
além disso esse projeto pode contar com uma autenticação, desenvolvida também com a
ferramenta Hyperledger: o Hyperledger Indy, na qual possui um livro-razão para identidades
de usuários descentralizadas, provendo assim um sistema seguro e descentralizado.
Pode também ser Implementada uma plataforma para o gerenciamento de
prontuários médicos baseados em blockchain, dando ao paciente a privacidade e liberdade de
trafegar suas informações de maneira segura e sigilosa, que trabalhe com interoperabilidade,
oferecendo os dados de maneira universal, fazendo que seus dados não fiquem apenas no
formato aceito por uma clínica ou rede de clínicas.
Além da implementação citada anteriormente, pode ser feita também uma
plataforma para rastreamento da rede de fornecimento de alimentos, integrando o blockchain à
internet das coisas. Com a utilização de sensores de temperatura e GPS, podem ser gerados
smart contracts que possibilitem a geração de multas ou descontos em mercadorias que a
50

temperatura ultrapasse os valores definidos, ou até mesmo o descarte do material que


ultrapassar valores que coloquem o material fornecido em risco.
Como citado anteriormente neste trabalho, a tecnologia ainda está em fase inicial
de utilização, definir limites para o blockchain, ainda não é possível, cada dia que passa surgem
novos investimentos e também maneiras de aplicar essa tecnologia inovadora, que se mostrou
ao mundo transformando nossa maneira de realizar transações financeiras, mas que não fica
limitada a isso, mostrando assim o quão disruptiva pode ser uma tecnologia.
51

REFERÊNCIAS

BARBOSA, Tatiana C. B. M. A Revolução das Moedas Digitais: Bitcoins e Altcoins.


Editora Revoar, 2016.

BETHA. Blockchain: a tecnologia que vai revolucionar prefeituras. Disponível em:


http://www.betha.com.br/blog/blockchain-a-tecnologia-que-vai-revolucionar-prefeituras/.
Acesso em: 17 set. 2018.

BLOCKCHAIN & INFRASTRUCTURE: (Identity, Data Security). Cambridge, maio 2016.


Disponivel em: https://www.getsmarter.com/career-advice/wp-
content/uploads/2017/07/mit_blockchain_and_infrastructure_report.pdf. Acesso em: 26 out.
2018.

BRODERSEN, C. Blockchain: Securing a New Health Interoperability Experience. 2016.


Disponível em: https://www.healthit.gov/sites/default/files/2-49-
accenture_onc_blockchain_challenge_response_august8_final.pdf. Acesso em: 21 out. 2018.

CERT.BR. Criptografia. Disponível em: http://cartilha.cert.br/criptografia/, Acesso em: 20


out. 2018.

CHRISTIDIS, K. e DEVETSIKIOTIS, M.: Blockchains and smart contracts for the


internet of things. Disponível em: https://ieeexplore.ieee.org/document/7467408, Acesso em:
14 abr. 2019.

COINMARKETCAP. Top 100 Cryptocurrencies by Market Capitalization. Disponivel


em: https://coinmarketcap.com/, 2018. Acesso em: 30 out. 2018

CONTARDI, Bruno. O Blockchain: O protocolo da Confiança.. Disponível em:


https://medium.com/@cienciasdotrab/o-blockchain-o-protocolo-da-confian%C3%A7a-
60d428775901. Acesso em: 16 set. 2018.

CROSBY, Michael. et al. BlockChain Technology: Beyond Bitcoin. Applied Innovation


Review, Berkeley, n. 2, jun 2016 Disponível em: http://scet.berkeley.edu/wp-
content/uploads/AIR-2016-Blockchain.pdf. Acesso em: 20 out. 2018.

DINH, T. T. A., Wang, J. et al.: Blockbench: A framework for analyzing private


blockchains. Em Proc. of the ACM International Conference on Management of Data.
Disponível em: https://www.comp.nus.edu.sg/~ooibc/blockbench.pdf Acesso em: 15 abr.
2019.

DOCKER. Soluções de contêiner para desenvolvedores, arquitetos, DevOps e TI.


Disponível em: https://www.docker.com/products/docker-desktop. Acesso em: 13, maio
2019.

ETHEREUM. O que é o Ethereum?. Disponível em:


http://www.ethdocs.org/en/latest/introduction/what-is-ethereum.html. Acesso em: 28 out.
2018
52

EY. Blockchain in health How distributed ledgers can improve provider data
management and support interoperability. Disponível em:
https://www.hyperledger.org/wp-content/uploads/2016/10/ey-blockchain-in-health.pdf.
Acesso em: 18 out. 2018.

FOWLER, Martin. UML Essencial: um breve guia para linguagem padrão. Bookman,
2014.

HUGHES, Eric. A Cypherpunk's Manifesto, 1993. Disponível em:


https://www.activism.net/cypherpunk/manifesto.html. Acesso em: 30 out. 2018.

HYPERLEDGER-FABRIC. Introduction. Disponível em: https://hyperledger-


fabric.readthedocs.io/en/latest/whatis.html. Acesso em: 13, maio 2019.

HYPERLEDGER. Welcome to Hyperledger Composer. Disponível em:


https://hyperledger.github.io/composer/latest/introduction/introduction.html. Acesso em: 13,
maio 2019.

INSOMNIA. Getting Started with Insomnia. Disponível em:


https://support.insomnia.rest/article/11-getting-started. Acesso em: 16, mai 2019.

KING, S. e NADAL, S. (2012). PPCoin: peer-to-peer crypto-currency with proof-of-


stake. Re-latório técnico. Disponível em: https://decred.org/research/king2012.pdf Acesso
em: 15 abr. 2019.

LALLANA, E. C. e-Government Interoperability. 1.ed. Bangkok: United Nations


Development Programme, 2008. Disponivel em:
http://unpan1.un.org/intradoc/groups/public/documents/UN-OTHER/UNPAN032094.pdf.
Acesso em: 15 ou 2018.

LEC NEWS. SEGURANÇA E PRIVACIDADE: BLOCKCHAIN E O REGISTRO DE


DADOS PESSOAIS. Disponível em: http://www.lecnews.com.br/blog/seguranca-e-
privacidade-blockchain-e-o-registro-de-dados-pessoais/. Acesso em: 28 out. 2018.

MIT. Blockchain Research at MIT. Disponível em: http://blockchain.mit.edu/. Acesso em:


12 out. 2018.

NAKAMOTO, Satoshi. Bitcoin: A Peer-to-Peer Electronic Cash System. Disponível em:


https://bitcoin.org/bitcoin.pdf. Acesso em: 10 out. 2018.

NODEBR. O que é Node.js?. Disponível em: http://nodebr.com/o-que-e-node-js/ . Acesso


em: 15, maio 2019.

NODEJS. About Node.js®. Disponível em: https://nodejs.org/en/about/. Acesso em: 15,


maio 2019.

OLIVEIRA. Wallace. O que são regras de negócio e quais as vantagens de aplicá-las em


uma empresa. Disponível em: https://www.heflo.com/pt-br/automacao-processos/o-que-sao-
regras-de-negocio/. Acesso em: 06 dez. 2018.
53

PEDRO, Crypto. DESCENTRALIZAÇÃO VS CENTRALIZAÇÃO. Disponível em:


https://www.cryptopedro.com/blog/descentralizacao-vs-centralizacao/. Acesso em: 16 set.
2018.

PEREIRA, Tiago. APLICAÇÕES DA TECNOLOGIA BLOCKCHAIN. Disponível em:


http://datascienceacademy.com.br/blog/aplicacoes-da-tecnologia-blockchain/. Acesso em: 16
set. 2018.

______. O QUE É A TECNOLOGIA BLOCKCHAIN?. Disponível em:


http://datascienceacademy.com.br/blog/o-que-e-a-tecnologia-blockchain/. Acesso em: 16 set.
2018.

PILKINGTON, M.: Blockchain technology: principles and applications. Disponível em:


https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2662660 Acesso em: 15 abr. 2019.

POA, Network. Proof of Authority: consensus model with Identity at Stake. Disponível
em: https://medium.com/poa-network/proof-of-authority-consensus-model-with-identity-at-
stake-d5bd15463256 Acesso em: 16 abr. 2019.

PRESSMAN, R. S; ENGENHARIA DE SOFTWARE. São Paulo, Edição 3, 1995

REALINI, A. G2G E-Government: The Big Challenge for Europe. Master’s Thesis.
Department of Informatics, 2004, University of Zurich: Switzerland. Disponivel em:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.2317&rep=rep1&type=pdf.
Acesso em: 20 out. 2018.

REZENDE, Denis Alcides. Engenharia de software e sistemas de informação. Brasport,


2005.

SENNA, José Júlio. Política Monetária: ideias, experiências e evolução. 1ª. ed. Rio de
Janeiro: Editora FGV, 2010.

SILVA, E.L. da; MENEZES, E. M. Metodologia da Pesquisa e elaboração de Dissertação.


4a Ed. UFSC, Florianópolis, 2005.

SOMMERVILLE, I. Engenharia de Softaware. 6ª Edição, São Paulo, 2003.

SULLIVAN, Nick. ECDSA: The digital signature algorithm of a better internet.


Disponivel em: https://blog.cloudflare.com/ecdsa-the-digital-signature-algorithm-of-a-better-
internet/, Acesso em: 20 out. 2018.

TAPSCOTT, Don; Tapscott, A.: Blockchain Revolution: como a tecnologia por tras do
bitcoin esta mudando o dinheiro, os negocios e o mundo. SENAI - São Paulo, 2017.

UDACITY. O QUE É BLOCKCHAIN?. Disponível em:


https://www.udacity.com/blog/post/o-que-e-blockchain. Acesso em: 24 out. 2018.

ULRICH, Fernando. Bitcoin - a moeda na era digital. 1ª. ed. São Paulo: Instituto Ludwig
Von Mises Brasil, 2014.
54

VISUALSTUDIO. Getting Started. Disponível em: https://code.visualstudio.com/docs.


Acesso em: 13, maio 2019.

WOOD, G.: Ethereum: A secure decentralised generalised transaction ledger. Relatório


Técnico. Disponível em: https://gavwood.com/paper.pdf Acesso em: 15 abr. 2019.

Você também pode gostar