• Nenhum resultado encontrado

Tecnologia Blockchain - Potencial de Aplicação no âmbito dos Processos de Negócio das Cadeias de Abastecimento

N/A
N/A
Protected

Academic year: 2021

Share "Tecnologia Blockchain - Potencial de Aplicação no âmbito dos Processos de Negócio das Cadeias de Abastecimento"

Copied!
106
0
0

Texto

(1)

F

ACULDADE DE

E

NGENHARIA DA

U

NIVERSIDADE DO

P

ORTO

Tecnologia Blockchain - Potencial de

Aplicação no âmbito dos Processos de

Negócio das Cadeias de Abastecimento

Tiago Alves Borrego

MESTRADO INTEGRADO EMENGENHARIAELECTROTÉCNICA E DE

COMPUTADORES

Orientador: Professor Américo Lopes de Azevedo Co-orientador: Engenheiro João Luís Martins

(2)
(3)

Tecnologia Blockchain - Potencial de Aplicação no âmbito

dos Processos de Negócio das Cadeias de Abastecimento

Tiago Alves Borrego

M

ESTRADO

I

NTEGRADO EM

E

NGENHARIA

E

LECTROTÉCNICA E DE

C

OMPUTADORES

(4)
(5)

Resumo

O blockchain é uma tecnologia emergente recentemente generalizada para muitas áreas com enormes potencialidades. O seu modo de operação enquadra-se perfeitamente nas supply chains, independentemente do setor. Por norma englobam todos os processos e atividades desde a recolha da matéria prima até à entrega do produto, com trocas e transformações complexas a acontecer, desde a origem até à entrega final do produto. As preocupações, como rastreabilidade de produtos, gestão de inventário, controlo de qualidade e cumprimentos de prazos, são alguns deles.

A solução para muitos dos problemas referidos pode ser encontrada na utilização de tecnologia blockchain, pois permite não só melhorar a velocidade de entrega dos produtos ao cliente, mas também assegurar a rastreabilidade, para garantir um excelente controlo de qualidade, uma boa transferência de dados e segurança da informação.

Esta dissertação foca-se no estudo e conhecimento das funcionalidades e potencialidades da tecnologia blockchain, e demonstrar que processos de negócio podem usufruir do potencial subja-cente à tecnologia. Para responder às questões propostas nesta dissertação, foram analisados casos de estudos por setores, processos de negócio e o potencial de aplicação da tecnologia blockchain na gestão da supply chain.

Na avaliação do potencial de aplicação na gestão de uma supply chain, foi utilizado o modelo SCOR a fim de se compreender os processos existentes e, posteriormente, foi realizado um estudo individual às categorias e aos respetivos processos onde foram analisadas as dificuldades e as necessidades dos mesmos. De seguida, foram avaliadas as dificuldades e as necessidades de cada categoria de processos. Desta forma foi possível qualificar a importância e realizar um matching entre as dificuldades e/ou necessidades de cada processo e o potencial de utilização da tecnologia blockchain.

No final, foi possível concluir que a tecnologia blockchain pode atuar em diversos setores, empresas e processos de negócios.

Após uma reflexão sobre as análises realizadas e de se ter concluído que cada empresa apre-senta processos com diferentes importâncias, foi construído um simulador para que qualquer em-presa que tenha uma organização orientada sobre o modelo SCOR consiga analisar os seus pro-cessos e refletir sobre o potencial da tecnologia blockchain no mesmo.

(6)
(7)

Abstract

The blockchain is an emerging technology which has recently been generalised to many areas with huge potential. Its operating mode fits perfectly in the supply chains, regardless their sector. Normally, they comprise all the procedures and activities from the picking of the raw material to the final delivery of the product. Some of the worries are the traceability of products, inventory management, quality control and deadline fulfillment.

The solution to many of the problems in these areas can be found in the use of the blockchain technology, as it permits not only improving the velocity of the products delivery to the client, but also assure the traceability, to ensure an excellent quality control, a good data transference and information security.

This dissertation focuses in the study and knowledge of the functions and potentialities of the blockchain technology and shows which business procedures can enjoy the potential underlying the technology.

To answer the questions suggested in this paper, it was analysed study cases by sectors, busi-ness procedures and the potential of the application of the blockchain technology in the manage-ment of the supply chain.

In the evaluation of this potential, it was used the SCOR model to understand the existing procedures and, later, it was made an individual study to the categories and their procedures to analyse the difficulties and necessities.

After that, the difficulties and necessities of each processes category were studied.

Thus, it was possible to qualify the importance and carry out a matching between the difficul-ties and/ or necessidifficul-ties of each process and the potential of using the blockchain technology.

In the end, it was concluded that the blockchain technology can act on different sectors, com-panies and business procedures.

After a reflection on the analysis made and the conclusion that each company presents proce-dures with different importance, it was made a simulator, so that any company which is organised with the SCOR model can analyse its processes and reflect on the potential of using the blockchain technology.

(8)
(9)

Agradecimentos

Ao Professor Américo Lopes de Azevedo, pessoa que muito admiro e que tive a honra e o privilégio de conhecer, expresso o meu profundo agradecimento pela confiança, disponibilidade e amabilidade sempre presentes ao longo deste trabalho.

Ao Engenheiro João Luís Martins pela orientação, e pela disponibilidade.

Aos meus pais, pilares fundamentais na minha vida, por estarem sempre presentes. Pelo apoio constante, confiança nas minhas capacidades e principalmente por nunca me deixarem desistir.

À minha irmã pelo apoio e paciência durante este período.

Aos meus amigos pelo apoio, incentivo e presença constante ao longo destes meses.

Tiago Alves Borrego

(10)
(11)

"It is not necessary to do extraordinary things to get extraordinary results."

Warren Buffett

(12)

1 Introdução 1

1.1 Motivação . . . 1

1.2 Objetivo e Questões de Investigação . . . 2

1.3 Metodologia utilizada . . . 2 1.4 Estrutura da dissertação . . . 3 2 Tecnologia Blockchain 5 2.1 Funcionalidades . . . 6 2.2 Desafios Tecnológicos . . . 7 2.3 Propriedades . . . 8 2.4 Conceitos chave . . . 9 2.4.1 Distributed Ledger . . . 9 2.4.2 Criptografia . . . 11 2.4.2.1 Hashing . . . 11 2.4.2.2 Merkle Tree . . . 12 2.4.2.3 Patricia Trie . . . 13 2.4.3 Consenso . . . 13 2.4.4 Smart Contracts . . . 14 2.4.4.1 Blockchain Oracles . . . 15 2.4.4.2 Exemplo de Implementação . . . 16 2.4.5 Verificação . . . 17 2.5 Arquitetura Blockchain . . . 18 2.6 Tipos de Blockchain . . . 20 2.6.1 BlockchainPúblico . . . 23 2.6.2 BlockchainPrivado . . . 24 2.6.3 BlockchainFederado/Consórcio . . . 24

2.7 Blockchains vs Centralized Databases . . . 25

2.8 Blockchain Frameworks. . . 27

3 Casos de Estudo por Setores 31 3.1 Setor Agricultura . . . 32

3.2 Setor Automóvel . . . 34

3.3 Setor da Administração Pública . . . 36

3.4 Setor da Educação . . . 37

3.5 Setor da Saúde . . . 38

3.6 Setor dos Media . . . 39

3.7 Setor Energético . . . 40

3.8 Setor Financeiro . . . 42

3.9 Setor Gaming . . . 43

(13)

CONTEÚDO ix

3.10 Registo de Propriedade . . . 44

3.11 Filantropia e Ajuda Humanitária . . . 45

4 Processos de Negócios 47 4.1 Ciclo de Vida dos Processos de Negócio . . . 48

4.2 Tipos de Processos de Negócio . . . 49

4.2.1 Processos Operacionais/Primários . . . 49

4.2.2 Processos de Suporte . . . 50

4.2.3 Processos de Gestão . . . 51

4.3 Modelos para Design de Processos de Negócio . . . 51

4.3.1 SCOR . . . 51

4.3.2 PCF (APQC) . . . 52

4.3.3 eTOM . . . 53

4.3.4 COBIT . . . 53

5 Potencial de Aplicação no contexto da Supply Chain Management (SCM) 57 5.1 Caracterização da Supply Chain . . . 57

5.2 Da Supply Chain para o Blockchain . . . 59

5.3 Objetivos Principais de Implementação da Tecnologia Blockchain . . . 59

5.4 Análise de processos seguindo o modelo SCOR . . . 60

5.4.1 Hierarquia dos processos no modelo SCOR . . . 60

