• Nenhum resultado encontrado

Estudo sobre Blockchain e Tangle

N/A
N/A
Protected

Academic year: 2021

Share "Estudo sobre Blockchain e Tangle"

Copied!
85
0
0

Texto

(1)

DEPARTAMENTO DE ENGENHARIA DE MATERIAIS

ARTHUR BOTELHO ROMERO

Estudo sobre Blockchain e Tangle

Orientador: Prof. Dr. Viktor Pastoukhov

LORENA 2018

(2)
(3)

Estudo sobre Blockchain e Tangle

Trabalho de conclusão de curso apresentado ao Departamento de Engenharia de Materiais da Es-cola de Engenharia de Lorena, como requisito par-cial para obtenção do título de Bacharel em Enge-nharia Física.

Orientador: Prof. Dr. Viktor Pastoukhov

LORENA 2018

(4)
(5)

À Poliana, por todo amor, carinho e paciência, me ajudando e impulsionando no decorrer de minha caminhada.

À minha família, pelo suporte, incentivo e liberdade.

Aos amigos Carlos, Mafu, Luciano, Paulo, Pedro, Ian, Hugo e Victor, pelo companhei-rismo, dentro e fora da faculdade, ao longo de toda a graduação.

Aos colegas de Engenharia Física pela parceria nas disciplinas e pelo compartilhamento da responsabilidade de sermos a primeira turma de Engenharia Física da USP.

Aos Professores Durval, Jefferson, Rosa e Shigue pelos ricos ensinamentos nas diversas disciplinas.

Ao meu orientador Professor Viktor pela ajuda e orientação ao longo do TCC.

Aos colegas da Easynvest pelo acolhimento, ensinamentos e oportunidade de me desen-volver ao longo do estágio.

Enfim, agradeço a todos que contribuiram de alguma forma para a conclusão desta etapa e para o meu aprimoramento como pessoa e como profissional.

(6)
(7)
(8)
(9)

ROMERO, B. A. Estudo sobre Blockchain e Tangle. 2018. 73 p. Monografia (Trabalho de Graduação) - Escola de Engenharia de Lorena, Universidade de São Paulo, Lorena, 2018.

O objetivo desse trabalho é ser um estudo sobre os principais conceitos técnicos e teóricos relacionados a duas das tecnologias mais importantes nas criptomoedas atuais: Blockchain e Tangle. No âmbito do Blockchain, foram introduzidos e explicados vários tipos de algoritmos de consenso, funções hash e seus desdobramentos, e os processos de mineração das principais criptomoedas, como Bitcoin, Litecoin e Ethereum, como formas seguras e descentralizadas para transações financeiras. Foi também aderido o funcionamento de Smart contracts e DApps, assim como exemplos práticos de sua utilização. Observou-se que enquanto o Bitcoin e Litecoin foram criados como alternativa ao dinheiro comum e são meios de transação de pagamento e armazenamento de valor, o Ethereum foi desenvolvido como uma plataforma que facilita con-tratos e aplicativos peer-to-peer via seu próprio veículo monetário. No âmbito do Tangle, foi introduzido o conceito de Directed acyclic graph (DAG) e seu funcionamento para realização de micro-pagamentos com a criptomoeda IOTA. A tecnologia DAG permite recursos interessantes, como transações de custo zero e escalabilidade infinita que Blockchain ainda não pode fazer. Nesse sentido num contexto de Internet of Things (IoT) e levando em consideração a lei de Mo-ore, foi feita uma comparação entre os impactos que o desenvolvimento de computação quântica teria no Blockchain (do Bitcoin) e no Tangle (do IOTA). O Tangle fornece ao IOTA muito mais proteção a um ataque com processamento de computador quântico do que o Blockchain fornece ao Bitcoin, sendo portanto, mais adequado para tal cenário. Entretanto, Tangle ainda não foi executado de uma forma não otimizada para esse tipo de processo, o que gera dúvidas sobre sua viabilidade. Concluiu-se que embora grande parte das criptomoedas, atualmente, sejam baseadas no Blockchain, Tangle se apresenta como um concorrente interessante, principalmente na esfera do IoT, sendo que ele foi projetado para isso, e que as criptomoedas, de uma forma geral, se apresentam como percursoras de uma nova era na tecnologia.

(10)
(11)

ROMERO, B. A. Estudo sobre Blockchain e Tangle. 2018. 73 p. Monografia (Trabalho de Graduação) - Escola de Engenharia de Lorena, Universidade de São Paulo, Lorena, 2018.

This work’s aim is to be a study on the main technical and theoretical concepts related to two of the most important technologies in the current cryptocurrencies: Blockchain and Tangle. Within Blockchain, various types of consensus algorithms, hash functions and their consequences, and the mining processes of the main cryptocurrencies, such as Bitcoin, Litecoin and Ethereum, have been introduced and explained as secure and decentralized means of exchange. The use of Smart contracts and DApps, as well as practical examples of its use, were also adhered to. It was noted that while Bitcoin and Litecoin were created as an alternative to common money and are means of payment transaction and value storage, Ethereum was developed as a platform that facilitates peer-to-peer contracts and applications via its own vehicle monetary. In the context of Tangle, were introduced the concept of Directed Acyclic Graph (DAG) and its functionality to carry out micropayments with the IOTA cryptocurrency. DAG technology enables interesting features such as zero cost transactions and infinite scalability that Blockchain still can not do. In that sense, in an Internet of Things (IoT) context and considering Moore’s law, a comparison was made between the impacts that the development of quantum computing would have on Bitcoin’s Blockchain and IOTA’s Tangle. Tangle provides IOTA with much more protection from an attack with quantum computer processing than Blockchain provides Bitcoin, and is, therefore, more suitable for such scenario. However, Tangle has not yet run in a non-optimized way for this type of process, which raises doubts about its viability. In conclusion, although, currently, most of the cryptocurrencies are based on Blockchain, Tangle presents itself as an interesting competitor, mainly in the sphere of IoT, and it was designed for, and that the cryptocurrencies, in general, might be at the forefront of a new era in technology.

(12)
(13)

IoT Internet of Things

PoW Proof of Work

PoS Proof of Stake

PoC Proof of Capacity SHA Secure Hash Algorithm CPU Central Processing Unit GPU Graphical Processing Unit

ASIC Application Specific Integrated Circuit EVM Ethereum Virtual Machine

P2P Peer-to-Peer

RFID Radio-frequency identification

HD Hard Drive

ICO Initial Coin Offering IPO Initial Public Offering

IDE Integrated Development Environment ABI Application Binary Interface

MCMC Markov Chain Monte Carlo TPS Transactions per Second

(14)
(15)

Figura 1 – Ilustração de uma rede usual centralizada, baseada em servidores. . . 16

Figura 2 – Ilustração de um sistema Peer-to-peer sem uma infraestrutura central . . . . 16

Figura 3 – Representação da função hash SHA-256 (Secure Hashing Algorithm 256) . . 17

Figura 4 – Ilustração de uma linked lists. . . 19

Figura 5 – Ilustração de uma Merkle tree . . . 20

Figura 6 – Ilustração das três funções de uma Assinatura Digital . . . 22

Figura 7 – Ilustração de uma Directed acyclic graph . . . 25

Figura 8 – Representação da Lei de Moore . . . 26

Figura 9 – Representação da Bloch sphere. . . 27

Figura 10 – Ilustraç¯ao do fluxo simplificado de compilação e implantação de um Smart Contract . . . 47

Figura 11 – Exemplo de script de Smart Contract . . . 48

Figura 12 – Ilustração de um Dapp que usa um Blockchain com Smart Contracts. . . . 52

Figura 13 – Directed acyclic graph mostrando a aprovação direta e indireta das transa-ções Tangle. DAG com pesos antes e depois de uma transação X. As caixas representam transações, o número no canto inferior direito de cada caixa representa o seu peso, e o número em negrito representa o peso acumulado . 54 Figura 14 – Directed acyclic graph mostrando a Genesis. DAG com pesos próprios atribuídos a cada site e pontuações calculadas para os sites A e C. . . 55

Figura 15 – Ilustração de uma unweighted Tip Selection Algorithm. . . 57

Figura 16 – Ilustração de uma Lazy Tip . . . 57

Figura 17 – Ilustração do peso acumulado no Tangle. . . 58

Figura 18 – Ilustração mostrando como o peso acumulado é usado no walker aleatório para desencorajar Lazy Tips . . . 59

Figura 19 – Ilustração de uma caminhada super-ponderada no Tangle. . . 59

Figura 20 – Ilustração de uma caminhada aleatória ponderada: cada transação azul mos-tra seu peso acumulado e sua probabilidade de ser escolhida como o próximo passo na caminhada. . . 60

Figura 21 – Ilustração de transação correta no IOTA . . . 61

Figura 22 – Ilustração de transação incorreta no IOTA . . . 61

Figura 23 – Ilustração de peso acumulado e confiabilidade no Tangle . . . 62

Figura 24 – Representação dos blocos do Bitcoin por Mining Pools. . . 64

Figura 25 – Diagrama esquemático mostrando blocos roxos como blocos órfãos, en-quanto os blocos pretos fazem parte do Blockchain validado. . . 66