5.4.2 Análise das necessidades dos processos e cálculo do potencial de utiliza-ção . . . 62

5.5 Simulador para o Potencial de Aplicação no âmbito da Tecnologia Blockchain . . 71

5.6 Exemplo de Implementação Blockchain . . . 72

5.7 Outras possibilidades de implementação . . . 75

6 Conclusão 77 6.1 Visão Global . . . 77

6.2 Trabalho Futuro . . . 78

A 79

(14)
(15)

Lista de Figuras

2.1 Exemplos de Criptomoedas . . . 5

2.2 Transmissão Peer-to-Peer . . . 6

2.3 Exemplo de uma Merkle Tree . . . 12

2.4 Exemplo de uma Patricia Trie . . . 13

2.5 Exemplo de implementação de um Smart Contract . . . 16

2.6 Como um sistema de verificação verifica se a transação é solicitada pelo verdadeiro remetente . . . 17

2.7 Exemplo de um blockchain . . . 18

2.8 Arquitetura interna de um bloco . . . 19

2.9 Tipos de Blockchain . . . 20

2.10 Centralizada vs Descentralizada vs Redes Distribuídas . . . 22

2.11 Blockchain vs Base de Dados . . . 26

4.1 Ciclo de Vida de Gestão de Processos . . . 48

4.2 Supply Chain Operations Reference (SCOR) - SCOR v12.0 . . . 52

4.3 Doze níveis de processos do PCF . . . 53

4.4 Modelo eTOM . . . 54

4.5 Cubo de COBIT . . . 55

5.1 Exemplo simplificado de uma supply chain de vestuário . . . 57

5.2 Exemplo de uma supply chain de vestuário . . . 58

5.3 Hierarquia dos processos no modelo SCOR, adaptado de SCOR 12.0 . . . 61

5.4 Processos pertencentes à categoria sP1 (Plan Supply Chain) . . . 62

5.5 Importância de cada parâmetro em cada nível . . . 69

5.6 Análise por parâmetro de avaliação . . . 71

5.7 Amostra 1 do Simulador . . . 72

5.8 Análise Final do Simulador . . . 73

5.9 Cadeia Simplificada . . . 74

5.10 Ações tomadas por cada utilizador . . . 74

5.11 Exportação de ações na cadeia . . . 74

5.12 Esquema de finalização do processo . . . 75

5.13 Comprovativo blockchain final . . . 75

(16)
(17)

Lista de Tabelas

2.1 Comparação de sistemas blockchain . . . 10

2.2 Exemplos de encriptação (SHA-256) . . . 11

2.3 Prova exemplo de que o hashing é case sensitive (SHA-256) . . . 12

2.4 Algoritmos de consenso mais utilizados na tecnologia blockchain . . . 14

2.5 Blockchain Público vs Privado vs Consórcio/Federado . . . 25

2.6 Permissionlessvs Permissioned vs Central Database . . . 25

3.1 Possíveis vantagens da aplicação da tecnologia no setor da agricultura . . . 32

5.1 Dificuldades e necessidades inerentes ao nível Plan . . . 62

5.2 Dificuldades e necessidades inerentes ao nível Source . . . 63

5.3 Dificuldades e necessidades inerentes ao nível Make . . . 64

5.4 Dificuldades e necessidades inerentes ao nível Deliver . . . 65

5.5 Dificuldades e necessidades inerentes ao nível Return . . . 66

5.6 Dificuldades e necessidades inerentes ao nível Enable . . . 67

5.7 Tabela de geral de análise . . . 70

5.8 Cálculo da nota média geral . . . 70

5.9 Cálculo da nota média geral sem o parâmetro da redundância . . . 70

(18)
(19)

Abreviaturas

B2B Business-to-business BC Blockchain

BPM Business Process Management BTC Bitcoin

DLT Distributed Ledger Technology ETH Ethereum

MRO Maintenance, Repair and Overhaul OM Operation Management

PM Project Management SCM Supply Chain Management TPS Transação por segundo

(20)
(21)

Capítulo 1

Introdução

Perspetiva-se um grande potencial em torno do blockchain. Assim, nesta dissertação, irá ser estudada a aplicabilidade desta tecnologia em contextos reais. Em particular, o principal objetivo será estudar e investigar o potencial do blockchain no contexto dos processos de negócio.

1.1

Motivação

A gestão de processos de negócio (BPM) preocupa-se maioritariamente com o design, a exe-cução, a monitorização e o aprimoramento dos processos de negócios. Os sistemas que supor-tam a promulgação e a execução de processos são extensivamente utilizados pelas empresas para otimizar e automatizar os processos intraorganizacionais. No entanto, para processos interorgani-zacionais os desafios da conceção conjunta e da falta de confiança mútua dificultam uma maior aceitação.

A tecnologia emergente de blockchain tem o potencial de mudar drasticamente o ambiente no qual os processos interorganizacionais são capazes de operar, uma vez que os blockchains oferecem uma forma confiável de executar processos, mesmo numa rede sem qualquer confiança mútua entre os nós.

Tendo isto em consideração a motivação para a realização desta dissertação passa por aumen-tar o conhecimento sobre esta tecnologia, bem como as suas possíveis aplicações e respetivas vantagens.

(22)

1.2

Objetivo e Questões de Investigação

Esta dissertação tem como objetivo geral compreender e analisar os casos de uso e aferir o potencial da aplicação da tecnologia blockchain nos diversos processos de negócios.

Por outro lado, os objetivos mais restritos são essencialmente explicar as principais, funcio-nalidades, propriedades, desafios e conceitos chave da tecnologia e explorar possíveis casos de uso.

Pretende-se também encontrar novas utilidades e potenciais inovações, usando a tecnologia blockchain, ou possivelmente expandir e melhorar uma ideia já existente através da análise dos processos de negócios às suas dificuldades e necessidades.

Para tal, será realizada uma análise aprofundada aos processos de negócio, no que se relaciona com os seus tipos, intervenientes, ações, categorias e níveis. O objetivo será sempre analisar as possíveis dificuldades e as necessidades dos processos, tendo em vista avaliar o potencial uso da tecnologia blockchain.

Assim, após uma cuidada leitura e análise do tema em apreço, resultaram as seguintes questões de investigação:

• Que tipo de processos poderão usufruir do potencial subjacente à tecnologia de blockchain? • Quais as propriedades da tecnologia blockchain que mais podem contribuir para a melhoria

da eficácia e eficiência dos processos de negócio?

1.3

Metodologia utilizada

Esta dissertação explorou uma análise da literatura existente na área e nomeadamente infor-mação técnica. Assim, foram realizados um conjunto ações com vista a responder às questões de investigação:

1. Em sessões de brainstorming sobre a tecnologia e os possíveis caminhos de aplicação tendo em conta a gestão de processos de negócio;

2. Na pesquisa e análise de bibliografia relativa à tecnologia blockchain, com o objetivo de entender as suas principais funcionalidades, propriedades, desafios e conceitos chave; 3. Na pesquisa e na análise relativa aos tipos de processos de negócio e aos modelos mais

utilizados para o design de processos de negócios;

4. Numa análise aprofundada de um dos modelos antes levantados com o objetivo de compre-ender a sua organização interna e posteriormente analisar todos os processos, intervenientes e ações inerentes ao mesmo;

(23)

1.4 Estrutura da dissertação 3

5. Na avaliação das necessidades e/ou dificuldades dos processos analisados sendo posterior-mente realizada uma avaliação individual sobre cada categoria de processos;

6. No desenvolvimento de um simulador para que qualquer utilizador ou empresa, que possua uma organização orientada sobre o modelo SCOR, possa avaliar o potencial da tecnologia blockchain.

1.4

Estrutura da dissertação

No seguimento da metodologia utilizada a presente dissertação foi estruturada da seguinte forma:

• Capítulo 1 - É dada a visão geral do objetivo da investigação e da metodologia seguida. • Capítulo 2 - Centra-se na tecnologia blockchain. Nas primeiras secções são abordadas as

funcionalidades, os desafios tecnológicos e as propriedades da tecnologia. De seguida são aprofundados os termos mais técnicos como os conceitos chave, a arquitetura e os tipos de redes.

• Capítulo 3 - Resulta do estudo e da análise de casos de estudo da tecnologia blockchain. Para este capítulo foram selecionados diversos casos de estudo, de diferentes setores e de empresas com diferentes objetivos e dimensões.

• Capítulo 4 - Serve de introdução para os processos de negócio (ciclo de vida e tipos de processos) e para os modelos de design existentes.