(16)
(17)

Tabela 1 – Projeção do número de Bitcoins ao longo do tempo . . . 39

Tabela 2 – Criptomoedas que possuem número finito de moedas . . . 39

Tabela 3 – Comparação entre Litecoin e Bitcoin . . . 41

Tabela 4 – Tabela mostrando exemplos de DApps. . . 53

Tabela 5 – Tabela mostrando a representação dos principais blocos do Bitcoin no dia 29/04/2018. . . 65

(18)
(19)

1 INTRODUÇÃO . . . 11

1.1 Breve Introdução Histórica . . . 12

1.1.1 Dinheiro . . . 12 1.1.2 Ouro . . . 13 1.1.3 Papel moeda . . . 14 1.2 Criptomoedas . . . 15 1.3 Objetivos . . . 15 2 REVISÃO BIBLIOGRÁFICA . . . 16 2.1 Peer-to-peer . . . 16 2.2 Funções Hash . . . 17

2.3 Hashinge data structures . . . 18

2.3.1 Nonce . . . 18

2.4 Merkle tree . . . 19

2.5 Criptografia de chave pública . . . 20

2.6 Assinatura Digital . . . 21

2.7 O processo de mineração . . . 22

2.8 Consenso Distribuído . . . 23

2.8.1 Internet of Things . . . 24

2.9 DAG (Directed acyclic graph) . . . 25

2.10 Moore’s Law . . . 25

2.11 Computação Quântica . . . 26

2.11.1 Bits e qubits . . . 26

2.11.2 Sobreposição . . . 27

2.11.3 Emaranhamento . . . 28

2.12 Principais Criptomoedas da atualidade . . . 28

2.12.1 Bitcoin . . . 28 2.12.2 Ethereum . . . 28 2.12.3 Litecoin . . . 29 2.12.4 IOTA . . . 29 3 METODOLOGIA . . . 31 4 DESENVOLVIMENTO . . . 32 4.1 Funcionamento da Blockchain . . . 32 4.2 Fundamentos da Blockchain . . . 33 4.2.1 Sistema descentralizado . . . 34

(20)

4.2.2 Livro de registro público . . . 35

4.2.3 Ambiente sem fraude e autenticidade do Hash . . . 36

4.2.4 Mining . . . 36

4.3 Comparação entre Bitcoin e Ouro . . . 37

4.3.1 Capacidade de mineração . . . 38

4.3.2 Oferta finita . . . 38

4.3.2.1 Criptomoeda com suprimento finito . . . 38

4.3.3 Vinculação com Estado . . . 39

4.3.4 Diferenças entre o ouro e o Bitcoin . . . 40

4.4 Litecoin e mineração . . . 40

4.4.1 Principais algoritmos de mineração . . . 41

4.4.1.1 Algoritmo SHA-256 . . . 41

4.4.1.2 Algoritmo Scrypt . . . 43

4.4.1.3 Algoritmo X11 . . . 44

4.4.1.4 Algoritmo Cryptonight . . . 44

4.4.1.5 Algoritmo Dagger Hashimoto – Ethash . . . 45

4.5 Ethereum e ampliação do Blockchain . . . 45

4.5.1 Smart Contracts . . . 45

4.5.2 Funcionamento de Smart Contracts . . . 46

4.5.2.1 Pagamento de Smart Contracts . . . 47

4.5.2.2 Aplicações de Smart Contracts . . . 48

4.5.2.3 Bitnation . . . 50

4.5.3 Distributed Applications(DApps) . . . 50

4.6 Funcionamento da Tangle . . . 53

4.6.1 Peso de transações . . . 56

4.6.2 Tip Selection Algorithm . . . 56

4.7 Gasto duplo no Tangle . . . 60

4.8 Consenso e confirmação por confiabilidade no Tangle . . . 62

4.9 Vantagens do Tangle . . . 63

4.9.1 Descentralização do controle . . . 64

4.9.1.1 Ataque de 51% do controle . . . 65

4.9.2 Capacidade de conduzir micro-pagamentos . . . 66

4.9.3 Criptografia resistente à computação quântica . . . 67

4.10 IOTA e consequências do desenvolvimento da computação quântica . . . 68

5 CONCLUSÃO . . . 69

(21)

1 INTRODUÇÃO

Na perspectiva da escola austríaca o dinheiro pode ser simplificado a uma única função: A de servir como meio de troca (HAMEL, 2011). Assim, durante milhares de anos, a utilização do ouro como principal ativo financeiro deveu-se as suas características intrínsecas, que perduram até os dias de hoje, e ao consenso social de atribuir valor ao ouro (SANCHEZ, 2012).

Com o desenvolvimento tecnológico e fortificação das entidades governamentais, a impressão de dinheiro próprio dos estados foi estabelecido como método mais conveniente de distribuição de riquezas e controle econômico. Entretanto, os papeis moedas criados e manipulados pelos estados se tornaram responsáveis por fracassos econômicos e ineficiência operacional num mundo globalizado onde a internet está cada vez mais presente.

Logo após a grande crise financeira de 2008, quando havia a ameaça de um colapso no sistema financeiro e das moedas em circulação, surgiu um artigo em 2009 chamado "Bitcoin: A peer-to-peer Electronic Cash System"do autor Satoshi Nakamoto, um pseudônimo criado por um ou mais indivíduos. Nesse artigo é descrito um protocolo de criptografia que controla a criação e administração de um ativo digital chamado Bitcoin um sistema de dinheiro eletrônico peer-to-peer "baseado em prova criptográfica ao invés de confiança, permitindo que duas partes dispostas façam transações diretamente entre si sem a necessidade de um terceiro (NAKAMOTO, 2008). Esse protocolo baseia-se num mecanismo, proposto no artigo, chamado Blockchain que pode ser expandido para diversas aplicações. Atualmente, além do Bitcoin e suas derivadas, diversas outras criptomoedas, como Ethereum, Litecoin, Monero, Dash, utilizam a tecnologia de Blockchain.

Apesar da tecnologia do Blockchain estar crescendo consideravelmente nos últimos anos, provando que possui valor no mundo real, existem algumas inconveniências que previnem que Blockchain seja usado como uma plataforma genérica para criptomoedas. Duas importantes inconveniências seriam o conceito de taxa de transação e a diferenciação entre os membros da rede Blockchain, fazendo com que o sistema dependa da capacidade de processamento dos mineradores. Nesse contexto, desde 2014, tem sido desenvolvida um nova tecnologia para criar um ecossistema financeiro seguro e descentralizado para a Internet das coisas (IoT) que não dependa de mineradores. O projeto da IOTA parte do princípio que, à medida que mais e mais dispositivos poderão se comunicar entre si, diferentes tipos de pagamentos começarão a surgir em algum momento. Nesse sentido, o projeto propõe uma arquitetura descentralizada para tratar de micro-pagamentos e diferentemente de Blockchain, o IOTA usa "Tangle", um grafo acíclico dirigido (DAG) (POPOV, 2017). O escopo dessa monografia é analisar as funcionalidades teórica das principais tecnologias para criptomoedas atuais, sendo elas Blockchain e Tangle, e verificar a viabilidade das duas para algumas funcionalidades.

(22)

12

1.1 Breve Introdução Histórica 1.1.1 Dinheiro

Classicamente, o dinheiro pode ser definido através de sua funcionalidade por três princi-pais funções: é um meio de troca, é uma unidade de conta, e é uma forma de armazenamento de valor (HAMEL, 2011). Sendo as últimas duas secundárias com relação a primeira, pois segundo Mises (MISES, 1953) elas surgem como consequência dele ser usado como um meio de troca.

• Meio de troca: A função mais importante do dinheiro é como um meio de troca para facilitar as transações. Sem dinheiro, todas as transações deveriam ser conduzidas por troca, o que envolve a troca direta de um bem ou serviço para outro. A dificuldade com um sistema de troca é que, para se obter um bem ou serviço específico de um fornecedor, é preciso possuir um bem ou serviço de igual valor, que o fornecedor também deseja. Em outras palavras, em um sistema de troca, a troca só pode ocorrer se houver uma dupla coincidência de desejos entre duas partes de transações. A probabilidade de uma dupla coincidência de desejos, no entanto, é pequena e dificulta a troca de bens e serviços. O dinheiro efetivamente elimina a dupla coincidência do problema de desejos, servindo como meio de troca que é aceito em todas as transações, por todas as partes, independentemente de desejarem os bens e serviços uns dos outros (MISES, 1953). • Reserva de valor: Para ser um meio de troca, o dinheiro deve ter seu valor ao longo do

tempo; isto é, deve ser uma loja de valor. Se o dinheiro não pudesse ser armazenado por algum período de tempo e ainda permanecer valioso em troca, não resolveria o problema da dupla coincidência de desejos e, portanto, não seria adotado como meio de troca. Como uma reserva de valor, o dinheiro não é único; existem muitas outras formas de reservar valor, como terra, obras de arte, etc. O dinheiro pode nem ser a melhor entre elas pelo fato de se deprecia com a inflação. No entanto, o dinheiro é mais líquido do que a maioria das outras reservas de valor porque, como meio de troca, é prontamente aceito em todos os lugares. Além disso, o dinheiro é uma reserva de valor facilmente transportada o que o torna mais conveniente de ser utilizado (MISES, 1953).