• Capítulo 5 - Resulta da análise do potencial de aplicação da tecnologia blockchain no con-texto do supply chain management onde são estudados os problemas de uma suply chain e os principais objetivos da implementação da tecnologia blockchain. Este capítulo apre-senta, recorrendo ao modelo SCOR, uma análise individual às categorias e aos respetivos processos, sendo analisadas as dificuldades e as necessidades dos mesmos. Tem como obje-tivo compreender, com base nas dificuldades e nas necessidades individuais dos processos, o potencial uso da tecnologia blockchain. Uma vez que este processo de análise pode ser considerado muito subjetivo e diferente de empresa para empresa foi realizado um simu-lador para que qualquer empresa orientada segundo o modelo SCOR analise o potencial da tecnologia. No final do capítulo, é apresentado, através de imagens, um exemplo de aplicação.

• Capítulo 6 - São expostas as conclusões, com base no estudo e no trabalho realizado para o desenvolvimento desta dissertação. Para além disso são apresentados possíveis trabalhos futuros.

(24)
(25)

Capítulo 2

Tecnologia Blockchain

Nos dias que correm, quando as pessoas ouvem falar no termo blockchain, associam, de forma errada, a mais uma moeda eletrónica. Atualmente, o exemplo mais conhecido da tecnologia block-chainem ação é o Bitcoin, líder em criptomoedas, ou seja, moedas que são transacionadas por transferência de valor, sem qualquer realidade física ou controlo por um banco central. Como seria de esperar, a existência de este tipo de moedas depende de forma direta de um sistema de segurança que seja inviolável (ou quase), baseado em encriptação.

Apesar de o Bitcoin [1] ter sido o pioneiro na tecnologia de moeda virtual, existem outras moedas que aplicam a mesma tecnologia como a Litecoin, Dogecoin ou Ethereum que permitem trocas de valores de forma aberta, anónima e “de certa forma” mais seguras (exemplos apresenta-dos na Figura2.1). Estas aplicações da tecnologia blockchain associadas às criptomoedas, fazem parte da primeira geração e são denominadas Blockchain 1.0.

Figura 2.1: Exemplos de Criptomoedas

Após a implantação das primeiras criptomoedas e tendo em consideração as propriedades in-trínsecas desta tecnologia (tais como a segurança, inviolabilidade, imutabilidade e resiliência), notou-se que esta poderia ter outras aplicações. Neste sentido, as plataformas de desenvolvimento blockchainevoluíram e permitiram a inserção de transações mais complexas através dos contratos inteligentes (smart contracts). Foi através destas novas aplicações que surgiu o chamado Block-chain2.0.

(26)

2.1

Funcionalidades

Atualmente a base dos sistemas económicos, legais e políticos são contratos, transações e registos. Estes têm algumas finalidades ou objetivos, como sejam:

• Proteger ativos e estabelecer limites organizacionais; • Estabelecer e verificar identidades e eventos crónicos;

• Governar as interações entre nações, organizações, comunidades e indivíduos; • Guiar/comandar a ação social [2].

No entanto, estas ferramentas e as burocracias formadas para as gerir não acompanharam a transformação digital da economia e acabam por ser como um percalço, que na hora da partida prende um atleta de fazer um sprint.

Com efeito, a tecnologia blockchain promete resolver este problema com os seguintes princí-pios básicos:

1. Distributed Database

Cada participante de um blockchain tem acesso a todo o banco de dados e ao seu histó-rico completo, podendo assim verificar os registos dos seus parceiros de transação sem um intermediário. Nenhuma parte individual controla os dados ou as informações.

2. Transmissão Peer-to-Peer

A comunicação ocorre diretamente entre os pares sem necessitar de um nó central, pois cada nó armazena e envia informações para todos os outros nós (Figura2.2).

Figura 2.2: Transmissão Peer-to-Peer

3. Transparência

Toda a transação e o seu valor associado são visíveis para qualquer pessoa com acesso ao sistema. Cada nó, ou participante, num blockchain tem um endereço alfanumérico exclusivo que o identifica. Os usuários podem optar por permanecer anónimos ou fornecer provas da sua identidade a outros participantes.

(27)

2.2 Desafios Tecnológicos 7

4. Imutabilidade dos Registos

Quando uma transação é inserida no banco de dados e as informações são atualizadas, os registos não podem ser alterados, porque eles estão vinculados a cada registo de transação que veio antes deles (daí o termo "cadeia").

Vários algoritmos e abordagens computacionais são implantados para garantir que a gra-vação no banco de dados seja permanente, impermutável, ordenada cronologicamente e disponível para todos os outros participantes na rede.

5. Lógica Computacional

A natureza digital de um ledger indica, desde logo, que as transações de blockchain podem ser vinculadas à lógica computacional, ou seja, podem ser programadas. Assim, os usuários podem configurar algoritmos e regras que acionam automaticamente transações entre os nós.

2.2

Desafios Tecnológicos

É importante também salientar que esta tecnologia blockchain ainda tem que enfrentar inúme-ros desafios, sendo que entre eles se destacam os seguintes:

• Taxa de Transferência: Enquanto que o número de inclusões na blockchain do Ethereum é limitado para aproximadamente 15 inclusões de transação por segundo (tps), os volumes de transações para a rede de pagamentos VISA são em média de 50 tps e têm uma capacidade máxima de 50000 tps [3].

• Latência: Provém da existência de blocos de confirmação para garantir que a transação não seja removida devido a bifurcações acidentais ou maliciosas. Mesmo com melhorias técnicas como uma rede de descargas elétricas ou cadeias laterais geradas a partir de uma cadeia principal, é improvável que as blockchains obtenham latências tão baixas quanto os sistemas controlados centralmente.

• Usabilidade: A usabilidade é muito limitada, seja no suporte ao developer (por falta de ferramentas adequadas e fáceis de usar) como no suporte ao usuário final (pela dificuldade na utilização e interpretação dos dados).

• Segurança: Por se tratar de uma rede aberta, a segurança representará sempre um desafio. Embora possa ser resolvido por criptografia direcionada, a confidencialidade num sistema distribuído, que replica todos os dados em toda a sua rede, é muito baixa.

• Desperdício de recursos: Particularmente eletricidade, são devidos ao mecanismo de senso, em que os mineradores competem constantemente numa corrida para ver quem con-segue minerar o próximo bloco por uma alta recompensa.

(28)

2.3

Propriedades

De seguida serão descritas as propriedades mais relevantes e as suas respetivas vantagens em torno da utilização da tecnologia blockchain:

• Verificabilidade Pública

Permite que qualquer pessoa verifique o estado e a exatidão do estado do sistema. Num distributed ledger, cada transição de estado realizada é confirmada por verificadores (por exemplo, mineradores no Bitcoin). No entanto, qualquer observador pode verificar se o estado do ledger foi alterado de acordo com o protocolo. É importante referir que todos os observadores têm a mesma visão. Num sistema centralizado isso já não se verifica, pois diferentes observadores podem ter visões completamente diferentes do estado. Como tal, alguns observadores podem não conseguir verificar se todas as transições de estado foram executadas corretamente. Neste caso, os observadores precisam de confiar no estado que a entidade central lhes fornece.

• Integridade

A integridade de informações garante que estas sejam protegidas contra modificações não autorizadas, ou seja, os dados recuperados estão corretos. A integridade da informação está intimamente ligada à verificabilidade pública. Isto porque se um sistema fornece verifica-bilidade pública implica que qualquer um pode verificar a integridade dos dados. Por outro lado a integridade só pode ser garantida se o sistema centralizado não for comprometido. • Imutabilidade

Ligado diretamente com o ponto acima descrito a imutabilidade é umas das propriedades principais da tecnologia blockchain. A maneira como a imutabilidade é garantida será abor-dada na Subsecção2.4.2. De forma resumida, esta é garantida com recurso a um hash code por bloco que contém a informação dos blocos e dos respetivos hash anteriores. Caso um bloco seja alterado a sua hash é também alterada e a rede de blocos quebra, uma vez que, as informações foram adulteradas.

• Redundância

Nos sistemas blockchain, a redundância é inerentemente fornecida através da replicação entre os escritores. Em sistemas centralizados, a redundância é geralmente obtida através da replicação em diferentes servidores físicos e através de backups.

• Hierarquia

A chamada âncora de confiança ("Trust Anchor"[4]) define quem representa a autoridade mais alta de um determinado sistema que tem autoridade para conceder e revogar o acesso de leitura e gravação a um sistema.

(29)

2.4 Conceitos chave 9

• Transparência

A transparência dos dados e o processo de atualização do estado é um requisito para que haja uma verificabilidade pública. A possibilidade de controlar a transparência das infor-mações presentes na cadeia com base no participante que as observa é outra vantagem desta tecnologia, na medida em que pode ser criada a diferenciação entre participantes.

• Privacidade

A privacidade é uma propriedade muito importante de qualquer sistema. Naturalmente existe uma tensão inerente entre privacidade e transparência, que será desenvolvido adi-ante. A privacidade é certamente mais fácil de conseguir num sistema centralizado porque a transparência e a verificabilidade pública não são necessárias para o funcionamento do sistema.

Como se pode observar há um tradeoff inerente entre a transparência e a privacidade. Um sistema totalmente transparente permite a qualquer pessoa ver qualquer informação, ou seja, não há nenhuma privacidade. Por outro lado, um sistema totalmente privado não oferece qualquer transparência. No entanto, um sistema pode fornecer estas duas propriedades de forma equili-brado, isto é, fornecer garantias de privacidade significativas e ao mesmo tempo tornar o processo de transições transparentes.

2.4

Conceitos chave

Categorizar blockchains como privadas ou públicas é útil para identificar as principais ca-racterísticas de muitos blockchains. No entanto, entender as suas diferenças subtis exige uma taxonomia mais refinada. De seguida serão abordados quatro conceitos subjacentes, com base nos quais uma classificação mais detalhada dos sistemas pode ser obtida [5].

Na Tabela 2.1 encontra-se uma lista de blockchains e as suas respetivas propriedades. Os sistemas assinalados em itálico estão inativos ou em fase de desenvolvimento.

2.4.1 Distributed Ledger

Um ledger é nem mais nem menos do que uma lista ordenada de transações. Numa cadeia de blocos (blockchain), o ledger é replicado em todos os nós e as transações são agrupadas em blocos que, por sua vez, se encontram encadeados. Assim, o ledger distribuído é essencialmente uma estrutura de dados somente anexada e replicada. É, por este motivo, que não é necessário um componente central para monitorizar e regularizar todas as ocorrências.

Um blockchain inicia com um ou mais estados iniciais e depois o ledger é que regista e arma-zena todos o histórico de operações/atualizações feitas nos estados.

(30)

Aplicação Execução Smart Contract

Linguagem do

Smart Contract Data Model Consenso

Hyperledger v0.6.0

Aplicações

Gerais Dockers Golang, Java Key-value PBFT

Hyperledger v1.0.0

Aplicações

Gerais Dockers Golang, Java Key-value

Ordering service (Kafka)

Bitcoin Crypto-currency Native Golang, C++ Transaction

based PoW

Litecoin Crypto-currency Native Golang, C++ Transaction

based PoW (memory)

ZCash Crypto-currency Native C++ Transaction

based PoW (memory)

Ethereum Aplicações

Gerais EVM Solidity, Serpent, LLL

Account

based PoW

Multichain Digital assets Native C++ Transaction

based

Trusted validators (round robin)

Quorum Aplicações

Gerais EVM Golang

Account

based Raft

HydraChain Aplicações

Gerais Python, EVM Solidity, Serpent, LLL

Account based

Trusted validators (majority)

OpenChain Digital assets - - Transaction

based Single validator

IOTA Digital assets - - Account

based

IOTA’s Tangle Consensus

BigchainDB Digital assets Native Python,

crypto-conditions Transaction based Trusted validators (majority) Monax Aplicações

Gerais EVM Solidity

Account

based Tendermint

Ripple Digital assets - - Account

based Ripple consensus

Kadena Pact applications Native Pact Table ScalableBFT

Stellar Digital assets - - Account

based Stellar consensus

Dfinity Aplicações

Gerais EVM Solidity, Serpent, LLL

Account

based Threshold relay

Parity Aplicações

Gerais EVM Solidity, Serpent, LLL

Account based

Trusted validators (round robin)

Tezos Michaleson

applications Native Michaleson

Account

based Proof of Stake

Corda Digital assets JVM Kotlin, Java Transaction

based Raft

Sawtooth Lake

Aplicações

Gerais Native Python Key-value Proof of elapsed time

Tabela 2.1: Comparação de sistemas blockchain (os sistemas em itálico estão inativos ou em fase de desenvolvimento) [5]

(31)

2.4 Conceitos chave 11

2.4.2 Criptografia

Para que seja garantida a integridade dos ledgers, os sistemas blockchain recorrem muito a técnicas criptográficas. A integridade antes falada refere-se à capacidade de detetar adulterações dos dados e é uma propriedade vital em ambientes públicos onde não há qualquer confiança pré-estabelecida. A criptografia garante também que o blockchain seja, como já foi referido, um sistema imutável e inviolável. Como tal, é necessário compreender alguns conceitos chaves da criptografia usada nos sistemas de blockchain.

2.4.2.1 Hashing

Hashing consiste na produção de uma chave de saída de comprimento fixo através de uma stringde caracteres normalmente mais curta. Serve, portanto, para apresentar a string original de forma encriptada e basta um carácter da hash ser alterado para que todo o valor inicial deixe de ter qualquer sentido. O Bitcoin, por exemplo, usa a encriptação SHA-256, onde não importa o tamanho de entrada visto que o tamanho da saída será sempre o mesmo (64) (Tabela2.2).

Hello Word 9AEA7EB32AEBE6F10C3EC1381C66E18F FD50F20C54E29FD85B5AE159CF80C9D0 FEUP 4BD4176A8306523A0C1E60A4C84F5412 E199377AA78079CD5346A0EB29EE7F16 My name is Tiago 0B987101096E388853BC3EC07720F29C 7FEFEAD1995E80BFCE24C954A399FF38 Tabela 2.2: Exemplos de encriptação (SHA-256)

A importância e a facilidade de implementação do hashing deve-se às suas propriedades de: • Encriptação única

Não interessa o número de vezes que uma string é passada para hash porque esse valor (hash) será sempre o mesmo.

• Rapidez

A passagem de uma string para a hash correspondente é muito rápida. • Elevada complexidade

É inviável e quase impossível saber um valor de hash sem ser por tentativa e erro ou, natu-ralmente, sabendo o valor de input.

• Imutáveis

Uma pequena alteração modifica todo o significado da hash. Por exemplo, apenas alterar uma letra maiúscula para uma letra minúscula:

(32)

A 559AEAD08264D5795D3909(...)84FE55590EEF31A88A08FDFFD a CA978112CA1BBDCAFAC231(...)8147C4E72B9807785AFEE48BB

Tabela 2.3: Prova exemplo de que o hashing é case sensitive (SHA-256)

• Resistente a Colisões

É inviável encontrar duas mensagens diferentes com a mesma hash.

2.4.2.2 Merkle Tree

Após entender o que é hashing, é também importante entender o que é a Merkel Tree e de que maneira é que desempenha um papel importante a manter a integridade do sistema.

Na Figura 2.3, é possível observar uma Merkle Tree muito simplificada. A Merkle Tree é composta por leaf nodes, em que cada um desses leaf node contém a hash da sua folha de dados correspondente.

Figura 2.3: Exemplo de uma Merkle Tree [6]

Entre os leaf nodes e a raiz da árvore é possível ver que os nodes (nós) são compostos pela concatenação das hash’s dos seus filhos. Por exemplo, a hash de ramificação 0 é o hash dos seus filhos concatenados, ramificações Hash 0-0 e Hash 0-1. É importante notar que a leaf of “Data Blocks”não faz parte da árvore.

O exemplo antes dado é a forma mais comum e simples de apresentar uma Merkle Tree e é conhecida como a Binary Merkle Tree. Como é possível observar há um hash superior que é, nem mais nem menos, o hash da árvore inteira (Top Hash). Isto faz com que as Merkles Trees, apesar de possuírem “n” número de hashes, possam ser representadas através de uma hash única.

(33)

2.4 Conceitos chave 13

A estrutura da árvore permite o mapeamento eficiente de grandes quantidades de dados e a identificação eficaz do local onde ocorreram mudanças de dados.

Caso o hash raiz seja conhecido e confiável, é possível que qualquer utilizador, usando uma prova de Merkle, verifique a posição e a integridade de um dado dentro de um banco de dados.

Uma das qualidades mais importantes da estrutura da Merkle Tree é a capacidade de autenticar conjuntos arbitrariamente grandes de dados com um mecanismo idêntico ao usado para verificar quantidades muito menores.

A Merkle Tree é, portanto, vantajosa para distribuir grandes conjuntos de dados em partes menores, onde é mais fácil verificar a integridade dos dados, mesmo que o tamanho geral destes seja elevado.

2.4.2.3 Patricia Trie