• Unidade de conta: O dinheiro também funciona como uma unidade de conta, propor-cionando uma medida comum do valor dos bens e serviços que estão sendo trocados. Conhecer o valor ou o preço de um bem, em termos de dinheiro, permite tanto ao fornece-dor quanto ao comprafornece-dor do bem tomar decisões sobre quanto do bom fornecer e quanto bom comprar (MISES, 1953).

De acordo com Mises, as "funções secundárias"do dinheiro são na verdade apenas instâncias de sua função primária e única: Ser usado como meio de troca, possibilitando a troca indireta.

(23)

Nesse sentido, a utilização como reserva de valor não é necessariamente uma função separada, como poderia ser entendido, porque formas de se conservar o valor de um ativo, como transações de crédito, são simplesmente trocas de bens presentes por bens futuros.

A transmissão de valor no espaço também não é uma função separada. Trocar um bem por dinheiro, a fim de trocar dinheiro por um outro bem é, novamente, simplesmente outro exemplo de aquisição de um bem via câmbio indireto que seria impossível adquirir via câmbio direto (MISES, 1953).

1.1.2 Ouro

O ouro sempre desempenhou um papel importante no sistema monetário internacional. Ele começou a ser usado como dinheiro há milhares de anos na Ásia Menor. Várias commodities foram usadas como dinheiro, sendo que tipicamente, aquele que perde o menor valor ao longo do tempo torna-se a forma aceita. Como, quimicamente, ouro é o metal mais resistente à corrosão, o padrão da espécie de ouro surgiu da ampla aceitação do ouro como moeda devido a suas características intrínsecas. Ele circulou como moeda em muitos países antes da introdução do papel-moeda. Uma vez que o papel-moeda foi introduzido, as moedas ainda mantiveram um vínculo explícito com o ouro, sendo possível a permuta com o ouro (GOLD, 2018).

No final do século XIX, muitas das principais moedas do mundo foram fixadas em ouro a um preço fixo , sob o "Padrão de Ouro"e isso persistiu em diferentes formas por cerca de cem anos. A maioria dos países abandonou o padrão ouro como base de seus sistemas monetários em algum momento do século XX, embora muitos detenham reservas substanciais de ouro (GOLD, 2018).

Algumas vantagens da utilização do ouro como moeda são descritas a seguir:

• O padrão ouro dificulta que os governos aumentem os preços através da expansão da oferta monetária. Sob o padrão ouro, a inflação significativa é rara, e a hiperinflação é essencialmente impossível, porque a oferta monetária só pode crescer na proporção em que a oferta de ouro aumenta (MISES INSTITUTE, 2011).

• O padrão-ouro oferece taxas de câmbio internacionais fixas entre os países participantes e, portanto, reduz a incerteza no comércio internacional (MISES INSTITUTE, 2011). • Um padrão ouro não permite alguns tipos de repressão financeira. A repressão financeira

atua como um mecanismo para transferir riqueza de credores para devedores, particu-larmente os governos que a praticam. A repressão financeira é mais bem sucedida na redução da dívida quando acompanhada de inflação e pode ser considerada uma forma de tributação (MISES INSTITUTE, 2011).

(24)

14

• A distribuição desigual dos depósitos de ouro torna o padrão ouro mais vantajoso para os países que produzem ouro. Em 2010, os maiores produtores de ouro, em ordem, foram a China, a Austrália, os EUA, a África do Sul e a Rússia, sendo que o país com os maiores depósitos de ouro sem minas é a Austrália (MAYER, 2010).

• Alguns economistas acreditam que o padrão ouro atua como um limite ao crescimento econômico. À medida que a capacidade produtiva de uma economia cresce, a oferta monetária também aumenta. Como um padrão ouro exige que o dinheiro seja lastreado no metal, a escassez do metal restringe a capacidade da economia de produzir mais capital e crescer (MAYER, 2010).

• A oferta monetária seria essencialmente determinada pela taxa de produção de ouro. Quando os estoques de ouro aumentam mais rapidamente do que a economia, há inflação e o inverso também é verdadeiro (MAYER, 2010).

1.1.3 Papel moeda

O papel moeda é uma moeda sem valor intrínseco que foi estabelecida como dinheiro, muitas vezes por regulamentação governamental. O papel moeda não tem valor de uso, e tem valor apenas porque o governo mantém seu valor, ou porque as partes envolvidas em troca concordam com seu valor. Foi introduzido como uma alternativa ao dinheiro de commodities e dinheiro representativo. O dinheiro das commodities é criado a partir de um bem, muitas vezes um metal precioso, como o ouro ou a prata, que tem usos que não são como um meio de troca.O primeiro uso de papel moeda foi registrado na China por volta de 1000 dC. Desde então, tem sido usado por vários países, geralmente simultaneamente com moedas de commodities. O papel moeda começou a dominar no século XX (GOLDBERG, 2005).

Segundo estudos realizados pelo DollarDaze.org, considerando 775 moedas que já existi-ram, é natural que as moedas se desvalorizem continuamente, sendo que 20 % delas fracassaram devido a hiperinflação, 21% foram destruídas por guerras, 12% destruídas por movimentos de independência, 24% foram monetariamente reformadas e apenas 23% ainda estão em circula-ção, contudo com fortes indícios de estarem trilhando o mesmo caminho das moedas que não deram certo. No momento, existem 177 moedas usadas no mundo. Nem todas as moedas são amplamente utilizadas e aceitas, como as várias notas da libra esterlina (GOLDBERG, 2005).

Excluindo as primeiras moedas de papel da China até o século 15 e a maioria das moedas de papel que existiam na China até 1935, existem 609 moedas que não estão mais em circulação. Destes, pelo menos 153 foram destruídos como resultado da hiperinflação causada pela sobreposição. O restante foi reavaliado, destruído pela ocupação / libertação militar, renomeado por razões políticas, ou foi convertido em outra moeda. A idade mediana para essas moedas é de apenas dezessete anos (GOLDBERG, 2005).

(25)

1.2 Criptomoedas

Com o intuito de propor uma solução às moedas que fracassaram, surge em 2008, Satoshi Nakamoto (o pseudónimo de um indivíduo até agora não identificado) publicou um Whitepaper denominado Bitcoin: A Peer to Peer Electronic Cash System (NAKAMOTO, 2008). Neste artigo, ele argumentou que havia resolvido a questão da dupla despesa em moeda digital por meio de uma base de dados distribuída que combinava criptografia, teoria dos jogos e ciência da computação. O gasto duplo é simplesmente a ideia de que a moeda digital pode ser usada em dois lugares. A criação de Satoshi foi uma grande inovação porque habilitou uma entidade a negociar com confiança o valor diretamente com outra entidade sem a necessidade de confiar em terceiros.

Em contraste com os papeis moedas, Bitcoin não é baseado em prata ou ouro - é baseado em provas matemáticas. Nesse sentido, Bitcoin foi o primeiro meio digital nativo para troca de valor e o que permitiu isso foi o desenvolvimento da Blockchain. Bitcoin é gerado através da rede compartilhada de um livro público utilizando tecnologias Blockchain que gravam e validam cada transação processada. Posteriormente, varias tecnologias surgiram tendo como base o Blockchain, sendo assim, o bitcoin é apenas uma das possibilidade que o Blockchain fornece.

Hoje em dia, além do Blockchain do Bitcoin, existem varias outras utilidade para Block-chain, como o Ethereum, Litecoin, Dash, Monero, entre outras.

1.3 Objetivos

Esse trabalho se destina a ser um estudo sobre os principais conceitos teoricos relacio-nados a duas das tecnologias mais importantes nas criptomoedas atuais: Blockchain e Tangle, assim como dos fundamentos por trás de seus conceitos. São aderidos diversos conceitos técni-cos afim de mostrar o funcionamento de grande parte de criptomoedas baseadas em protocolos de Blockchain e Tangle, como Bitcoin, Litecoin, Ethereum e IOTA. Pretende-se fazer compara-ções entre as principais criptomoedas baseadas em Blockchain e comparar de uma forma mais ampla o protocolo de Blockchain com o protocolo de Tangle.

(26)
(27)

2 REVISÃO BIBLIOGRÁFICA

2.1 Peer-to-peer

Peer-to-peerou P2P é um formato de rede de computadores em que a principal caracte-rística é descentralização das funções convencionais de rede, onde o computador de cada usuário conectado acaba por realizar funções de servidor e de cliente ao mesmo tempo. Seu principal objetivo é a transmissão de arquivos e seu surgimento possibilitou o compartilhamento em massa de músicas e filmes. Com a crescente utilização da rede peer-to-peer para este fim, cada vez mais surgem programas para este fim (SPARROW, 2017).