A Patricia Trie, também chamada de Prefix Tree, Radix Tree ou apenas de Trie usa uma key, como um caminho, de tal modo que todos os nós que partilham o mesmo prefixo partilhem também o mesmo caminho.

Figura 2.4: Exemplo de uma Patricia Trie [7]

Por apresentarem uma estrutura rápida a encontrar os prefixos comuns, por ser simples de desenvolver e por requerer pouca memória, é que esta estrutura é muito usada para implementar tabelas de roteamento, por exemplo num router.

2.4.3 Consenso

Como já foi dito anteriormente a maioria dos blockchains, para além de terem muitas coisas em comum, funcionam todos de maneira semelhante. Uma das formas pelas quais os blockchains podem ser únicos é a maneira como o consenso é alcançado, ou seja, como é realizada a veracidade e a legitimidade das transações adicionadas.

Existem vários mecanismos de consenso que são utilizados em sistemas que possuem a tec-nologia blockchain. Uma vez que o foco da dissertação não incide sobre qual o mecanismo a ser usado apenas serão aprofundados alguns dos principais [8], [9].

(34)

Na Tabela2.4, são apresentados outros algoritmos mais utilizados bem como algumas das suas características principais.

Algoritmo Definição Principais

Casos de Uso

Proof of Work (PoW)

Os nós têm de recorrer ao poder computacional para que possam descobrir um hash (por tentativa erro) que satisfaça uma determinada condição, para um determinado bloco. Quando um nó encontra este hash ganha permissão para estender o blockchain com esse bloco. Ao mesmo tempo é responsável por avisar os outros nós e de lhes transmitir a nova cadeia para que estes não trabalhem sobre um bloco que já foi solucionado. O nó responsável por acrescentar um novo bloco recebe uma recompensa.

Blockchains Públicos (Bitcoin e outras criptomoedas) Proof of Stake (PoS)

Os mineradores apostam inicialmente os seus tokens de criptomoedas no bloco que querem incluir no blockchain. Ao fazerem esta aposta estão automaticamente aptos para "minar"o respetivo bloco. A probabilidade de isso acontecer é diretamente proporcional com a quantidade que aposta relativamente à soma de apostas realizadas pelos outros utilizadores. (ex: Se o Daniel colocar 30 tokense ao todo forem apostados 100 tokens, o Daniel tem 30% de chance de minar o bloco)

Blockchains Públicos

e Blockchains

Federados

Proof of Elapsed Time (PoET)

Cada participante da rede recebe um tempo aleatório de espera, e o primeiro participante a terminar a sua espera recebe o próximo bloco.

Blockchains Privados

e Blockchains

Federados Tabela 2.4: Algoritmos de consenso mais utilizados na tecnologia blockchain

2.4.4 Smart Contracts

Um smart contract é um protocolo informatizado em código, executado em cima da tecnolo-gia de um blockchain e projetado para facilitar, verificar e reforçar a negociação ou a execução de um contrato. Este contrato apresenta sempre um conjunto de regras sob as quais as partes desse contrato concordam em interagir umas com as outras. Caso estas regras sejam cumpridas, o con-trato será automaticamente aplicado. Apesar de serem considerados inteligentes, estes concon-tratos não devem ser confundidos com os contratos jurídicos aceites pelos tribunais e/ou aplicações da lei.

A forma mais primitiva de um smart contract é uma máquina de venda automática, onde as regras de compra e venda são programadas à priori e verificadas antes, durante e após cada pedido de compra. Ao selecionar um produto através do seu número correspondente e inserir as moedas, a

(35)

2.4 Conceitos chave 15

máquina apenas executa o contrato programado anteriormente, que funciona de forma inteligente, na medida em que vai confirmar se foi colocado o dinheiro mínimo para o levantamento do produto ou se foi colocado dinheiro a mais e que quantidade é necessária devolver. A criação destes smart contractse das respetivas máquinas de venda automática permitiram a redução de custos, bem como a oferta de um serviço de disponibilidade absoluta (24 horas por dia e 7 dias por semana).

Por vezes, mesmo sendo considerados inteligentes, estes contratos precisam de validação ex-terna uma vez que o blockchain não consegue procurar nem verificar ocorrências fora da rede. Isto é conseguido por agentes designados de “oráculos” (oracles) que serão explicados mais à frente.

Os smart contracts são um conjunto de programas: [10] • Auto verificáveis;

• Auto executáveis;

• Resistentes à adulteração.

E a sua utilização pode trazer inúmeros benefícios, como por exemplo: • Atualizações em tempo real;

• Maior grau de segurança; • Menor risco de execução;

• Reduzir a dependência de intermediários confiáveis; • Menores custos de transação.

2.4.4.1 Blockchain Oracles

Um oracle, no contexto da tecnologia blockchain, é um agente que localiza, verifica e envia ocorrências do exterior da rede para o interior da mesma para que estas informações possam ser utilizadas por smart contracts [11].

Estas ocorrências externas podem ser nem mais nem menos que informações relativas a tem-peraturas, conclusões de pagamentos, alterações de preços, peso, etc.

Os oracles são portanto a única maneira de os smart contracts interagirem com dados fora do ambiente blockchain.

Existem alguns tipos de oracles, entre os quais:

• Software oracles - Operam com a informação disponível online e de livre acesso como por exemplo, atrasos de aviões, meteorologia ou preços de mercadorias.

• Hardware oracles - Operam com informação retirada no terreno através de sensores como por exemplo sensores RFDI que depois informam a rede blockchain que mercadorias aca-baram de ser produzidas e as suas especificações.

(36)

• Inbound oracles - São responsáveis por fornecer aos smart contracts informações externas. Por exemplo, adquirir uma determinada quantidade de Bitcoins, caso a mesma atinja um determinado valor no mercado.

• Outbound oracles - Ao contrário do caso anterior os outbound oracles permitem aos smart contractsenviar dados para o exterior. Por exemplo, o envio de um aviso de que um de-terminado pagamento foi realizado com sucesso para depois desencadear uma determinada operação no mundo real.

• Consensus based oracles - Com base noutros oracles e num algoritmo de consenso é retor-nada uma informação fidedigna. Por exemplo, 10 sensores ao longo de um tapete de uma fábrica para garantir que a temperatura das peças que por ele passam é sempre a mesma.

2.4.4.2 Exemplo de Implementação

Para escrever um smart contract é necessário usar uma Smart Contract Language (SCL), seja para escrever diretamente ou para compilar. Um exemplo de uma SCL pode ser o Solidity, que é uma linguagem de alto nível, orientada a contratos e desenvolvida para executar smart contracts no Ethereum Virtual Machine (EVM). Esta linguagem possui uma sintaxe muito semelhante à do JavaScript. O exemplo dado de uma máquina de vendas automáticas pode ser traduzido num smart contractsimples (usado apelas para fins de demonstração) (Figura2.5).

Figura 2.5: Exemplo de implementação de um Smart Contract [12]

• insertCoin: Função pública que é chamada quando o utilizador insere uma moeda.

• releaseProduct: Função privada que fornece o produto quando o utilizador insere o valor necessário para comprar o produto.

(37)

2.4 Conceitos chave 17

2.4.5 Verificação

Para que uma transação seja adicionada a um bloco e o respetivo bloco adicionado à cadeia é necessário verificar a veracidade da transação, ou seja, é necessário verificar a identidade do remetente, se é mesmo o próprio a solicitar ou se é outra pessoa no seu lugar.

Por exemplo, quando o Paulo envia à Joana 100 euros, este pedido de transação chega a um intermediário que faz de verificador.

Este intermediário tem como função verificar que o pedido está mesmo a ser realizado pelo Paulo e não por outra pessoa. A figura2.6esquematiza esta verificação.

Figura 2.6: Como um sistema de verificação verifica se a transação é solicitada pelo verdadeiro remetente

Para realizar esta verificação são necessárias dois tipos de chaves, públicas e privadas, conhe-cidas como assinaturas digitais. Qualquer utilizador que queira realizar uma transação precisa de usar a sua chave privada para “assinar” a transação, e considera-se a sua transação e a sua chave privada como entradas para uma função de sinal que cria uma assinatura. Em blockchain o algo-ritmo usado para criar uma assinatura para cada transação é o algoalgo-ritmo de assinatura digital da curva elíptica (Elliptic Curve Digital Signature Algorithm (ECDSA)).

De seguida, tanto esta assinatura como a transação são enviadas para o verificador que verifica se essa entidade pertence à pessoa correta ou não, usando a chave pública do remetente, que é conhecida por todos.

(38)

Posteriormente, a transação, a assinatura do remetente e a chave pública do mesmo são inseri-das numa função de verificação para obter um resultado booleano (verdadeiro ou falso).

Como a assinatura em cada transação contém 256 bits a única maneira para falsificar é adivi-nhar o único caso entre 2256casos que funciona.

Para além de verificar a veracidade do remetente, o verificador também tem como função verificar se o remetente tem em sua posse os fundos que pretende enviar ao destinatário.

2.5

Arquitetura Blockchain

A arquitetura de um sistema blockchain é, como o nome indica, uma série de blocos (blocks), que se encontram ligados sequencialmente um ao outro como uma corrente (chain). Cada bloco contém muitas transações, que são validadas, conforme mostrado na subsecção2.4.5.

A Figura2.7apresenta de uma forma simples e esquematizada um exemplo de uma blockchain.

Figura 2.7: Exemplo de um blockchain [13]

Na Figura2.8é possível observar ao pormenor a arquitetura presente num bloco, que é com-posto essencialmente por:

• Prev_Hash:

Esta é uma hash que faz ligação ao bloco anterior. É gerada através de uma função hash na qual são introduzidas todas as informações do bloco anterior.

• Timestamp:

A hora a que o bloco foi encontrado. • Tx_Root:

Este campo é conhecido como a Merkle Root (raíz Merkle), explicada da subsecção2.4.2.2, que contém o valor de hash de todas as transações validadas presentes no bloco. Como é

(39)

2.5 Arquitetura Blockchain 19

possível observar na Figura2.7, todas as transações são representadas com um valor hash que depois combina com outro hash (correspondente a outra transação) e é inserido noutra função hash (em árvore). Este processo é repetido até que haja apenas uma entidade, a Merkle Root.

• Version:

Corresponde à versão do protocolo usada pelo bloco. • Nonce:

Este campo é usado no PoW, abordado na subsecção2.4.3, que indica o esforço que um nó teve para obter o direito de acrescentar o seu bloco à cadeia.

• Bits:

Este campo indica o nível de dificuldade do PoW.

(40)

2.6

Tipos de Blockchain

Figura 2.9: Tipos de Blockchain Existem essencialmente três tipos de blockchain:

• Blockchain Público; • Blockchain Privado;

• Blockchain Federado/Consórcio.

Estes três tipos de blockchain apresentam características muito distintas no que toca à autori-zação que os utilizadores têm e à centraliautori-zação da rede.

Assim, antes da análise dos três tipos de blockchain importa analisar quer a autenticação quer a centralização da rede.

Autorização

Relativamente à autorização as redes podem-se classificar em dois tipos:

Permissionless

Uma rede sem permissão é uma rede aberta onde qualquer utilizador pode entrar, ler, gravar e verificar transações uma vez que não há uma autoridade central. Embora as transações pos-sam ser lidas por qualquer utilizador, também é possível bloquear quaisquer tipo de informações confidenciais [14].

Este sistema faz sentido quando ninguém quer usar um terceiro confiável (TTP). A confiança entre os pares é estabelecida através do mecanismo de consenso acordado por ambos [15].

Para além de deixar que todos os interessados entrem na rede, há algumas características deste modelo que são importantes, tais como:

(41)

2.6 Tipos de Blockchain 21

• Descentralização: O sistema deve ser descentralizado para que nenhuma entidade possa derrubar a rede ou censurar partes dela. Este aspeto depende dos seus membros ,uma vez que as redes sem permissão são baseadas em algoritmos de consenso. Qualquer tipo de alteração na rede pode ser alcançada, desde que 50% + 1 dos participantes concordem com isso.

• Transparência: É uma característica necessária para que os participantes sejam encorajados a confiar na rede. Por este motivo é que uma rede transparente precisa de fornecer livre acesso aos seus participantes.

• Tokens: Esta é também uma característica muito importante, dado que é graças a este incen-tivo que os participantes continuam interessados em continuar a trabalhar na rede. O valor destes tokens pode crescer ou cair, dependendo da relevância e o estado do blockchain a que pertencem. Podem ser tokens de valor monetário ou tokens de utilidade.

• Anonimato: Tanto os mineiros como os outros participantes podem permanecer anónimos. Em certos casos, e por questões legais, têm que fornecer algumas informações pessoais. Por exemplo, o Bitcoin não oferece um anonimato absoluto porque a identidade do usuário está indiretamente ligada aos endereços dos quais eles têm as chaves privadas.

Permissioned

Neste caso, os utilizadores necessitam que a autoridade central lhes conceda permissões para ler, gravar e/ou verificar transações. Neste tipo de rede, o consenso é obtido de uma maneira mais rápida e eficiente porque nem todos os utilizadores têm acesso a gravar dados.

À semelhança das redes permissionless, as redes permissioned também têm características relevantes, como, por exemplo:

• Descentralização Variável: A qualidade da descentralização depende dos participantes da rede. Estes encontram-se livres para negociar e para decidir o nível de descentralização da mesma.

• Transparência: Depende da maneira como o blockchain e as relações comerciais são criadas. Os blockchains privados não necessitam de ser transparentes, no entanto podem optar por fazê-lo, dependendo da organização interna dos negócios.

• Anonimato: Oferecem um controlo de acesso mais controlado. Alguns blockchains priva-dos, apesar de "privados", armazenam toda a informação relativa às transações e às opera-ções realizadas pelos usuários.

• Tokens: Pode ou não haver troca de tokens monetários, depende da natureza da rede de negócios.

(42)

• Administração: É decidida pelos membros da rede de negócios. Não há necessidade de utilizar algoritmos de consenso, uma vez, que toda a rede deve concordar com a mudança.

Centralização

Em primeiro lugar é necessário definir o que é uma rede. De forma sucinta, é um sistema resul-tante da ligação de muitos sistemas conectados uns aos outros que permite compartilhar recursos entre eles.

Figura 2.10: Centralizada vs Descentralizada vs Redes Distribuídas

A maneira como estes sistemas estão ligados entre si é que pode diferir (Figura2.10). Existem tipos diferentes de rede como as centralizadas, as descentralizadas e as completamente distribuí-das.

• Centralizada

Como sistematizado na Figura 2.10, nesta rede, e como o nome indica, há um elemento central, chamado de dono. O proprietário da rede centralizada é o ponto de contacto de todos os outros sistemas, responsável pela partilha de todas as informações e o único que possui cópia das transações. Precisamente por ser o único, com uma cópia dos recursos, é que qualquer pedido de acesso leva a um delay significativo. Sendo que o ponto central das operações é também considerado o único ponto de falha.

• Descentralizada

Em contraste com uma rede centralizada, uma rede descentralizada apresenta vários propri-etários. Estes proprietários possuem todos uma cópia dos recursos o que elimina o problema do ponto único de falha.

Com vários proprietários, se um falhar não compromete a rede toda, uma vez que a infor-mação pode ser acedida a partir dos outros nós.

(43)

2.6 Tipos de Blockchain 23

• Distribuída Uma rede distribuída é uma rede descentralizada ao extremo. Este tipo de rede extrema evita a centralização por completo. A ideia principal por trás deste tipo de rede é a de que todos têm acesso e todos têm um acesso igual [16].

Atualmente as duas redes mais conhecidas e utilizadas são as públicas e as privadas. Muitas das vezes estes dois tipos de redes são confundidos devido a algumas semelhanças, tais como:

• São redes peer-to-peer descentralizadas onde cada participante possui uma réplica de um ledgercomposto por todas as transações compartilhadas;

• Mantêm as réplicas todas sincronizadas por meio de algoritmos de consenso;

• Ambos garantem a imutabilidade do ledger, independentemente das intenções de cada par-ticipante.

2.6.1 Blockchain Público

Como o nome indica, um blockchain público é inteiramente aberto para todos os participantes e possíveis interessados, uma vez que:

• Ninguém necessita de ter e/ou de pedir permissão para participar;

• Todos têm o direito de fazer download do código e correr em qualquer nó público no seu dispositivo pessoal;

• Todos têm o poder de verificar o seu status atual e de decidir se querem, ou não, adicionar blocos à cadeia.

Vantagens

• Os servidores não necessitam de manutenção;

• Protegem os utilizadores dos developers, na medida em que estabelece diversas ações que nem os developers têm permissão;

• Não têm necessidade de verificação por parte de terceiros [17].

Por outro lado, tem como inconvenientes a necessidade de um grande poder computacional e o elevado consumo de energia elétrica.

Atualmente, a rede pública de blockchain mais conhecida é o Bitcoin mas existem outras como o Monero [18], Ethereum [19], Dash [20] e Dogecoin [21].

(44)

2.6.2 Blockchain Privado