Os Peers são os participantes da rede igualmente privilegiados na aplicação. Essa apli-cação tem suas tarefas ou cargas divididas em pares. Cada computador da rede é um nó1e fica responsável por uma parcela dos recursos da rede, tais como armazenamento, poder de proces-samento e largura de banda. Os recursos são divididos diretamente entre cada participante da rede sem a necessidade de uma coordenação central de um servidor ou hosts. Nesse modelo de rede, cada par de computadores são fornecedores e consumidores de recurso, diferentemente do modelo cliente-servidor, onde o servidor alimenta toda a rede e os clientes somente consomem (SPARROW, 2017). As figuras 1 e 2 abaixo mostram uma rede centralizada, e outra Peer-to-peer:

Figura 1 – Ilustração de uma rede usual centralizada, baseada em servidores.

Fonte: (SPARROW, 2017)

Figura 2 – Ilustração de um sistema Peer-to-peer sem uma infraestrutura central .

Fonte: (SPARROW, 2017)

(28)

17

2.2 Funções Hash

Basicamente, hash significa pegar uma variável string de entrada de qualquer tamanho e retornar uma saída de tamanho fixo. No contexto de criptomoedas como Bitcoin, as transações são tomadas como entradas e executadas através de um algoritmo de hash (o Bitcoin usa SHA-256), que fornece uma saída de um tamanho fixo (RABBANI, 2017). Na figura 3 é mostrada uma representação de um hash.

Figura 3 – Representação da função hash SHA-256 (Secure Hashing Algorithm 256) .

Fonte: (RABBANI, 2017)

Uma função de hash criptográfica é uma classe especial de funções de hash que tem várias propriedades, tornando-a ideal para a criptografia. Existem certas propriedades que uma função de hash criptográfica precisa ter para ser considerada segura. Abaixo estão descritas cada uma delas (NARAYANAN et al., 2015):

• Propriedade 1: Determinista

Para cada A, tem-se H(A), sendo que H(B) = H(A) sempre que B = A

Isso significa que, a mesma mensagem de entrada sempre resulta no mesmo hash de saída. Isso é crítico porque, se houver diferentes hashes a cada momento, será impossível acompanhar a entrada.

• Propriedade 2: Eficiência computacional

A função hash deve ser capaz de retornar o hash de uma entrada rapidamente. Se o processo não for rápido o suficiente, o sistema simplesmente não será eficiente.

• Propriedade 3: Pequenas alterações na entrada alteram o hash

Uma pequena alteração em uma mensagem deve alterar o valor de hash de forma tão abrangente que o novo valor de hash não seja correlacionado com o valor de hash antigo • Propriedade 4: Resistente a Colisão

Para A e B, sendo que A 6= B e sendo H(A) e H(B) seus respectivos hashes, é improvável que H(A) = H(B)

(29)

• Propriedade 5: Puzzle Friendly

Para qualquer saída Y, e sendo A resultante de uma distribuição de alta entropia, é impro-vável encontrar B, para que H(A|B) = Y

O que significa que, alto poder de processamento seria necessário para a obtenção de B. Nesse caso, é importante ressaltar que não é impossível obter B, sendo que isso ocorre todo o tempo, já que todo o processo de mineração ocorre através disso.

Alguns exemplos de funções hash criptográficas estão listados abaixo: • MD 5: produz um hash de 128 bits.

A resistência à colisão é quebrada após ≈ 221 hashes. • SHA 1: produz um hash de 160 bits.

A resistência à colisão é quebrada após ≈ 261hashes.

• SHA 256: Produz um hash de 256 bits e é usado atualmente pelo Bitcoin.(RABBANI, 2017)

Mais adiante na seção 4.4.1 serão listados os principais hashes utilizados atualmente e suas principais criptomoedas.

2.3 Hashing e data structures

Uma Data Structure é uma forma especializada de armazenar dados. Algumas propri-edades essenciais são os Pointers e as linked lists. Os pointers são variáveis na programação que armazena o endereço de outra variável. Normalmente, as variáveis normais em qualquer linguagem de programação armazenam dados. Uma linked lists é uma seqüência de blocos, cada um contendo dados que são vinculados ao próximo bloco por meio de um pointer. A variável pointer, neste caso, contém o endereço do próximo nó e, portanto, a conexão é feita. O último nó, como você pode ver, tem um pointer nulo, o que significa que não tem valor. Uma coisa importante a notar aqui, o pointer dentro de cada bloco contém o endereço do próximo bloco. A figura 4 representa uma linked lists.

Um Hash pointer é semelhante a um pointer, mas em vez de apenas conter o endereço do bloco anterior, ele também contém o hash dos dados dentro do bloco anterior. Este pequeno ajuste é o que torna o Blockchain tão incrivelmente confiável e pioneiro (RABBANI, 2017). 2.3.1 Nonce

O "nonce"em um bloco bitcoin é um campo de 32 bits (4 bytes) cujo valor é definido de forma que o hash do bloco contenha uma série de zeros à esquerda. Os demais campos não podem ser alterados, pois possuem um significado definido.

(30)

19

Figura 4 – Ilustração de uma linked lists.

Fonte: (NARAYANAN et al., 2015)

Qualquer alteração nos dados do bloco 2 fará com que o hash do bloco seja comple-tamente diferente. Dessa forma, é inviável prever qual combinação de bits resultará no hash correto, muitos valores diferentes de nonce são tentados, e o hash é recalculado para cada valor até que um hash contendo o número necessário de zero bits seja encontrado. O número de zero bits requerido é definido pela dificuldade. O hash resultante tem que ser um valor menor que a dificuldade atual e, portanto, terá que ter um certo número de zero bits iniciais para ser menor que isso. Como este cálculo iterativo requer tempo e recursos, a apresentação do bloco com o valor correto do nonce constitui uma prova de trabalho (PoW) (RABBANI, 2017). PoW e outros algoritmos de consenso serão abordados na seção 2.8.

2.4 Merkle tree

O diagrama abaixo mostra como é uma Merkle tree. Em uma Merkle tree, cada nó não-folha é o hash dos valores de seus nós filhos.

• Nós da base: Os nós folha são os nós na camada mais baixa da árvore. Então, no diagrama acima, os nós das folhas serão TA, TB, TC e TD, etc.

• Indo de baixo para cima na figura 5, os blocos imediatamente superiores sao os Hashes dos blocos imediatamente inferiores. Portanto HA é o Hash de TA e HCD é o Hash de HC concatenado com HD.

• Nó Raiz: O nó único na camada mais alta rotulado "Top Hash"é o nó raiz.

Cada bloco contém milhares de transações. Será muito tempo ineficiente armazenar todos os dados dentro de cada bloco como uma série. Isso fará com que encontrar alguma transação

(31)

Figura 5 – Ilustração de uma Merkle tree

Fonte: (RABBANI, 2017)

específica seja extremamente trabalhosa e demorada. Usando-se uma Merkle tree, no entanto, pode-se simplesmente seguir o rastro de pointers que leva aos dados, reduzindo-se bastante o tempo necessário para descobrir se uma determinada transação pertence ou não àquele bloco (RABBANI, 2017).

2.5 Criptografia de chave pública

Criptografia de chave pública é uma classe de protocolos de criptografia baseados em algoritmos que requerem duas chaves, uma delas sendo secreta (ou privada) e a outra delas sendo pública. Em vez de usar uma única chave para criptografia e decriptografia, chaves separadas são usadas para ambos. Um usuário gera um par de chaves que são ligadas matematicamente umas às outras. Uma chave (a chave pública) é usada para criptografia e a outra (a chave privada) é usada para descriptografar. O algoritmo é projetado de tal forma que é inviável para um invasor deduzir a chave privada de uma determinada chave pública.

Usando esse esquema, uma pessoa pode compartilhar sua chave pública, e qualquer um pode usá-la para criptografar arquivos. Depois de criptografados, esses arquivos só podem ser decriptografados com a chave privada correspondente.

A criptografia de chave pública tem um segundo benefício além da criptografia e decrip-tografia de dados. Ele pode ser usado para criar uma assinatura digital, que pode ser usado para fornecer simultaneamente autenticação e integridade de dados, todos críticos para a operação de Blockchain.

(32)

21

2.6 Assinatura Digital

Uma assinatura digital de uma transação é uma criptografia do hash da transação cal-culada com uma chave secreta (secret key). Essa chave secreta é chamada de chave privada (private key). A assinatura da transação pode ser verificada com uma chave pública (public key) associada. A assinatura digital prova que a transação não foi alterada e que a transação foi emitida pelo proprietário da chave privada (RABBANI, 2016).

Uma assinatura digital deve ser o análogo digital para uma assinatura manuscrita no pa-pel. São necessárias duas propriedades de assinaturas digitais que correspondem bem à analogia de assinatura manuscrita. Em primeiro lugar, somente o usuário pode fazer sua assinatura, mas qualquer pessoa que a veja pode verificar se ela é válida. Em segundo lugar, a assinatura deve ser vinculada a um documento em particular, de modo que a assinatura não possa ser usada para indicar seu acordo ou endosso de um documento diferente. Para as assinaturas manuscritas, esta última propriedade é análoga a garantir que alguém não possa aceitar uma assinatura que é cortada de um documento e colada em outro (RABBANI, 2016).

A chave privada cria a chave pública, que por sua vez cria o endereço. Esse processo é alcançado com o uso de curvas elípticas e aritmética modular em campos finitos.

Um esquema de assinatura digital consiste nos seguintes três algoritmos:

(sk, pk) = generateKeys(keysize) (2.1)

O método generateKeys possui um tamanho de chave e gera um par de chaves. A chave secreta sk é mantida em particular e usada para assinar mensagens. Já pk é a chave de verificação pública que todos podem ter acesso. Qualquer pessoa com esta chave pode verificar sua assinatura.

sig:= sign(sk, mensagem) (2.2)

O sign method leva uma mensagem, e uma chave secreta, sk, como entradas e tem uma assinatura como saída para a mensagem sob sk.

isValid:= veri f icar(pk, mensagem, sig) (2.3) O método de verificação leva uma mensagem, uma assinatura e uma chave pública como entrada. Retorna um valor booleano, isValid, que será true se sig for uma assinatura válida para mensagem sob a chave pública pk e false caso contrário.

(33)

• As assinaturas válidas devem verificar

verifique (pk, mensagem, sign (sk, mensagem)) == true • As assinaturas são impossíveis de serem geradas

As três funções mencionadas acima podem ser observadas na figura 6 a seguir: Figura 6 – Ilustração das três funções de uma Assinatura Digital

Fonte: (RABBANI, 2016)

2.7 O processo de mineração

O processo de mineração é o mecanismo que permite que o Blockchain seja uma segu-rança decentralizada. Ele protege e habilita o sistema sem autoridade central. Além disso, esse processo está responsável pela criação de novas moedas. Assim, a mineração por criptomoeda inclui duas funções: adicionar transações ao Blockchain (proteger e verificar) e também liberar nova moeda. Blocos individuais adicionados por mineradores devem conter uma prova que depende de cada protocolo de consenso da criptomoeda (SHANTHI, 2017).

(34)

con-23

senso de Proof-of-Work3 (Será definido e abordado na seção 2.8). Nesse caso, a mineração precisa de um computador e de um programa especial, que ajuda os mineradores a competir com seus pares na solução de "quebra-cabeças"computacionais. Em intervalos regulares, os mineradores tentam resolver um bloco com os dados da transação usando funções hash cripto-gráficas. Eles usam seus computador para atingir um valor de hash menor que o alvo e quem for o primeiro a decifrá-lo é elegível para receber uma recompensa. No Bitcoin, por exemplo, a re-compensa pela mineração de um bloco atualmente é de 12,5 BTCs. Antes, apenas os entusiastas da criptografia serviam como mineradores. No entanto, à medida que as criptomoedas ganham popularidade e aumentam de valor, a mineração é agora considerada um negócio lucrativo. Consequentemente, várias pessoas e empresas começaram a investir em recursos e hardware. Com isso surgiram as Mining Pools que são agrupamentos de recursos por mineradores, que compartilham seu poder de processamento em uma rede, para dividir a recompensa igualmente, de acordo com a quantidade de trabalho que eles contribuíram para aumentar a probabilidade de encontrar um bloco (SHANTHI, 2017).

2.8 Consenso Distribuído

Em vez de um único terceiro confiável validar as transações através de seus servidores com autoridade (votação única), uma rede peer-to-peer de computadores que executam o pro-tocolo Blockchain valida transações por consenso distribuído (voto majoritário). O propro-tocolo Blockchain, portanto, formaliza regras de consenso pré-definidas para validar transações na rede peer-to-peer, como regras de governança codificadas, gerenciando e aplicando automaticamente transações de todos os participantes da rede (RABBANI, 2016).

Cada participante da rede mantém uma cópia de todo o Blockchain - o arquivo onde todas as transações anteriores são registradas. O consenso dos validadores de rede verifica novas transações. Se uma parte mal-intencionada fizer alterações não autorizadas em sua cópia do Blockchain em um computador, outros membros da rede recusarão a transação, pois a versão mal-intencionada dos dados do Blockchain será diferente da do resto da rede.

Para manipular dados no Blockchain, é preciso manipular os dados na maioria da rede. Isso é possível, mas proibitivamente caro, especialmente se houver a manipulação de dados antigos.

Atualmente, existem três tipo de algoritmos de consenso que aderem o problema de chegar a um único resultado que será aceito por todos:

• Proof-of-Work(PoW)

Nesse caso, as transações são validadas por mineradores da rede, que são incentivados a verificar as transações por meio do PoW (Proof-of-Work). O processo envolve tomar a