Em contraste com um blockchain público, num blockchain privado as permissões de escrita estão atribuídas a uma organização. As permissões de leitura podem ser públicas ou restritas a certos participantes.

Vantagens

• Quem comanda o blockchain pode a qualquer altura reverter transações, modificar saldos, alterar regras, etc;

• Os validadores são conhecidos;

• As transações são mais baratas, uma vez que apenas precisam ser verificadas por alguns nós que podem ser confiáveis, o que possibilita um processamento elevado. Não têm necessi-dade de ser verificados por milhares de nós;

• Maior privacidade dado que as permissões de leitura são restritas; • Facilidade em manipular documentos.

Por outro lado, o risco de ocorrer uma quebra na segurança é muito maior. A Multichain [22] e MONAX[23] são dois exemplos de redes de blockchain privadas.

2.6.3 Blockchain Federado/Consórcio

Neste tipo de redes o processo de consenso é, como o nome indica, através de um consórcio. Por exemplo, um conjunto de dez instituições bancárias, em que cada uma opera um nó e das quais seis devem assinar cada bloco para que este seja validado.

Relativamente ao direito de leitura este pode ser público ou restrito para participantes.

Vantagens

• Custos de transação reduzidos; • Reduz a redundância de dados;

• Simplifica o manuseamento de documentos legais e elimina os mecanismos de conformi-dade manuais [17].

Atualmente, a R3 (bancos) [24] e EWF (Energia) [25] são duas empresas que usam blockchains de consórcio.

(45)

2.7 Blockchains vs Centralized Databases 25

Público Privado Consórcio/Federada

Gestão da Rede Descentralizada Centralizada Híbrido

(Múltiplas organizações)

Acesso Qualquer utilizador

(não necessita permissão) Apenas para membros

Utilizadores qualificados através de aprovação

Segurança Mecanismos de consenso

Participantes pré-aprovados Consenso em várias partes

Participantes pré-aprovados Consenso em várias partes Velocidade de

Transação Lenta Leve e rápida Leve e rápido

Número de

Utilizadores Milhões Dezenas a poucas centenas Centenas de milhares

Benefícios

Elevada segurança (transações verificadas

por toda a rede) Transparência

(transações públicas e anónimas)

Eficiente

(verificação realizada apenas pelo proprietário da rede)

Privada

Eficiente Privado

(o acesso a escrita e leitura é controlado) Não há consolidação do poder de controle Desafios Ineficiente (todos os nós têm de verificar as transações) Consolidação do poder Difícil colaborar com diferentes organizações

Tabela 2.5: Blockchain Público vs Privado vs Consórcio/Federado

2.7

Blockchains vs Centralized Databases

Tabela 2.6: Permissionless vs Permissioned vs Central Database [4]

Como referido, a implementação e a manutenção de soluções baseadas em blockchain apre-sentam, ainda, um custo e um risco elevado, tanto ao nível humano como ao nível computacional. O facto de o blockchain armazenar muitas cópias ao longo da rede e de o número de pedidos processados ser elevado faz com que o desempenho seja menor e mais lento.

A decisão de escolha de soluções baseadas em blockchain, nem sempre é fácil, atendendo a outras opções existentes. Assim, a escolha requer uma análise cuidada dos requisitos do sistema.

A escolha que muitas das empresas fazem quando surge esta questão é a de adotar os dois tipos, isto é, equilibrar os problemas de desempenho, aproveitando os benefícios do blockchain,

(46)

não armazenando todos os registos de dados no blockchain, mas apenas a hash do registo. Isso serve para determinar, com um alto nível de confiança, se os dados foram comprometidos.

Uma decisão precipitada pode levar ao risco de grandes perdas de dinheiro. Existem diversos fluxogramas nos quais algumas empresas de consultadoria se baseiam, entre eles, o mais utilizado, é o do Departamento de Segurança Interna dos Estados Unidos (DHS) - Figura2.11).

(47)

2.8 Blockchain Frameworks 27

2.8

Blockchain Frameworks

Tendo em conta os diversos trabalhos desenvolvidos nesta área, não é necessário, na maioria dos casos, construir um blockchain de raiz. Esta secção serve para entrar em detalhe e explicar alguns dos frameworks mais importantes e a sua aplicabilidade em casos específicos.

Ethereum

A Ethereum é uma plataforma descentralizada capaz de executar smart contract e aplicações descentralizadas (DApps), tendo por base a tecnologia blockchain. É uma plataforma que imple-menta uma linguagem de programação Turing-complete que por sua vez permite a existência de código armazenado na norma de "contratos"[27].

Hyperledger

O Hyperladger é fruto de um projeto iniciado em 2005 pela Linux Fundation e é nem mais nem menos que um hub para o desenvolvimento de blockchain industrial em código aberto [28].

Atualmente este projeto colaborativo abrange mais de 100 membros dos mais diferentes seto-res de atividade:

• Tecnologia da mobilidade (Airbus e Daimler) • Empresas IT (SAP, IBM, Fujitsu, Intel e Samsung)

• Instituições financeiras (American Express, BBVA e BNP Paribas)

• Startups especializadas em blockchain (Blockstream, Factom e Consensys)

Atualmente a estratégia do Hyperledger passa por promover uma vasta gama de tecnologias de negócios, framework, bibliotecas, interfaces e aplicativos. A Hyperleger é o anfitrião dos seguintes projetos:

• Sawtooth Hyperledger (conjunto modelar desenvolvido pela Intel que usa um novo algo-ritmo de consenso chamado Proof of Elapsed Time (PoET));

• Hyperledger Iroha (projeto criado em parceria com algumas empresas japonesas para faci-litar a incorporação de frameworks num blockchain);

• Hyperledger Fabric (projeto liderado pela IBM. Trata-se de uma implementação plug and playpara o desenvolvimento de blockchain a grandes escalas com uma grande flexibilidade de permissões);

(48)

• Hyperledger Explorer (desenhado para facilitar a criação de aplicações Web user-friendly); • Hyperledger Indy (coleção de ferramentas, bibliotecas e outros componentes para

identida-des digitais baseadas em blockchain).

Corda

Corda é uma plataforma blockchain de código aberto usada para registar, gerir e sincronizar contratos e transferir valor. A nova proposta da Corda baseia-se na utilização de um consenso plausível por notários conectados que fornecem garantias independentemente do algoritmo que usem [29].

ShipChain

Embora seja conhecida pelos benefícios no Supply Chain Management, esta plataforma é pro-jetada como uma permissioned Ethereum side-chain. É também apresentada como uma plataforma específica para redes de transporte marítimo [30].

BigChainDB

BigchainDBé um banco de dados descentralizados open-source que se destina à transição digital de ativos. Possui grandes velocidades de transação comparativamente a outros blockchains contemporâneos por possuir o seu próprio algoritmo de consenso [31].

Modum

A Modum oferece diversas soluções de última geração para a inteligência e para a Supply Chainatravés da criação de ecossistemas digitais com tecnologia de sensores IoT e blockchain, para diversas aplicações. Por exemplo, sensores de temperatura e de humidade para garantir certi-ficações governamentais nas empresas farmacêuticas ou alimentares [32].

IOTA

IOTA é uma plataforma blockchain que tem como objetivo principal a criação de um ecossis-tema seguro e descentralizado para a Internet das Coisas (IoT). Esta plataforma parte do princípio de que, à medida que mais dispositivos comuniquem entre si, mais rápido as transações são reali-zadas entre os mesmos, dado que, em vez de haver uma cadeia de blocos relacionada aos blocos

(49)

2.8 Blockchain Frameworks 29

anterior e seguinte, há um sistema que funciona como uma grade de blocos inter-relacionados [33].

Quorum

O Quorum é uma versão do Ethereum mais focada no ambiente empresarial. O objetivo do Quorom é fazer o mínimo de modificações possíveis no cliente Ethereum para facilitar a sincroni-zação de novas versões. O Quorum foi também concebido para qualquer aplicativo que exija um processamento de altas velocidades e de alto rendimento de transações particulares dentro de um grupo permissioned de participantes conhecidos [34].

Ripple

A plataforma Ripple serve para os utilizadores enviarem dinheiro, usando o poder do block-chain. A Ripple, alega que: "connects banks, payment providers, digital asset exchanges and corporates via RippleNet to provide one frictionless experience to send money globally"[35]. A empresa afirma também que possuem o melhor algoritmo de consenso (Ripple Consensus Algo-rithm) que lhe permite ser a melhor plataforma blockchain orientada a ativos financeiros e a que apresenta as melhores velocidades de transação [36].

(50)
(51)

Capítulo 3

Casos de Estudo por Setores