3 Mineradores da rede sao incentivados a verificar as transacoes por meio de uma Proof-of-Work (Prova de

(35)

Função Hash Criptografada (no caso do Bitcoin é usado o algoritmo SHA-256) do último bloco do Blockchain, adicionar novas transações e resolver uma nova função criptografada. O processo de resolver a função seria o trabalho, portanto, prova de trabalho. (CRUZ, 2017) Algumas criptomoedas que utilizam PoW são as seguintes:

– Bitcoin – Ethereum4 – Litecoin – Monero • Proof-of-Stake(PoS)

Proof-of-Stakeou Prova de estaca difere totalmente de prova de trabalho.A PoS usa um sorteio aleatório para decidir quem será o criador do próximo bloco. Em vez de criar blocos por meio de trabalho, o criador de um bloco é determinado por sua quota ou parti-cipação em uma moeda. Quanto maior a partiparti-cipação na moeda, maior a probabilidade de ser o sorteado. (HARPER, 2018)

Algumas criptomoedas que utilizam PoS são as seguintes: – Cardano

– QTUM

• Proof-of-Capacity(PoC)

Uma outra forma de mineração, muito menos conhecida e utilizada, é a PoC. Neste caso é usado espaço no HD do minerador como prova de capacidade. É semelhante ao PoS por ser um sorteio, porém nesse caso quanto mais espaço no HD disponível maior a chance de ser o criador do próximo bloco. Como usa muito pouca energia é considerado a opção mais verde entre as 3. (CRUZ, 2017)

Um exemplo de moeda que usa o PoC é a BURST. 2.8.1 Internet of Things

A Internet das coisas, ou IoT, refere-se a bilhões de dispositivos físicos em todo o mundo que agora estão conectados à internet, coletando e compartilhando dados. Graças aos processadores baratos e às redes sem fio, é possível transformar qualquer coisa em parte do IoT. Isso agrega um nível de inteligência digital a dispositivos, permitindo que eles se comunicassem sem um ser humano envolvido e fundindo os mundos digital e físico (RANGER, 2018).

Praticamente qualquer objeto físico pode ser transformado em um dispositivo IoT, con-siderando que ele possa ser conectado à internet e controlado dessa maneira.

(36)

25

O termo "IoT"é usado principalmente para dispositivos que normalmente não deveriam ter uma conexão à internet, que podem se comunicar com a rede independentemente da ação humana. Por esse motivo, um computador pessoal não é geralmente considerado um dispositivo IoT e nem um telefone inteligente - mesmo que este último esteja cheio de sensores. No entanto, um smartwatch ou uma pulseira fitness podem ser contados como dispositivos IoT (RANGER, 2018).

A adição de tags(etiquetas) RFID a peças dispendiosas para ajudar a rastrear sua locali-zação foi uma das primeiras aplicações IoT. Mas desde então, os custos de adicionar sensores e uma conexão com a Internet aos objetos tem caído, permitindo conectar quase tudo à Internet.

2.9 DAG (Directed acyclic graph)

Em Ciência da Computação e Matemática, um grafo acíclico direcionado (DAG) é um grafo que é direcionado e sem ciclos conectando às outras arestas. Isso significa que é impossível percorrer todo o grafo começando em uma borda. As bordas do grafo direcionado só seguem um caminho. O grafo é uma classificação topológica, em que cada nó está em uma determinada ordem (POPOV, 2017).

Figura 7 – Ilustração de uma Directed acyclic graph

Fonte: (POPOV, 2017)

Basicamente, uma vez que uma transação IOTA é transmitida para a rede, duas tran-sações anteriores devem ser aprovadas e os nós de rede precisarão garantir que as trantran-sações aprovadas não sejam conflitantes. Esta é uma maneira diferente de abordar a ameaça de dupla-despesa com moedas virtuais.

2.10 Moore’s Law

Em 1965, Gordon Moore, descreveu pela primeira vez o que agora se tornou conhecido como Lei de Moore. Moore notou que o número de componentes que poderiam caber em um chip de computador dobrava aproximadamente a cada dois anos, e essa observação provou ser verdadeira ao longo das décadas. Consequentemente, o poder de processamento e a capacidade de memória dos computadores também dobraram a cada dois anos.

(37)

Figura 8 – Representação da Lei de Moore .

Fonte: (TEMPLETON, 2015)

A partir de chips de computadores que continham alguns milhares de componentes na década de 1960, os chips atualmente possuem vários bilhões de componentes. Existe um li-mite físico para o tamanho desses componentes, e à medida que se aproximam do tamanho de um átomo, as regras peculiares que governam a Mecânica Quântica entram em ação. Essas regras que governam o mundo quântico são tão diferentes daquelas do mundo macro que nossa compreensão tradicional da lógica binária em um computador realmente não funciona mais efe-tivamente. As leis quânticas são baseadas em probabilidades, então um computador nesta escala não funciona mais de uma maneira "determinista", o que significa que nos dá uma resposta defi-nitiva. Em vez disso, ele começa a se comportar de uma maneira "probabilística"(TEMPLETON,

2015).

2.11 Computação Quântica 2.11.1 Bits e qubits

O computador calcula e armazena dados com números em formato binário. Em binário, existem apenas dois números: 0 e 1. Em um computador, eles são conhecidos como "bits", abreviação de "dígitos binários". Cada informação no computador é armazenada como uma string desses 0s e 1s. Como há apenas duas opções, a 1 ou a 0, é fácil armazená-las usando vários métodos diferentes - por exemplo, como pontos magnéticos em um disco rígido, em que o bit é magnetizado em um sentido (1) ou outro ( 0), ou onde o bit tem uma pequena quantidade de carga elétrica (1) ou sem carga (0). Essas combinações de 0s e 1s podem representar quase

(38)

27

tudo, incluindo letras, sons e comandos que informam ao computador o que fazer.

Em vez de bits binários, um computador quântico usa qubits. Estas são partículas, como um átomo, íon ou fóton, onde a informação é armazenada pela manipulação das propriedades quânticas das partículas, como estados de spin ou polarização.

Em um computador normal, as várias etapas de um cálculo são executadas uma após a outra. Mesmo que o computador possa funcionar em vários cálculos em paralelo, cada cálculo deve ser feito um passo de cada vez. Um computador quântico funciona de maneira diferente. Os qubits são programados com um conjunto complexo de condições, que formula a questão, e essas condições evoluem seguindo as regras do mundo quântico - a equação de onda de Schrödinger - para encontrar a resposta. Cada qubit programado evolui simultaneamente; Todas as etapas do cálculo são tomadas ao mesmo tempo. Essa abordagem pode resolver várias tarefas computacionais que são muito difíceis ou demoradas em um computador clássico. A vantagem de velocidade é enorme - e cresce com o poder de processamento do computador (ou seja, o número de qubits que o computador quântico possui).

2.11.2 Sobreposição

Individualmente, cada qubit tem suas próprias propriedades quânticas, como spin. Isso tem dois valores: +1 e -1, mas também pode estar no que é chamado de superposição: parci-almente +1 e parciparci-almente -1. Considerando-se um globo, pode-se apontar para o Pólo Norte (+1) ou o Pólo Sul (-1) ou qualquer outro ponto entre eles. Uma partícula quântica pode ser um estado que faz parte do Pólo Norte e parte do Pólo Sul. Pode-se observar a representação de um qubit na figura da esfera de Bloch abaixo (NIELSEN, 2004):

Figura 9 – Representação da Bloch sphere.

Fonte: (NIELSEN, 2004)

Um qubit com superposição está em um estado muito mais complexo que o simples 1 ou 0 de um bit binário. Mais parâmetros são necessários para descrever esse estado, e isso se traduz na quantidade de informação que um qubit pode conter e processar.

(39)

2.11.3 Emaranhamento

Ainda mais interessante é o fato de ser possível unir muitas partículas, cada uma em seu estado de superposição, juntas. É possível criar um link, chamado emaranhamento onde todas essas partículas são dependentes umas das outras, todas as suas propriedades existem ao mesmo tempo. Todas as partículas juntas estão em um grande estado que evolui, de acordo com as regras da Mecânica Quântica, como um sistema único. É isso que dá aos computadores quânticos seu poder de processamento paralelo - os qubits todos evoluem, individuais, porém interligados, simultaneamente (TEMPLETON, 2015).

O número de parâmetros necessários para descrever completamente N qubits cresce como 2 para a potência N. Basicamente, isso significa que para cada qubit adicionado ao com-putador, as informações necessárias para descrever a montagem de qubits duplicam. Apenas 50 qubits exigiriam mais de um bilhão de números para descrever seus estados. Esse é o poder de um computador quântico.

Para as tarefas específicas adequadas aos computadores quânticos, um computador quân-tico com 30 qubits seria mais poderoso do que o supercomputador mais poderoso do mundo, e um computador quântico de 300 qubits seria mais poderoso do que todos os computadores do mundo conectados em conjunto (TEMPLETON, 2015).

2.12 Principais Criptomoedas da atualidade 2.12.1 Bitcoin

Bitcoin (BTC) é a principal criptomoeda da atualidade e pode ser considerada um sistema de pagamentos mundial. É a primeira moeda digital mundial descentralizada e responsável pelo ressurgimento do sistema bancário livre. A rede utilizada é peer-to-peer e transações ocorrem entre usuários diretamente, sem um intermediário. Bitcoin foi inventado por uma pessoa ou grupo de pessoas desconhecidas sob o nome Satoshi Nakamoto e foi lançado como software de código aberto em 2008 (NAKAMOTO, 2008). No artigo publicado em 2008, Satoshi define Bitcoin como: uma cadeia de assinaturas digitais que podem ser passadas de uma pessoa para outra utilizando uma assinatura eletrônica.

2.12.2 Ethereum

Ethereum (ETH) é uma plataforma descentralizada capaz de executar contratos inte-ligentes5 e aplicações descentralizadas6 usando a tecnologia Blockchain: São aplicações que funcionam exatamente como programadas sem qualquer possibilidade de censura, fraude ou interferência de terceiros, isso porque o contrato é imutável. Ele possui uma máquina virtual

5 Ou Smart Contracts

(40)

29

descentralizada, a Ethereum Virtual Machine (EVM), que pode executar scripts usando uma rede internacional de nós públicos.

O Ethereum foi fundado por Vitalik Buterin em Janeiro de 2014, e formalmente apresen-tado para a comunidade na forma de um whitepaper. A definição formal da Virtual Machine do Ethereum ( EVM ) foi escrito por Gavin Wood (BUTERIN et al., 2014).

O Ethereum foi financiado como um projeto de crowdfunding, sendo o terceiro maior projeto já financiado desta forma na história, e foi lançado em 30 de Julho de 2015

Como o Bitcoin, o Ethereum é uma rede Blockchain pública distribuída. Embora existam algumas diferenças técnicas significativas entre os dois, a distinção mais importante é que Bitcoin e Ethereum diferem substancialmente em propósito e capacidade. O Bitcoin oferece uma aplicação particular da tecnologia Blockchain, um sistema de dinheiro eletrônico peer to peer que permite pagamentos on-line do Bitcoin. Enquanto o Blockchain do Bitcoin é usado para rastrear a propriedade da moeda digital (BTC), o Blockchain do Ethereum se concentra em executar o código de programação de qualquer aplicativo descentralizado (BUTERIN et al., 2014).

No Blockchain Ethereum, em vez de mineração por Bitcoin, os mineradores trabalham para ganhar Ether, um tipo de token criptográfico que alimenta a rede. Além de uma criptomoeda negociável, o Ether também é usado por desenvolvedores de aplicativos para pagar taxas e serviços de transação na rede Ethereum (BUTERIN et al., 2014).

2.12.3 Litecoin

Lançado em outubro de 2011, o Litecoin (LTC) foi criado pelo ex-funcionário do Google, Charlie Lee. Descrito por seu criador como a "prata"do ouro do Bitcoin, o Litecoin é baseado no cliente Bitcoin Core. O Litecoin foi projetado para imitar seu antecessor, exaltando as mesmas virtudes da descentralização, mas com algumas características-chaves que o tornam mais ágil. Embora blocos de bitcoin só possam ser processados a cada dez minutos, o Litecoin reduziu isso para 2,5 minutos por bloco. Outra diferença que foi empregada com a criação da Litecoin foi na escolha do algoritmo de hash. A maioria das minerações de criptomoeda é baseada no algoritmo SHA-256 que o bitcoin usa, mas o Litecoin utilizou o algoritmo Scrypt. Mais fácil de calcular e mais leve na carga de trabalho, permitindo a confirmação mais rápida das transações do Litecoin (MARTINDALE, 2018).

2.12.4 IOTA

O protocolo da IOTA é uma tecnologia de livro distribuído desenvolvida pela IOTA Foundation. O projeto da IOTA tem como objetivo criar um ecossistema financeiro seguro e descentralizado para a Internet das coisas (IoT). O IOTA parte do princípio que, à medida que mais e mais dispositivos poderão se comunicar entre si, os pagamentos começarão a surgir em algum momento. O projeto propõe uma criptomoeda com arquitetura descentralizada para tratar de micro-pagamentos.

(41)

Nascida em 2014, objetiva-se que essa tecnologia seja capaz de funcionar com um livro registro distribuído com escalabilidade, resistência e descentralização para todos os dispositivos IoT. A IOTA foi criada como uma derivação distante da tecnologia Blockchain, contudo, pode resolver problemas similares relacionados a transações ou micro transações financeiras. Diferen-temente de criptomoedas mais conhecidas como Bitcoin e Ethereum, o IOTA não usa nenhum Blockchain. Em vez disso, ela usa "Tangle", um grafo acíclico dirigido (DAG). Uma vez que uma transação IOTA é transmitida para a rede, duas transações anteriores devem ser aprovadas e os nós de rede precisarão garantir que as transações aprovadas não sejam conflitantes. Esta é uma maneira diferente de abordar a ameaça de dupla-despesa com moedas virtuais (POPOV, 2017).

(42)

31

3 METODOLOGIA

Através dos conceitos apresentados na revisão bibliográfica, esse trabalho se destina a ser um estudo das principais utilizações de Blockchain e do Tangle nas criptomoedas da atuali-dade, assim como a potencial relevância e implementação de suas tecnologias na sociedade. São abordados diversos conceitos técnicos afim de mostrar o funcionamento de grande parte de crip-tomoedas baseadas em protocolos de Blockchain e Tangle, como Bitcoin, Litecoin, Ethereum e IOTA.

Foram utilizados como base para esse trabalho, diversos Whitepapers de criptomoedas, sendo os principais: O Whitepaper do Bitcoin (NAKAMOTO, 2008), o Whitepaper do Ethereum (BUTERIN et al., 2014) e o Whitepaper do IOTA (POPOV, 2017).

Pretende-se mostrar os principais fundamentos do Blockchain como tecnologia descen-tralizada e segura para transações financeiras. Dessa forma é feita uma explicação do funcio-namento do Blockchain, e suas principais características, como a descentralização, o livro de registro público e o funcionamento da mineração, assim como suas distintas formas de minera-ção. Também objetiva-se mostrar as motivações que levaram a criação do Bitcoin, através da explicação de cada conceito introduzido no Whitepaper do Bitcoin, e que ainda são considera-das no desenvolvimento de outras criptomoeconsidera-das descentralizaconsidera-das. São comparaconsidera-das as principais criptomoedas atuais, baseadas em Blockchain, sendo elas: Bitcoin, Litecoin e Ethereum. A comparação é feita considerando as finalidades das criptomoedas, assim como seus algoritmos de consenso e algoritmos de mineração.

Também é feita uma comparação entre o protocolo de Blockchain empregado no Bitcoin e o Tangle criado especificamente para o IOTA, ambos sendo criptomoedas descentralizadas, porém com características diversas.

Ao longo da comparação são explicados diversos conceitos especificos para a compre-ensão do contexto, como Smart Contracts (seção 4.5.1), DApps (seção 4.5.3), Tip Selection Algorithm(seção 4.6.2), Ataque de 51% do controle (seção 4.9.1.1).

Não obstante, discute-se também o impacto que a provável implementação da com-putação quântica terá no funcionamento teórico dos dois principais protocolos apresentados: Blockchain do Bitcoin e Tangle do IOTA.

(43)
(44)

32

4 DESENVOLVIMENTO

4.1 Funcionamento da Blockchain

Em 2008, no artigo "Bitcoin: A Peer to Peer Electronic Cash System", Nakamoto inicia sua argumentação dizendo que para se realizar transações pela internet é necessária a intermediação de instituições financeiras que atuam como intermediários para processar as transações entre as partes envolvidas no negócio. Este processo consiste em uma das partes confiando a uma terceira parte o processamento da transação. Além dessa dependência de uma terceira parte, sempre há a possibilidade de se reverter tal transação1. Portanto, até então, não existia nenhuma maneira de se fazer um pagamento online que não seja irreversível, sendo sempre possível solicitar ao intermediário a reversão do negócio (NAKAMOTO, 2008).

Como as instituições financeiras atuam como uma contraparte confiável para facilitar a transação, elas gastam muito tempo resolvendo disputas e lidando com transações fraudulentas. E isso, obviamente, aumenta o custo de realização de uma transação por meio da Internet e torna as transações relativamente mais caras.

Com o intuito de solucionar esse e outros problemas, Nakamoto introduziu ao mundo um sistema eletrônico de pagamento baseado em criptografia, que permite que duas partes interajam entre si, sem a necessidade de uma terceira parte no meio do caminho que atue como intermediária. Como essas transações criptográficas seriam computacionalmente impossíveis de serem revertidas, os usuários estão protegidos contra qualquer tipo de fraude nas transações (NAKAMOTO, 2008).

Por isso, foi criado um sistema eletrônico de dinheiro peer-to-peer (P2P), baseado em computadores interconectados que trabalham conjuntamente em rede. Este sistema de dinheiro P2P resolve também outro problema antigo que é o gasto duplo, ou seja, quando são realizadas duas transações online simultaneamente com um mesma moeda. Para resolver isso, Satoshi utiliza o hashing e o proof-of-work(PoW).

A definição de Bitcoin por Nakamoto é: uma cadeia de assinaturas digitais que podem ser passadas de uma pessoa para outra utilizando uma assinatura eletrônica 2. Durante este processo, o remetente do Bitcoin assina eletronicamente as transações passadas e também a chave pública do receptor para quem está enviando aquele Bitcoin (NAKAMOTO, 2008).

Um Bitcoin não existe em nenhum lugar, pelo menos não no sentido tradicional de dinheiro físico. Em vez disso, o conceito de “moeda” eletrônica de Nakamoto é uma série cronológica de assinaturas digitais verificadas. Pode-se pensar, por exemplo, na moeda virtual de Nakamoto como um pacote do FedEx que alguém assina antes de enviá-la para um endereço.

1 Um exemplo seria caso o comprador solicitasse à sua bandeira de cartão de crédito 2 Como um hash

(45)

Mas a diferença é que um livro de registros é colocado na guia de remessa que mostra todo o histórico de todas as remessas anteriores do mesmo pacote. As informações incluem todos os endereços de origem, bem como os horários detalhando onde e quando exatamente cada entrega ocorreu. Essa trilha de auditoria abrangente, afirma Nakamoto, forneceria garantia tanto para o destinatário quanto para toda a rede de que a cadeia de entregas3é precisa e segura (NAKAMOTO, 2008).

No entanto, Nakamoto aponta um problema potencial com pagamentos duplicados. Um beneficiário não pode verificar se o proprietário de uma moeda não enviou a mesma moeda para outros destinatários4. Por exemplo, uma pessoa possui apenas um Bitcoin, mas envia uma moeda para dois comerciantes diferentes - totalizando dois Bitcoins pagos com apenas uma moeda de origem. Para resolver o problema do gasto duplo sem depender de terceiros, Naka-moto diz que todas as transações devem ser reveladas publicamente. Em segundo lugar, todos os participantes do sistema de pagamento devem aderir ao mesmo cronograma para que todos concordem com um único histórico da ordem em que as transações são recebidas (NAKAMOTO, 2008). Um cronograma e um histórico público de todas as transações impedem o gasto duplo, porque transações posteriores seriam consideradas um pagamento inválido, ou talvez fraudu-lento, da mesma moeda. Cada moeda tem um registro de data e hora exclusivo e a transação anterior seria aceita como pagamento legítimo. 5. Enviar a mesma moeda para um segundo comerciante, conforme o exemplo acima, mostraria um registro de data e hora diferente que ocorreu mais tarde na linha do tempo. E isso invalidaria o segundo pagamento ou transação.

4.2 Fundamentos da Blockchain

Uma rede Blockchain não pode ser controlada por uma única instituição. A principal ideia por trás da tecnologia sempre foi de descentralização, ou seja, permanecer completamente independente de uma autoridade central, como um banco, um governo ou um país.

Por causa disso, o Blockchain pode ser expandido para diversas outras aplicações, que podem ter sua essência baseadas em quatro características principais: Sistemas descentralizados, livro de registro público a todos da rede, um ambiente sem a possibilidade de fraude e uma produção contínua de novas moedas, também conhecido como "Mining", que esta relacionada com o processamento exigido para gerar novas Blockchains. Algumas dessas características podem parecer desnecessárias ou precavidas de mais num pais sem hiperinflação, onde as pessoas confiam nas instituições e corporações, mas como diz o inventor do Ethereum, tem se percebido, cada vez mais, que elas são necessárias ao redor do mundo.

Blockchain solves the problem of manipulation. When I speak about it in the West, people say they trust Google, Facebook, or their banks. But the rest of the world doesn’t trust

3 Ou no caso do Bitcoin, transações

4 Isso é chamado de problema de gasto duplo 5 Ou seja, uma moeda, um pagamento

(46)

34

organizations and corporations that much. I mean Africa, India, the Eastern Europe, or Russia. It’s not about the places where people are really rich. Blockchain’s opportunities are the highest in the countries that haven’t reached that level yet. Vitalik Buterin, criador do Ethereum.

Como citadas anteriormente, vamos as quatro características essenciais de um sistema com Blockchain:

4.2.1 Sistema descentralizado

Basicamente, a tecnologia descentralizada nos permite armazenar ativos em uma rede que pode ser acessada pela Internet. Os ativos podem ser por exemplo, um token, um contrato ou documentos de registro de propriedade. Através de tecnologia descentralizada, o proprietário tem controle direto através de sua chave privada, que está diretamente vinculada ao recurso. O proprietário pode transferir o recurso sempre que desejar e para qualquer um.

Com esta tecnologia os indivíduos terão o controle direto de seus ativos, sem a necessi-dade de terceiros que cobram taxas relacionadas na intermediação e administração desses ativos. Com um sistema descentralizado, o indivíduo pode realizar diretamente a transação, reduzindo o processo a um custo mínimo.

De forma resumida, algumas vantagens de um rede descentralizada são as citadas abaixo: • Usuários habilitados: os sistemas descentralizados permitem aos usuários manter o

con-trole de todas as suas informações e transações.

• Tolerância a falhas: os sistemas descentralizados são menos propensos a falhar acidental-mente porque dependem de vários componentes independentes.

• Durabilidade e resistência ao ataques de hackers: Pelo fato da Blockchain não ter um ponto central de controle, ela é mais resistente a ataques maliciosos. Em outras palavras, sistemas descentralizados são mais caros de manipular ou destruir

• Livre de golpes: é muito mais difícil para os usuários em sistemas descentralizados se beneficiarem causando danos a outros usuários.

• Remoção de riscos de terceiros: um sistema descentralizado permite que os usuários façam uma troca sem a intermediação de terceiros, eliminando, assim, totalmente o risco. • Velocidade de transação mais alta: as transações Blockchain duram alguns minutos e

podem ser processadas a qualquer momento em comparação com as formas de transação tradicionais existentes através de bancos, que precisam de um período muito mais longo para serem processadas.

• Custos de transação mais baixos: ao eliminar intermediários e custos indiretos para troca de ativos, as Blockchains têm o potencial de reduzir significativamente as taxas de transa-ção

(47)

• Transparência: as mudanças em Blockchain são visíveis publicamente por todas as partes criando transparência e todas as transações são imutáveis, o que significa que elas não podem ser alteradas ou excluídas.

• Autenticidade: devido ao sistema descentralizado, os dados da Blockchain são completos, consistentes, e totalmente disponíveis para verificação.

Da mesma forma que a Internet descentralizou o acesso e o fluxo de informações, a tecnologia Blockchain pode revolucionar as indústrias tornando os processos mais democráticos, seguros, transparentes e eficientes.

4.2.2 Livro de registro público

A Blockchain é um livro de registros que contem informações de todos os participantes e todas as transações digitais que já foram executadas. Ele pode ser acessado por qualquer usuário da rede, por isso o nome público. Um bloco é a parte "prevalecente"de uma cadeia de blocos que mantém o registro das transações recentes, e uma vez que elas estão concluídas, ela entra na cadeia de blocos. Os blocos são adicionados de forma sequencial com o próximo bloco contendo o hash do bloco anterior. Um novo bloco é gerado assim que o bloco anterior é inserido no banco de dados do Blockchain. Assim, essa tecnologia é um método altamente eficiente e seguro de realizar transações e serve como um livro em linha que mantém registro de transações que não podem ser alteradas.

Essa tecnologia ajuda a registrar e compartilhar pela rede cada transação que ocorre. Todo usuário na rede pode validar transações e possui uma cópia idêntica do livro de registros, para a qual as transações criptografadas podem ser adicionadas. Todas as mudanças feitas são refletidas em todas as cópias em minutos. Através do uso de "chaves"e assinaturas, a segurança e a precisão dos ativos são mantidas criptograficamente e são controladas pelo participante.

As Blockchains, devido à sua propriedade de livro de registros distribuído, pode ser usado para uma ampla variedade de aplicativos, tais como:

• Controle da posse ou a proveniência de documentos • Ativos digitais

• Diversos serviços financeiros • Ativos físicos

(48)

36

4.2.3 Ambiente sem fraude e autenticidade do Hash

O Blockchain fornece um ambiente inviolável para os participantes da rede. A rede Blockchain verifica e atualiza automaticamente a cada poucos minutos, isso ajuda a fornecer um sistema de auto-revisão e algumas propriedades importantes resultam disso:

• Todos os dados são incorporados na rede que a torna pública. Por isso, ajuda na transpa-rência.

• Se alguém tentar alterar os dados do bloco na cadeia de blocos, ele precisaria de um grande poder de processamento computacional para avançar em toda a rede. Por isso, prova que o sistema não pode ser corrompido facilmente.

• Todos os dados estão vinculados e verificados em cada bloco e, portanto, não possui um único ponto de falha.

• Uma rede de "nós"juntos formam a cadeia de blocos.

Todos os nós juntos criam uma rede muito poderosa. Cada nó é um "administrador"da cadeia de blocos e se junta à rede. Cada nó na rede tem um incentivo para participar da rede. Os nós competem para ter a chance de ganhar as moedas digitais, resolvendo "quebra cabeças"computacionais.

Quando os dados, um arquivo ou um documento são armazenados, um hash é criado para cada arquivo. 6

Cada bloco pode ser dividido em duas partes, o cabeçalho e a parte da transação. O cabeçalho inclui o hash do bloco anterior e faz referência ao hash anterior em que está sendo construído. Ele também armazena o hash da transação atual, que deve ser conectado ao próximo bloco quando adicionado. O bloco é distribuído e atualizado com o novo bloco adicionado. Assim, desta forma, outros locais podem continuar a mantê-lo se alguma das cópias da cadeia de blocos estiver comprometida. Isso torna o bloqueio imutável. Ao comparar o hash dos dados, a autenticidade dos dados pode ser verificada, o que ajuda a alcançar um sistema facilmente verificável.

4.2.4 Mining

Há muitas maneiras através das quais um usuário pode criar moedas. O método mais observado atualmente é a mineração, mas outros métodos também são utilizados.

Por exemplo, no caso do Bitcoin, a comunidade usa mineração. A prova de trabalho (PoW) é um protocolo pelo qual alguém pode efetivamente provar que se envolveu em uma

6 Lembrando que um hash é como a impressão digital que, através de um algoritmo, transforma os dados em uma

(49)

quantidade significativa de trabalho computacional. Com relação à mineração, é necessário re-solver um "quebra-cabeças"computacional. O papel do usuário ("mineradores") é criar o bloco contendo uma série de transações mais recentes, criptografando dados por todo o processo com-putacional e assim fornecendo a prova de trabalho. O usuário ("mineradores") é recompensado financeiramente ao fazê-lo. Há uma competição entre os usuários ("mineradores") para ser o primeiro a adicionar o bloco recente no topo da cadeia de blocos. O bloco adicionado é então verificado por outros nós quando outros blocos são adicionados em cima dele.

Além da Prova de trabalho (PoW), mencionada acima, ocorre também a Prova de Estaca (PoS). Não envolve qualquer trabalho computacional. A motivação para isso é que a mineração parece ter um passo desnecessário, os mineradores ganham recompensas monetárias sob a forma de Bitcoin sendo que eles possuem gastos com energia e equipamentos para operar suas plataformas de mineração que serão novamente usados para resolver "quebra-cabeças"e, por sua vez, ganhar a recompensa. Ao usar a Prova de Estaca (PoS), o processo de atingir o mesmo objetivo é bastante diferente. Com a Prova de Estaca (PoS), dependendo da riqueza, ou quantidade que o usuário possui da criptomoeda, é escolhido o usuário para ser o criador do novo bloco. Assim, isso ajuda na remoção do passo externo de ter que usar o poder real e hardware real. Isso ajuda a reduzir o custo total do processo de mineração. Isso também faz com que aqueles que são partes interessadas na moeda têm um incentivo para serem bons administradores do sistema.

Além das criptografia, a tecnologia pode provar ser o melhor interesse em outras esferas, fornecendo um sistema transparente, reduzindo os custos de transação, diminuindo o risco de negócios com terceiros e reduzindo o tempo de processamento. À medida que a tecnologia se aproxima gradualmente da aceitação em massa nas diferentes esferas, todos começaram a reconhecer o potencial disso.

Blockchain conduz uma tendência importante e disruptiva em muitos campos. À medida que a adoção desse sistema crescer, teremos sistemas mais seguros, vivos e transparentes.

4.3 Comparação entre Bitcoin e Ouro

O ouro é um elemento natural que esteve presente em civilizações, nos governos, em guerras e nos comércios há milhares de anos. Bitcoin é uma criptografia digital moderna que fornece uma plataforma virtual peer-to-peer para facilitar o comércio eletrônico. A seguir, estão listadas as principais semelhanças entre Bitcoin e Ouro:

Referências

Documentos relacionados

Appendix 1 – Water Supply, Wastewater Management and Municipal Waste systems. Source: ERSAR

Ainda considerando a procedência dessas crianças, notou-se também que aquelas oriundas de instituição pública e com diagnóstico nutricional de obesidade ou sobrepeso

Deste ponto se direcionam alguns caminhos seguidos pelo pesquisador, que podem ser concebidos como objetivos específicos geradores das amarras necessárias para a sustentação

Quanto ao tratamento periodontal em pacientes com coagulopatas hereditárias, é correto afirmar: a Polimentos coronarianos devem ser realizados de maneira esporádica, pois

Este estudo apresenta as características clínico-biológicas de um paciente de 13 anos de idade diagnosticado com leucemia linfoblástica aguda de células B que apresentou recidiva

“...é a entrega de recursos correntes ou de capital a outro ente da Federação, a título de cooperação, auxílio ou assistência financeira, que não decorra

Após a colheita, normalmente é necessário aguar- dar alguns dias, cerca de 10 a 15 dias dependendo da cultivar e das condições meteorológicas, para que a pele dos tubérculos continue

Os resultados revelam que os estudantes apresentaram dificuldades na elaboração dos mapas conceituais devido a não utilização deste instrumento no processo de ensino, porém