A tecnologia blockchain apresenta, como referido no capítulo anterior, diversas vantagens de utilização e, como tal, pode ser aplicada em diversos negócios, independentemente da dimensão, do objetivo, do setor e dos tipos de processos presentes.

Nas seguintes secções são abordadas algumas das empresas analisadas, categorizadas nos se-guintes setores:

1. Setor Agricultura

2. Setor Automóvel

3. Setor da Administração Pública 4. Setor da Educação

5. Setor da Saúde

6. Setor dos Media 7. Setor Energético

8. Setor Financeiro 9. Setor Gaming

10. Registo de Propriedade

11. Filantropia e Ajuda Humanitária

(52)

3.1

Setor Agricultura

Apesar da tecnologia blockchain ser considerada uma tecnologia emergente, tem-se verificado um significativo aumento de investimentos em blockchain.

A aplicação dessa tecnologia neste setor pode garantir a rastreabilidade e também melhorar a transparência e a eficiência dos agentes em toda a cadeia, desde os agricultores até aos consumi-dores.

Atualmente, a maioria das empresas recorre a uma base de dados ou a material impresso para armazenar e gerir todos os dados relacionados com a segurança, sustentabilidade e burocracias [37]. Esta estrutura resulta em custos operacionais muito elevados, alto potencial para corrupção ou erro (humano e/ou tecnológicos).

A WHO estima que uma em cada dez pessoas adoece todos os anos devido ao consumo de alimentos contaminados [38].

Existem diversos casos de utilização desta tecnologia neste setor, tal como existem empresas específicas viradas para cada objetivo. O foco da maioria das empresas nesta área pode ser dividido em:

• Rastreabilidade (ex: Grass Roots and ripe.io)

• Otimização da Food Supply Chain (ex: Agrichain)

• Transações (ex: Agridigital and AdriLedger)

• Seguro de colheitas (ex: ETHERISC and WorldCover)

Rastreabilidade

- Ajuda a diminuir o desperdício alimentar

- Disponibiliza toda a informação desde a produção ao transporte -Melhora a relação consumidor/produtor

Otimização da Food Supply Chain

- Permite uma melhor otimização das quantidades e dos preços - Possibilita a encomenda de quantidades mais racionais - Facilita a rapidez na troca de informações

Transações - Permite comodidade e rapidez nos pagamentos - Implica menos taxas de transação

Seguro de Colheitas

- Regista as partes envolvidas, o preço, a data, a localização e a qualidade - Possibilita a segurança de documentos

- Aumenta a visibilidade da supply chain

(53)

3.1 Setor Agricultura 33

AgriDigital

No negócio relacionado com a agricultura, na maioria dos casos, os agricultores assumem o risco de entregar (vender) as suas colheitas a um comprador e esperar algumas semanas para que o pagamento seja realizado.

A AgriDigital é uma empresa australiana com uma plataforma de gestão de mercadorias base-ada na nuvem, que conecta agricultores e participantes da cadeia de valor. Esta plataforma é capaz de criar um ativo programável (token) para representar uma mercadoria física desde um produtor até um comprador. Cada transação realizada nesta plataforma é rastreada de forma imutável com todos os dados referentes à mesma (localização, custo, tempo, etc.) anexados a esse token, e os pagamentos que ocorrem em tempo real por meio de smart contracts.

Nesta plataforma quando um agricultor entrega os seus bens a um comprador ocorre de forma quase instantânea uma "troca atómica". O token digital representa os bens transferidos no exato momento em que o pagamento é realizado.

Grass Roots Cooperative

A Grass Roots, cooperativa agrícola sediada em Arkansas (USA), tem como objetivo e/ou compromisso melhorar as ligações diretas entre produtores e consumidores, bem como aumentar a transparência e a rastreabilidade.

O objetivo passa por dar ao consumidor de produtos alimentares da Grass Roots a experiência mais personalizada e transparente possível.

Em parceria com a empresa Provenance e com o apoio da Heifer USA lançou no final de 2017 um aplicativo que permitia a qualquer utilizador comum, fotografando um código barras, rastrear um pacote de frango embalado. O consumidor teria assim a certeza de que o produto não tinha sido falsificado ou adulterado.

(54)

3.2

Setor Automóvel

Atualmente a industria automóvel enfrenta grandes desafios, desde as recalls em massa às falsificações de materiais. O blockchain pode ter impacto na indústria automóvel em diversos sentidos:

• Otimização de recall dos veículos: Dado que todas as partes do veículos são vinculadas a um número VIN (Vehicle Identification Number) exclusivo, apenas os veículos com essas partes específicas em estado defeituoso são recuperados (ex: AMO).

• Loyalty-Based Microtransactions: Registam todas as compras e informações do cliente que depois lhes permite criar e distribuir materiais de marketing personalizados para um cliente específico (ex: loyyal e a DAV).

• Transferência de Propriedade: Aumenta a velocidade e a transparência do processo de transação de veículo (ex: BIGCHAIN).

• Seguros: Automatiza os processos de criação ou renovação de seguro, bem como todas as informações do motorista, desde acidentes, multas e distância percorrida (ex: GEM e a One Car Payment).

• Financiamento automático: Independentemente de o pedido de compra ser de uma em-presa, de uma pessoa individual ou de um dealer o processo é praticamente automático, desde a transferência de dinheiro até ao preenchimento de todos os dados para que o negó-cio seja efetuado (ex: Mahindra).

• Supply Chain Management: Consiste em rastrear todo o processo dos materiais desde a compra das matérias primas até ao fabrico do carro. Isto permite garantir que não haja materiais falsificados no meio do processo (ex: Car Vertical e a Toyota).

(55)

3.2 Setor Automóvel 35

Car Vertical

A Car Vertical é uma startup que tem como objetivo principal resolver o problema de a trans-parência sobre o histórico dos veículos ser quase nula [39].

Quando uma pessoa compra um veículo novo, considerando que as marcas são totalmente fiéis e vendem produtos 100% fidedignos, a pessoa sabe exatamente o que está a comprar. Que nada foi danificado, partido ou reparado.

O mesmo não acontece com a pessoa que compra um veículo que teve 2, 3 ou 5 donos. Esse novo dono nunca terá acesso ao histórico do seu “novo” veículo, nem, assim, saber se o número de quilómetros anotado é o real, se tem peças substituídas ou reparadas de acidentes, se tem peças falsificadas ou ainda se possui ou não todos os airbags. Mesmo que as companhias de seguros tenham todos, ou quase todos, os acidentes que o veículo sofreu esses dados nunca são fornecidos ao novo comprador.

Este é um dos problemas que a Car Vertical se compromete a combater. Possuindo 15000 ETH, a empresa criou uma plataforma onde a história de cada veículo é registada no blockchain e onde ninguém consegue manipular ou falsificar os dados. A empresa afirma também que vai recolher o maior número de informações sobre o maior número possível de veículos para que qualquer novo utilizador consiga, numa situação futura, aceder ao histórico do seu veículo. Outra funcionalidade presente na plataforma da Car Vertical é a procura de carros roubados [40].

AMO Fundation

A AMO é uma plataforma que recolhe, processa e analisa toda a informação de carros e dos seus respetivos proprietários [41]. A empresa propõe ao mercado um ecossistema onde todas as informações são encriptadas e posteriormente transacionadas, com o consentimento dos utilizado-res, para as grandes empresas do setor.

Isto implica que todas a informações dos utilizadores, fabricantes e prestadores de serviços relevantes estejam sob controlo centralizado de empresas específicas.

Esta foi uma das primeiras empresas a propor a utilização de VIN’s, Vehicle Identification Number, para recalls direcionados e para que tanto os utilizadores como as marcas saibam as peças que foram trocadas pelos proprietários [42].

Referências

Documentos relacionados

Para entender o supermercado como possível espaço de exercício cidadão, ainda, é importante retomar alguns pontos tratados anteriormente: (a) as compras entendidas como

Os caçadores tinham estendido uma grossa corda ligada a uma rede, no caminho por onde o leão costumava passar, de maneira que, quando o leão tropeçou na corda, a rede caiu-- lhe em

Quero ir com o avô Markus buscar a Boneca-Mais-Linda-do-Mundo, quero andar de trenó, comer maçãs assadas e pão escuro com geleia (17) de framboesa (18).... – Porque é tão

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Results suggest that the anthocyanin-based PSP extract is nutritious besides serving as a natural colorant, which is a positive implication for the wide use of purple sweet potato

Of these priority areas, 1123 are already protected (as protected area sites or as indigenous lands), and another 11 are areas that do not have a protection status. The

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem