• Nenhum resultado encontrado

REDES COMUNITÁRIAS INCENTIVADAS COM USO DE BLOCKCHAIN

N/A
N/A
Protected

Academic year: 2021

Share "REDES COMUNITÁRIAS INCENTIVADAS COM USO DE BLOCKCHAIN"

Copied!
81
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DE SANTA CATARINA

LUCAS ROCHA ALVES

REDES COMUNITÁRIAS INCENTIVADAS COM USO DE

BLOCKCHAIN

FLORIANÓPOLIS

(2)

LUCAS ROCHA ALVES

REDES COMUNITÁRIAS INCENTIVADAS COM USO DE

BLOCKCHAIN

Trabalho de Conclusão de Curso de Graduação em Sistemas de Informação, do Departamento de Informática e Estatística, do Centro Tecnológico da Universidade Federal de Santa Catarina, requisito parcial à obtenção do título de Bacharel em Sistemas de Informação. Orientadora: Profa. Dra. Carla Merkle Westphall

Co-orientador: Caciano dos Santos Machado

FLORIANÓPOLIS

(3)

LUCAS ROCHA ALVES

REDES COMUNITÁRIAS INCENTIVADAS COM USO DE

BLOCKCHAIN

Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Sistemas de Informação.

Orientadora: Profa. Dra. Carla Merkle Westphall Co-orientador: Caciano dos Santos Machado

Banca Examinadora

Profa. Dra. Carla Merkle Westphall Caciano dos Santos Machado Alex Sandro Roschildt Pinto Jean Everson Martina

(4)

AGRADECIMENTOS

Aos meus familiares por todo o apoio e incentivo durante minha jornada universitária, pois mesmo longe de casa, não estava desamparado e podia sempre contar com a ajuda e apoio deles. A todos os meus amigos que tinha e que fiz durante a jornada universitária, em especial a Pedro stenheiser,Vinicius oliveira, Pedro Silveira e Cesar Bess, pela parceria e cumplicidade que tivemos na universidade.

Aos meus orientadores e professores da UFSC, pela orientação e acompanhamento nas diversas matérias cursadas. A Universidade Federal de Santa Catarina pela oportunidade de ensino e de intercâmbio.

(5)

“Tudo vale a pena quando a alma não é pequena” Fernando Pessoa

(6)

RESUMO

Nos dias de hoje, o acesso à Internet se tornou importante para o desenvolvimento de qualquer comunidade. Entretanto uma quantidade considerável delas, geralmente afastadas de grandes centros urbanos não dispõe de acesso a essa tecnologia devido a indisponibilidade do serviço na região ou a altos preços cobrados para ter acesso a ele. Como uma das soluções para esse problema surgiram as redes comunitárias, criadas geralmente pelos membros da comunidade em locais como zonas rurais, comunidades de baixa renda, entre outros, para permitir o acesso à Internet. Há variações quanto a implementação dessas redes, como a sua associação com blockchains como mecanismo de remuneração das pessoas que contribuem com o seu funcionamento e expansão. O objetivo deste trabalho é o estudo dessas redes com o uso do blockchain, contribuindo para o entendimento da aplicabilidade, dos conceitos e do uso dessas tecnologias. Para tal objetivo será aplicado um estudo teórico sobre as tecnologias utilizadas nessa rede. Além da construção de um ambiente virtual com um sistema existente para implementação, permitindo a realização de medições.

(7)

ABSTRACT

Nowadays, Internet access has become important for the development of any community. However, a considerable number of them, usually away from large urban areas, don’t have access to this technology due to the unavailability of the service in the region or the high prices charged to access it. As one of the solutions to this problem, community networks emerged, usually created by community members in places such as rural areas, low-income communities, to allow access to the Internet. There are variations in the implementation of these networks, such as their association with blockchains as a mechanism for remunerating people who contribute to the operation and expansion of the network. The objective of this work is to study these networks with the use of blockchain, contributing to the understanding of the applicability, concepts and use of these technologies. For this purpose, a theoretical study on the technologies used in this network will be applied. In addition to building a virtual environment with an existing system for implementation, allowing measurements to be carried out.

(8)

LISTA DE FIGURAS

Figura 1 - Exemplo de rede mesh com arquitetura voltada a infraestrutura

. . . .

18

Figura 2 - Exemplo de rede mesh com arquitetura híbrida

. . .

19

Figura 3 - Mapa localização Penalva

. . .

21

Figura 4 - Instalação do provedor comunitário

. . . .

22

Figura 5 - Workshop realizado na comunidade

. . . .

23

Figura 6 - Mapa localização comunidade de Marrecas

. . . .

24

Figura 7 - Torre de metálica de Marrecas

. . .

24

Figura 8 - Roteador Ammbr

. . . .

28

Figura 9 - Representação da cadeia de blocos

. . .

32

Figura 10 - WMN Althea

. . .

35

Figura 11 - Topologia da rede com máquinas virtuais

. . . .

39

Figura 12 - Ambiente Virtual

. . .

41

Figura 13 - Firmware Althea

. . . .

43

Figura 14 - Interface gráfica Althea

. . . .

44

Figura 15 - Topologia da rede

. . .

45

(9)

Figura 17 - Definição da blockchain do sistema

. . .

47

Figura 18 - Configuração nodo de saída

. . . .

47

Figura 19 - Nodo de Saída

. . . .

48

Figura 20 - Endereço de pagamento

. . . .

49

Figura 21 - Post Twitter

. . . .

49

Figura 22 - Requisição de fundos

. . .

50

Figura 23 - Carteira com fundos

. . .

50

Figura 24 - Consumo e preço

. . .

51

Figura 25 - TraceRT

. . . .

52

Figura 26 - WireGuard cliente 1

. . . .

53

Figura 27 - WireGuard nodo de retransmissão 2

. . .

54

Figura 28 - Preço nodo de retransmissão 1

. . .

55

Figura 29 - Traceroute nodo de saída

. . . .

55

Figura 30 - Tcpdump

. . . .

56

Figura 31 - Wireshark preço 1

. . . .

57

(10)

LISTA DE TABELAS

(11)

LISTA DE ABREVIATURAS E SIGLAS

OLSR Optmized Link State Routing Protocol

DSR Dynamic Source Routing

IBEBrasil Instituto Bem Estar Brasil

EVM Ethereum Virtual Machine

TLV Type-Length-Value

VPN Virtual Private Network

(12)

SUMÁRIO 1 INTRODUÇÃO 14 1.2 OBJETIVOS 15 1.2.1 Objetivo Geral 15 1.2.2 Objetivos Específicos 15 2 REDES COMUNITÁRIAS 15 2.1 REDES MESH 17

2.2 EXEMPLOS DE REDES COMUNITÁRIAS 20

2.2.1 Rede comunitária em Penalva 21

2.2.2 Rede comunitária em Campo dos Goytacazes 23

2.3 REDES COMUNITÁRIAS INCENTIVADAS 25

3 BLOCKCHAIN 29

3.1 TIPOS DE REDE BLOCKCHAIN 29

3.2 CONSENSO 30

3.2.1 Proof of Work 30

3.2.2 Proof of Stake 30

3.3 FUNCIONAMENTO DO PROOF OF WORK 31

4 ALTHEA 34

4.1 BABEL 35

4.1.1 Verificação da métrica de rota 37

4.1.2 Métrica de preço 37 5 IMPLEMENTAÇÃO 39 5.1 PROPOSTA 39 5.2 SOFTWARES UTILIZADOS 40 5.2.1 Virtualbox 40 5.2.2 OpenWrt 40 5.2.3 Rinkeby Testnet 40 5.2.4 Windows 41

5.3 CRIAÇÃO DO AMBIENTE VIRTUAL 41

5.4 INSTALAÇÃO E CONFIGURAÇÃO 43

5.4.1 Instalação do Althea OpenWRT 43

5.4.2 Configuração 44

5.4.2.1 Configuração da Rede 44

5.4.2.2 Configuração do Firmware 46

6. EXPERIMENTOS 49

6.1 ADIÇÃO DE FUNDOS 49

6.2 PAGAMENTO E COBRANÇA POR USO 50

(13)

6.3.1 Rastreamento da rota para Internet 52

6.3.2 Failover 52

6.3.3 Túneis VPN 53

6.3.4 Escolha da melhor rota 54

7. CONCLUSÃO 59

8. TRABALHOS FUTUROS 61

(14)

1 INTRODUÇÃO

O acesso à rede mundial de computadores, pode ser considerado essencial para a obtenção de informações, conhecimento e acesso à comunicação e serviços de forma eficiente no século XXI. Isso porque quase todos os recursos e serviços tecnológicos estão disponibilizados ou estão migrando para rede, como bancos virtuais, opções de entretenimento audiovisual, produções científicas, entre outros. De frente a esse panorama, aqueles que não possuem acesso a essa tecnologia ficam de certa forma excluídos desse novo mundo. Em áreas consideradas mais remotas, como o interior de estados, a utilização da Internet é muito limitada, devido à indisponibilidade de prestadores desse serviço ou ao seu alto custo. Somente no Brasil por exemplo, cerca de 27 milhões de lares não possuíam acesso a Internet em 2017 (Mello, 2018).

Tendo em vista esse problema, uma das soluções existentes seria a criação de redes comunitárias nessas áreas onde não há o interesse comercial para instalação de infraestrutura ou onde uma população economicamente desfavorecida não dispõe de meios para pagar. Redes comunitárias são criadas pela própria comunidade, preenchendo lacunas que os serviços comerciais deixam (Agência Brasil, 2018).

Por ser criada pela própria comunidade, sem fins comerciais, podem ocorrer problemas quanto a viabilidade financeira do projeto, visto que os seus colaboradores não receberão nenhum aporte durante e depois da implementação. Levando isso em consideração criou-se espaço para novas formas de implementação dessa rede comunitária, como criá-la de forma incentivada utilizando blockchain (SELIMI et al, 2018). O blockchain é uma tecnologia que torna possível realizar a remuneração desses colaboradores dependendo do uso do tráfego da Internet. Já a conexão entre os diferentes pontos da rede comunitária pode ser realizado utilizando redes wireless do tipo mesh, que permitem um menor custo e um crescimento orgânico da rede (Pantelis et al, 2011). O aumento da implementação desse tipo de projeto, fez surgir diversos sistemas para suprir e incentivar o movimento, dentre eles o Althea, um sistema que permite receber pagamentos por encaminhamento de tráfego.

Redes comunitárias estão sendo criadas em diversas partes do mundo e várias organizações estão apoiando a sua disseminação. Temos como exemplos dessas organizações a Internet Society (ISOC, 2019) e LACNIC(LACNIC - Digital Divide, 2019).

(15)

implementação, entendendo os conceitos e tecnologias envolvidas, soluções em desenvolvimento e existentes quanto a protocolos e softwares, principais desafios e testes quanto a eficácia da rede. Para realização dos testes pretende-se construir um cenário virtual com uma estrutura de rede incentivada que permita realizar medições, compreensão prática do funcionamento e avaliação dos resultados apresentados em quesitos de eficiência e eficácia da rede, quanto a remuneração e desempenho.

1.2 OBJETIVOS 1.2.1 Objetivo Geral

O objetivo deste trabalho é realizar o estudo de soluções de redes comunitárias incentivadas com uso de blockchain, assim como a implementação de um cenário virtual de uma rede mesh incentivada que permita o entendimento de forma prática do funcionamento da rede, a realização de medições e a análise dos resultados obtidos.

1.2.2 Objetivos Específicos

Como objetivos específicos foram listados os seguintes:

● Realizar uma revisão bibliográfica sobre redes comunitárias e conceitos relacionados. ● Caracterizar diferentes propostas de solução de redes mesh incentivadas e seus

respectivos mecanismos de incentivo.

● Implementar um cenário de rede mesh incentivada em um ambiente virtual. ● Demonstrar através de dados obtidos no cenário virtual, o funcionamento da rede. ● Realizar medições quanto ao cálculo da remuneração dos colaboradores da rede

2 REDES COMUNITÁRIAS

A presença de regiões desamparadas tecnologicamente não é algo raro no Brasil, apesar do aumento do acesso a Internet no país que em 2018 atingiu 70% da população, segundo a pesquisa TIC Domicílios (Lavado, 2019). A pesquisa demonstra que apesar de uma melhora no número em relação ao ano anterior, ele ainda está abaixo dos alcançados por outros países latino americanos como o Chile e Uruguai, e que as populações de áreas pobres e rurais são as mais desfavorecidas. Enquanto em regiões urbanas a conexão chega a 74%, em zonas rurais e na camada mais pobre da população, ela atinge 49% e 48% respectivamente. Essa discrepância dos números entre as regiões, possibilita que iniciativas como as redes comunitárias surjam em locais como esses, para suprir a demanda por conectividade.

(16)

Redes comunitárias são redes criadas pela própria comunidade de um determinado local, visando construir a infraestrutura necessária para conectar as pessoas daquela comunidade a rede mundial de computadores. Geralmente essas redes são implementadas em locais remotos nos quais o acesso é limitado devido ao alto custo ou a falta de infraestrutura. Essas redes são entendidas como redes construídas por pessoas para pessoas (Belli et al, 2017).

Esse tipo de rede depende de uma participação ativa dos membros da comunidade ou da organização responsável por construí-la, uma vez que o planejamento, desenvolvimento, implantação e manutenção da rede é de responsabilidade dos mesmos como um recurso comum a todos (Srivastava, Ritu, 2017). Essa abordagem possibilita uma nova perspectiva e maior democratização do acesso á informação, uma vez que o problema real que essa iniciativa busca solucionar é a dependência de prestadores com pouco interesse comercial nas áreas e insuficiência de serviços públicos que possam cobrir essa demanda. Nesse tipo de rede isso é enfrentado pois não há necessidade de um intermediário para construção da infraestrutura necessária.

A participação ativa de membros gera um grande impacto sociocultural na região em todas as fases da sua construção. Em primeiro lugar para que o projeto tenha um início é necessário uma mobilização inicial de voluntários ou de organizações daquele local para levar a rede até lá. Já durante a construção os membros mais ativos têm a oportunidade de aprender com a configuração e manutenção dos serviços de forma participativa, além do aprendizado adquirido com a interação social com outros membros (Micholia et al., 2018).

Além dos impactos gerados socioculturalmente, a participação ativa de membros possibilita o crescimento econômico para aquela comunidade de diversas maneiras. Primeiramente, o investimento inicial para construção do projeto cria uma mobilização para aquisição de mão de obra e dos produtos necessários para implementação, os produtos e a mão de obra não precisam ser necessariamente locais. Uma vez implementada a rede consegue proporcionar uma grande economia para os seus membros em relação ao que seria pago a provedores de Internet tradicionais para acesso a rede mundial de computadores. Não somente a redução de gastos pode ser alcançada pelos membros, como também a geração de renda, tendo em vista que o acesso a Internet no local possibilita que empregos remotos como suporte técnico sejam realizados por moradores da região (Micholia et al., 2018).

O advento de novas tecnologias no cenário da telecomunicação permitiu uma maior democratização do acesso tendo grande responsabilidade no surgimento de iniciativas como as redes comunitárias. Dentre essas tecnologias o Wi-Fi tem apresentado um papel

(17)

fundamental na criação e gerência dessas redes. Isso se deve ao fato de que por um baixo custo é possível conectar diversos pontos de acesso dentro de uma comunidade. Assim diversas redes comunitárias são construídas em cima de redes mesh que utilizam essa tecnologia.

2.1 REDES MESH

Redes mesh podem ser caracterizadas como redes sem fio que permitem a interconexão dos seus nodos diretamente. Diferente de outros tipos de redes sem fio tradicionais, como a da de telefonia móvel, redes mesh não necessitam de um intermediário para fazer a conexão entre os seus clientes. Isso permite uma maior escalabilidade à medida que a rede cresce, com a adição de novos equipamentos. Em conjunto com a escalabilidade, redes mesh oferecem autogerenciamento, pois com a adição de novos dispositivos ela automaticamente ajusta os seus caminhos através de protocolos de roteamento para integrá-los (Belli et al, 2018).

Os dispositivos que constituem a rede tanto utilizando ou fornecendo serviços podem ser descritos como nodos. Os nodos dentro de uma rede mesh se diferenciam quanto a sua funcionalidade, podendo desempenhar papéis como clientes, roteadores ou gateway (Seyedzadegan et al, 2011). Esses nodos estão dispostos de diferentes formas dependendo da arquitetura adotada na rede mesh, podendo ser voltada à infraestrutura, ao cliente ou híbridas.

Em arquiteturas voltadas à infraestrutura os nodos roteadores formam uma infraestrutura para os nodos clientes, como um backbone permitindo uma integração de redes wireless já existentes a infraestrutura, através da funcionalidade de gateway dos roteadores como mostra a figura 1. Nas arquiteturas voltadas para o cliente, é feita uma conexão ponto a ponto entre os nodos clientes, com isso os próprios constituem a rede funcional, desempenhando o roteamento e encaminhamento dos pacotes de dados (Akyildiz; Wang, 2015).

(18)

Figura 1: Exemplo de rede mesh com arquitetura voltada a infraestrutura.

Fonte: Sajeeb Saha( 2014)

Já na arquitetura híbrida, existe uma combinação entre as arquiteturas voltadas à infraestrutura e ao cliente como mostra a figura 2, possibilitando aos clientes o acesso à rede através dos roteadores, assim como o estabelecimento de comunicação uns com os outros diretamente (Akyildiz; Wang, 2015). A arquitetura híbrida unifica características importantes pois enquanto a infraestrutura permite conectividade com outras redes como a Internet, a capacidade de roteamento dos clientes permite uma melhor conectividade e uma maior cobertura dentro da rede (Bhushan; Saroliya; Singh, 2013).

(19)

Figura 2: Exemplo de rede mesh com arquitetura híbrida.

Fonte: Parvin ( 2019)

Redes mesh estão englobadas dentro do grupo das tecnologias de redes móveis Ad hoc, que pode ser definida como um sistema autônomo de nodos wireless sem infraestrutura fixa (Bhushan; Saroliya; Singh, 2013). Devido ao seu dinamismo e flexibilidade, além da tecnologia Wi-Fi, outros protocolos de rede podem e são utilizados para implementação desses sistemas fornecendo princípios fundamentais para o seu funcionamento, como é o caso dos protocolos de roteamento. Os protocolos de roteamento são responsáveis por determinar dinamicamente como os nodos se comunicam uns com os outros e são de especial importância nesse cenário para garantia da disponibilidade de comunicação para todos os nodos da rede. OLSR e DSR são exemplos desses protocolos.

Uma rede comunitária pode ser composta por uma ou mais redes mesh dependendo da dimensão da mesma. A sua implementação alcançou sucesso na utilização da tecnologia Wi-Fi pelo baixo custo, mas também pode ser realizada utilizando tecnologias cabeadas como a fibra ótica ou outras tecnologias de rede sem fio como as de telefonia móvel. Não é incomum a combinação de diferentes tecnologias na implementação da rede, como acontece com a fibra ótica que apesar de oferecer baixa interferência e grande largura de banda, possui um alto custo, sendo geralmente utilizada no backbone, combinada com o acesso Wi-Fi (Micholia et al., 2018).

Usualmente, esse tipo de rede tem por intuito além de conectar as pessoas daquele local entre si, também conectá-las ao restante do mundo. Portanto, é necessário que algum ponto possua conexão com a Internet, como ilustra a figura 1. Essa conexão pode acontecer via radiofrequência, via satélite entre outras, dependendo da disponibilidade da tecnologia no

(20)

local e do interesse da comunidade em utilizá-la, sendo implementada de diferentes formas ao redor do mundo.

2.2 EXEMPLOS DE REDES COMUNITÁRIAS

Redes comunitárias se mostraram uma forma eficiente de promover a inclusão digital a locais antes desamparados, por conta da falta de interesse comercial nas áreas e insuficiência de serviços públicos que promovessem a inclusão. Devido a sua eficiência diversas redes comunitárias já foram montadas ao redor do mundo em países como Tailândia, Grécia, México entre outros, para atender essas regiões, como mostra a tabela 1.

Tabela 1 : Exemplos de redes comunitárias pelo mundo.

Fonte: MICHOLIA et al ( 2018)

A tabela 1 mostra diferentes redes comunitárias existentes no mundo, indicando seus nomes, localização, ano de início, se encontra-se ou não ativa, número de nodos que compõem a rede, a tecnologia de rede utilizada, se possui acesso a Internet, e uma descrição. No campo Networking technology, nota-se que quase todas as redes comunitárias utilizam tecnologia sem fio como Wi-Fi como tecnologia de rede. Além disso, nota-se a grande

(21)

proporção que as redes comunitárias podem alcançar, já que as duas maiores listadas na tabela, guifi.net e Freifunk, possuem 40.000 nodos participantes.

2.2.1 Rede comunitária em Penalva

A cidade de Penalva no Maranhão é um exemplo de local afastado dos grandes centros urbanos que não possuía acesso a Internet. Penalva é uma cidade carente no Maranhão localizada a 250 km da capital São Luís como demonstra a figura 3. A cidade interiorana é habitada por diferentes comunidades como índios, quilombolas e fazendeiros, sendo palco de conflitos por posse de terra entre os mesmos. Antes do advento da Internet as denúncias de abusos e conflitos na região deveriam ser realizadas pessoalmente oferecendo risco de vida aqueles que denunciavam. Tendo em visto o risco que corriam, em 2016 com ajuda do instituto Nupef (Núcleo de Pesquisas, Estudos e Formações), os moradores da região se mobilizaram para construir uma rede comunitária no local que antes só contava com sinal da telefonia móvel (Simões, 2019).

Figura 3: Mapa localização Penalva

Fonte: Helton Simões (2019)

O projeto é composto, em suma, pela criação de redes autônomas e provedores comunitários em áreas de exclusão social, para que essas comunidades possam ter acesso a Internet com uma velocidade razoável e custo acessível (Castro; Duarte, 2018). No caso de Penalva a criação da rede autônoma acontece através de um provedor comunitário como ilustra a figura 4. Devido ao difícil acesso a região a solução encontrada para conectar a rede

(22)

comunitária a Internet foi a contratação de um link via satélite. O link foi configurado na rede e os nodos clientes se conectam a Internet através do provedor comunitário. Após alguns minutos da configuração do link foi constatado uma alta latência e baixo desempenho na rede devido ao número de clientes tentando acessá-la. Como solução do problema foi configurado um sistema de vouchers, para limitação do uso máximo da rede (Castro, Oona, 2017).

Figura 4 : Instalação do provedor comunitário

Fonte: Oona Castro (2018)

Para que a rede possa ser mantida pelos próprios moradores da comunidade, responsáveis locais passaram por um processo de capacitação através de videoaulas, provas técnicas e workshops para que estejam aptos a dar manutenção e continuidade ao projeto, como demonstra a figura 5. Além dos cursos voltados a manutenção e configuração da rede, foram realizados cursos de edição de vídeo para implementação futura de um serviço interno de tv e rádio via streaming (Castro, Oona, 2017).

(23)

Figura 5: Workshop realizado na comunidade.

Fonte: Nupef (2018)

Para o futuro o Nupef almeja a expansão do projeto através da criação de outras redes em comunidades próximas nos moldes da construída em Penalva, conectadas via satélite.

2.2.2 Rede comunitária em Campo dos Goytacazes

A cidade de Campo dos Goytacazes está localizada no estado do Rio de Janeiro e tem em uma de suas comunidades chamada Marrecas, um dos projetos de rede comunitária mais conhecidos do Brasil. A comunidade de marrecas está localizada a 310 km da capital Rio de Janeiro, como ilustra a figura 6. Antes da instalação da rede comunitária na comunidade, Marrecas já contava com uma associação de moradores ativa, garantindo força de atuação social

(24)

Figura 6: Mapa localização comunidade de Marrecas.

Fonte: Helton Simões (2019)

O projeto em Marrecas foi desenvolvido pela comunidade local em parceria com o IBEBrasil. A instalação do provedor comunitário, não somente melhorou parte da infraestrutura tecnológica do local, como também promoveu a construção de uma torre metálica maior para aumentar o enlace de rádio entre a localidade e a sede do município onde se encontra a distribuição do sinal de internet (Silva et al, 2017). A torre está ilustrada na Figura 7.

Figura 7: Torre de metálica de Marrecas.

(25)

O provedor comunitário de Marrecas recebe suporte de dois técnicos comunitários, contratados como Microempreendedores Individuais. Eles oferecem suporte e manutenção aos enlaces da rede. Os custos relativos à manutenção e disponibilização do serviço como, link de Internet e custo de associação são rateados por meio da taxa dos associados, sendo o custo em torno de R$ 25 para cada associado, provendo acesso a um link de acesso a Internet com velocidade entre 1 Mbps a 3 Mbps (Silva et al, 2017).

2.3 REDES COMUNITÁRIAS INCENTIVADAS

A construção de uma rede comunitária traz custos em diferentes estágios de sua implementação. É necessário a compra de aparelhos para construção da infraestrutura, uma vez instalada surgem gastos com manutenção de aparelhos defeituosos, pagamento de mão de obra, pagamento do link de Internet entre outros custos. Existem diferentes possibilidades para arrecadação de fundos para uma rede comunitária como patrocinadores: empresas interessadas em custear parte ou a totalidade do projeto em troca de espaço de mídia; Rateio: os próprios moradores da comunidade realizam um rateio para pagar pelo custo do projeto;

Crowdfunding: sistema de financiamento coletivo no qual as pessoas que se interessam pela

ideia fazem uma doação (Silva et al, 2017).

Por ser uma rede construída de forma conjunta os esforços para construção e continuidade do projeto são distribuídos entre os interessados, nesses esforços incluso os custos. Apesar dos diversos benefícios que essa iniciativa conjunta oferece, a falta de incentivo monetário na rede pode ser um empecilho para sua expansão e melhoria, uma vez que nem todos os participantes da rede podem estar propensos a oferecer infraestrutura e suporte de graça. Em adição a esse fato em uma rede comunitária pode ocorrer certa desigualdade quanto ao consumo da rede. Tendo em vista que um cliente da rede que a utiliza basicamente para acessar seus email-s e realizar tarefas básicas na Internet, tem as mesmas despesas com o custeio do projeto, de um cliente que a utiliza para jogos online, no caso da rede utilizar o formato rateio para custeamento.

Outro problema encontrado em redes em geral, são os free-riders. Em redes ponto a ponto, como as comunitárias, é esperado que todos os nodos contribuam com recursos para o bom funcionamento da rede. No entanto, nem todos os nodos contribuem significativamente para o bom funcionamento do projeto, esses são conhecidos como free-rider, nodos que utilizam os serviços de uma rede mas não contribuem em um nível aceitável (Karakaya;

(26)

Korpeoglu; Ulusoy, 2009). O não compartilhamento de banda, o consumo excessivo de recursos e a não prestação de serviços como suporte a comunidade, estão entre as razões por esses nodos não contribuírem em um nível aceitável. Além do incentivo monetário outros tipos de abordagem podem ser utilizadas para prevenir esse comportamento, como o esquema de reciprocidade e de reputação.

A abordagem envolvendo reciprocidade, envolve o nível de contribuição do usuário no quesito troca de serviços entre os nodos (Yahaya; Balewa, 2015). Nesse esquema, um nodo monitora outros nodos e avalia os seus níveis de contribuição e a qualidade do serviço que um nodo recebe é baseado nesse nível. Um exemplo de aplicação que utiliza esse esquema é o BitTorrent, que é um sistema para download de torrents, no qual a velocidade de download do usuário é ajustada conforme a velocidade de upload (Karakaya; Korpeoglu; Ulusoy, 2009), que seria a contribuição do usuário para com os outros usuários da rede. Além de aplicações, esse tipo de abordagem também pode ser utilizada em redes mesh.

Já na abordagem envolvendo reputação, é construído e mantido um sistema de informações sobre a reputação dos nodos, e nodos com boa reputação recebem melhores serviços (Yahaya; Balewa, 2015). A boa reputação geralmente é alcançada quando um nodo é cooperativo e contribui com a rede, já a má reputação é construída quando um nodo apresenta mau comportamento. O mau comportamento na rede geralmente tem duas causas principais, sendo elas: comportamento egoísta, quando um nodo quer preservar seus recursos como energia, poder de processamento e memória, assim afetando o desempenho da rede (Sen, 2006). E comportamento malicioso, quando o nodo passa a atuar de forma que a rede seja danificada, descartando pacotes, fabricando mensagens de erros, modificando pacotes, dentre outras medidas maliciosas que podem ser adotadas para prejudicar a rede.

Esse sistema é mantido a partir de avaliações dadas por nodos que interagiram com o nodo em questão podendo ser positiva, negativa ou as duas. O sistema de reputação pode ser de dois tipos, global, todos os nodos da rede tem os dados de todos os nodos, ou autônomo, onde nodos apenas tem informações sobre os nodos que previamente interagiram (Yahaya; Balewa, 2015).

Devido ao surgimento de problemas como os apresentados acima, surgiram alternativas a implementação tradicional de redes mesh, como as redes mesh incentivadas. Redes mesh incentivadas, são redes onde há incentivo para o usuário disponibilizar diferentes recursos como banda, armazenamento e recursos computacionais a outros usuários da rede (Casino, 2019). Em uma rede mesh comum cada nodo tem sua função dentro da infraestrutura, realizando o roteamento, consumindo banda, propagando serviços etc. Em

(27)

redes mesh incentivadas cada nodo tem certo “valor” de contribuição dentro da rede, de acordo com os papéis que desempenha e a forma como os desempenha, e pelo seu valor pode ser recompensado.

A recompensa monetária pela disponibilização de serviços torna o projeto da rede comunitária mais sustentável e aumenta as possibilidades de expansão da rede, essa recompensa é geralmente disponibilizada utilizando criptomoedas como o ethereum e o bitcoin (Capítulo 3). Atualmente existem diferentes sistemas e projetos que podem ser utilizados para implementação de redes mesh incentivadas. Esses projetos se diferem na forma utilizada para calcular o valor dos seus nodos e no que é levado em consideração para o cálculo.

RightMesh, SmartMesh e iungo são exemplos desses projetos. Essas 3 plataformas compartilham essencialmente o mesmo objetivo. Elas utilizam tokens ERC20(padrão técnico usado para smart contracts na blockchain ethereum) para incentivar usuários a criar redes mesh locais utilizando o Wi-Fi e bluetooth dos seus dispositivos (Casino, 2019).

O projeto Ammbr é um pouco mais ousado do que os projetos citados anteriormente. Esse projeto visa a criação de redes mesh incentivadas, através do uso de equipamento próprio desenvolvido pela empresa como ilustra a figura 8. A rede mesh criada utilizando a tecnologia da Ammbr, disponibiliza Internet utilizando vários roteadores distribuídos que constituem a rede. O incentivo na rede Ammbr é dado da seguinte forma, com seu roteador cadastrado o usuário da rede pode disponibilizar sua banda larga para que outros usuários paguem de forma automática o acesso. O fornecedor da banda larga recebe conforme a mesma é utilizada, através de criptomoedas. A equipe de desenvolvimento da Ammbr espera lançar os nodos dos dispositivos no final do ano de 2019 (Casino, 2019).

(28)

Figura 8: Roteador Ammbr.

Fonte: Ammbr (2019)

Grande parte dos projetos existentes para redes mesh incentivadas, como os citados acima, oferecem o incentivo monetário aos usuários da rede utilizando criptomoedas, que é um meio de troca digital que utiliza a tecnologia blockchain para assegurar as transações.

(29)

3 BLOCKCHAIN

Blockchains podem ser definidas como registros digitais distribuídos de transações assinadas criptograficamente que estão agrupadas em blocos (Yaga et al., 2018). Essa tecnologia surgiu a partir do lançamento da criptomoeda bitcoin no ano de 2009. Quando lançado, o bitcoin apresentou um sistema onde a transferência de informações aconteceria de forma distribuída, essas informações seriam encadeadas em blocos, onde cada bloco representando uma coleção de dados estaria encadeado ao bloco anterior. A cadeia de blocos no bitcoin é utilizada entre os usuários da rede para realizar transferências de dinheiro entre si e para validar as transferências realizadas de forma autônoma, não necessitando do intermédio de uma terceira parte. Esse sistema posteriormente ficou conhecido como blockchain. Essa tecnologia é utilizada dentro de uma rede na qual as transações são efetuadas e validadas pelos próprios usuários.

Dentro da rede blockchain os dados contidos nos registros digitais são distribuídos entre o grupo de nodos que compõem a rede. Assim sua posse não pertence a somente uma entidade, como acontece com os registros de transações bancários. Devido a isso a tecnologia blockchain possui como alguns de seus pilares a transparência e a descentralização, pois a informação está disponível na rede para que todos os usuários possam ver sem a necessidade de uma autoridade centralizadora. Além da descentralização e transparência, o outro pilar que constitui a tecnologia blockchain é a imutabilidade. A imutabilidade na rede blockchain é garantida pelo sistema de encadeamento de blocos que a tecnologia utiliza para validação e confirmação de transações.

3.1 TIPOS DE REDE BLOCKCHAIN

Existem dois tipos de redes blockchain: pública ou privada. Em blockchains públicas, não é necessária uma permissão para se integrar a rede, assim nodos podem entrar e sair a qualquer momento, como não é necessário uma identificação para se unir a rede os nodos geralmente são anônimos. Todos os usuários mantém uma cópia dos registros das transações localmente e utilizam um mecanismo de consenso para tomar uma decisão quanto ao estado do registro. As redes Ethereum e Bitcoin são exemplos de blockchains públicas (Bashir, 2017). Já em blockchains privadas, os nodos que compõem a rede são conhecidos. Assim a entrada e saída da rede está sujeita a autorização prévia. Geralmente esse tipo de rede atende a um grupo de indivíduos ou organizações que resolveram compartilhar o registro de

(30)

informações mas somente entre eles (Bashir, 2017). Hyperledger e Ripple são exemplos de blockchains privadas.

3.2 CONSENSO

Em uma rede blockchain não existe uma autoridade centralizadora, assim os nodos são responsáveis por controlar e construir a rede colaborativamente. No entanto, a rede blockchain está sujeita a falhas bizantinas, em que nodos individuais podem falhar, se tornar maliciosos, agir contra o objetivo comum ou a comunicação na rede pode ser interrompida (Cachin; Vukoli’c, 2017). Tendo em vista a possibilidade de umas dessas situações ocorrem, todos os nodos executam um protocolo de consenso que garante que os nós concordem quanto a ordem dos blocos que estão contidos no registro de transações. Isso é necessário para garantir a resiliência e a confiabilidade da cadeia.

3.2.1 Proof of Work

O whitepaper do bitcoin baseia o consenso entre os seus nodos utilizando votação. Nodos votam com o seu poder computacional, expressando aceitação de blocos válidos trabalhando para estendê-los e rejeitando os blocos inválidos recusando-se a trabalhar neles. Quaisquer regras e incentivos necessários podem ser aplicados com este mecanismo de consenso (Nakamoto, 2008). Nesse tipo de consenso, é realizado uma seleção do nodo responsável por adicionar o bloco na cadeia, a seleção é baseada na resolução de um desafio matemático com o bloco a ser validado. O primeiro nodo a resolver o desafio é o responsável, propagando o valor do seu bloco para os outros nodos. A resolução do desafio matemático é o trabalho que os nodos realizam em blocos válidos.

Uma vantagem do consenso utilizado no blockchain é o incentivo monetário, pois a monetização da rede ao agir honestamente, faz com que os nodos maliciosos sigam a ordem instituída pelo nodos honestos, pois os ganhos financeiros ao agir honestamente, compensam as atuações maliciosas (Greve, 2018). Esse consenso utilizando poder computacional para validar um bloco é conhecido como proof of work ou processo de mineração, e ao entrar na rede todos os novos integrantes aceitam o proof of work que foi empregado no registro das transações.

3.2.2 Proof of Stake

(31)

com energia para realizar a validação dos blocos, pois o trabalho a ser realizado em cada bloco válido, consome muito do desempenho do computador, e em consequência muita energia. O proof of stake é uma das propostas alternativas ao proof of work. No proof of stake em vez dos nodos gastarem recursos computacionais para serem selecionados, eles rodam um processo de seleção aleatório, onde os nodos com as maiores quantidades de criptomoedas tem mais chances de serem selecionados como validadores [29]. Nesse tipo de esquema os validadores estão investindo recursos monetários para poderem fazer a validação do bloco, enquanto no proof of work estão investindo recursos computacionais.

3.3 FUNCIONAMENTO DO PROOF OF WORK

Um nodo da rede inicia uma transação como a transferência de uma quantia de dinheiro para outro nodo da rede, e assina essa transação utilizando o sistema de criptografía asimétrica (sistema que utiliza pares de chaves para cifrar e decifrar, possuindo uma chave privada que permanece somente com o proprietário e uma chave pública que é distribuída). No exemplo de transferência monetária, o cliente informa o valor a ser transferido, o endereço de quem deve receber, e utiliza sua chave privada para assinar a transação.

A transação criada é propagada para os outros nodos da rede, para ser validada. A validação ocorre quando um minerador (usuário realizando a validação), consegue obter uma certa quantidade de 0’s como saída, ao utilizar a função de hash SHA-256 no bloco contendo a transação. A quantidade de 0’s necessária varia conforme o poder computacional presente na rede. Para produzir um hash com a quantidade de 0’s necessária, os mineradores adicionam ao bloco um nonce. O nonce é número aleatório utilizado para gerar um hash válido, a validez é alcançada quando o hash do bloco contém a quantidade de 0’s definida pela dificuldade da rede (Han, 2017). Um processo de força bruta varia o valor do nonce até que o número de 0’s do hash seja atingido, quando um minerador encontra o valor do nonce correto antes que os outros mineradores, ele ganha o direito de adicionar o bloco na cadeia (Whittle,2018).

O processo de utilização de uma função de hash no bloco garante que a mesma entrada tenha sempre a mesma saída, assegurando que qualquer mudança feita no bloco gere uma saída completamente diferente (BINANCE - ACADEMY, 2019).

Uma vez validado o minerador propaga o bloco para os outros mineradores, eles realizam o mesmo processo de validação para garantir que o bloco é realmente válido, antes de adicioná-lo na cadeia. Para garantir a imutabilidade da cadeia de blocos os mineradores

(32)

adicionam o valor do hash do bloco anterior no bloco presente como demonstra a figura 9. Após a inclusão do hash do bloco anterior no bloco atual, cada minerador adiciona o bloco atual a cadeia de blocos e então a transação está completa. Cada minerador da rede possui a sua própria cópia do registro dos blocos, e a cada nova transação realizada o processo de validação e revalidação é realizado, atualizando todos os blockchains da rede garantindo a transparência dos dados.

Figura 9: Representação da cadeia de blocos

Fonte: Ronan Damasco (2017)

Como explicado anteriormente o blockchain surgiu a partir do lançamento da criptomoeda Bitcoin, servindo como base para o funcionamento da mesma. Com o passar do tempo, percebeu-se que os diversos benefícios como a descentralização, apresentados pela tecnologia poderiam ser usados em outros contextos além dos de criptomoedas. Assim iniciativas como a blockchain Ethereum surgiram.

Ethereum é uma plataforma global e de código aberto para aplicações descentralizadas que utiliza Proof-of-Work (Ethereum ORG, 2019). A plataforma possibilita que desenvolvedores desenvolvam aplicações como aplicações financeiras ou mercados descentralizados (Ethereum ORG, 2020), que uma vez na rede ethereum sempre funcionarão como programadas, utilizando o benefício da imutabilidade dos registros que a tecnologia blockchain oferece. Para possibilitar que diversos tipos de aplicações que necessitam de um acordo entre partes ou do compartilhamento de informações funcionem na rede, o ethereum utiliza uma linguagem menos restritiva do que a utilizada na rede bitcoin, que permite que os desenvolvedores criem smart contracts mais flexíveis para suas aplicações.

Smart contracts são programas de computador imutáveis que funcionam de maneira determinística no contexto de uma EVM como parte do protocolo de rede do ethereum,

(33)

podendo ser definidos como, programas digitais baseados no consenso do blockchain, que irão auto executar quando o acordo firmado entre as partes for cumprido (Lauslahti; Mattila; Seppälä, 2017). Assim como contratos convencionais, Smart contracts possuem termos e condições que constituem o acordo entre as partes, e além disso tem a capacidade de coletar dados de fontes externas e processá-las de acordo com os termos especificados no contrato (Lauslahti; Mattila; Seppälä, 2017).

Na rede ethereum a linguagem de programação Solidity é a mais utilizada para construir o código do programa. Após escrito, o programa é compilado, e por último é criada uma transação que desempenha o papel de implementar o programa (Pinna et al, 2019). Uma vez implementado na rede ethereum, o smart contract recebe um endereço, e qualquer nodo que possua o endereço pode interagir com o contrato, sendo que os nodos que interagem com ele devem cumprir o que o código do programa define.

(34)

4 ALTHEA

Althea é um sistema que permite que roteadores paguem uns aos outros por encaminhamento de tráfego. Isso permite que as pessoas montem provedores de serviços de Internet em suas comunidades. Em um rede Althea, ao invés de somente um provedor de Internet que está no topo da rede receber pagamentos mensais, diversas pessoas podem ganhar dinheiro por expandir e fortalecer a rede (Althea, 2019). O pagamento de um roteador para outro no Althea é feito utilizando criptomoedas.

Para que a rede funcione como proposto os nodos desempenham funções diferentes. Nodos de usuário são os nodos de pessoas que querem comprar acesso à Internet no Althea. Nodos de retransmissão (Relay nodes) são os nodos que querem ganhar dinheiro ao encaminhar o tráfego na internet. Nodos gateway, são nodos de retransmissão, que além de encaminhar o tráfego, também estão conectados a um provedor de Internet. Para que uma rede forneça acesso à Internet é necessário pelo menos um nodo gateway, conectado a um nodo de saída via túnel.

Nodos de saída, não necessitam estar fisicamente na rede local, mas podem estar em um datacenter alcançável utilizando a Internet, sendo conectados aos gateways utilizando VPN. Esses nodos têm como uma de suas responsabilidades a tradução de endereços da rede Althea para a Internet (Tremback et al., 2019), atuando como o provedor de serviços de Internet da rede, permitindo assim que os outros nodos da rede foquem apenas na conectividade. Esses nodos possuem IPs públicos que são utilizados para encaminhar o tráfego de clientes conectados para a Internet. Nodos podem desempenhar mais de uma função, como usuários que também encaminham o tráfego. A figura 10 ilustra como os dispositivos estariam dispostos em uma WMN Althea.

(35)

Figura 10: WMN Althea

Fonte: Caciano Machado (2019)

O roteamento é uma das partes mais importantes em uma rede wireless, pois a entrega de pacotes entre os nodos da rede deve acontecer de forma eficiente e confiável, mesmo em um cenário como o das redes mesh. Nessas redes, na qual os nodos estão conectados sem uma infraestrutura fixa, existe grande flexibilidade e dinamismo na comunicação, pois os nodos podem mudar de posição a qualquer momento ou até mesmo estar em constante movimento, como é possível com os smartphones.

Essas particularidades das redes mesh exigem a utilização de protocolos de roteamento específicos, que permitam a criação de novas rotas de comunicação para esses nodos que não estão fixamente em um local, além de garantir que os pacotes encaminhados de um nodo a outro cheguem no destino. Devido a limitação da abrangência do sinal wireless dos dispositivos, é necessário que os nodos se ajudem, encaminhando os pacotes que recebam e que não sejam os destinatários. A depender do tamanho da rede, antes de um pacote alcançar o seu destino, ele será encaminhado por diversos nodos, formando um caminho Multihop entre o remetente e o destinatário (Yih-Chun; Johnson; Perrig, 2002). O protocolo de roteamento deve ser capaz de permitir que os nodos aprendam esse caminho. No Althea é utilizado como protocolo de roteamento o Babel.

4.1 BABEL

Babel é um protocolo de roteamento de vetor de distância, esse tipo de protocolo é caracterizado por utilizar o algoritmo Bellman-Ford para determinar o caminho mais curto

(36)

para transmissão de pacotes entre nodos na rede (Atkinson;Klinker, 1999). O protocolo utiliza o formato TLV para guardar suas informações de roteamento e adiciona múltiplos TLVs dentro de um único pacote (Hauck; Sollberger, 2011). Como explicado anteriormente, devido a limitações de abrangência de sinal dos dispositivos, é necessário a ajuda de outros nodos da rede para o encaminhamento de pacotes, para tal primeiramente é realizado a descoberta dos nodos vizinhos a o nodo que está enviando o pacote.

O Babel utiliza a estratégia do envio de mensagens TLV de hello e de I heard you para realizar a descoberta (Neumann; López; Navarro, 2015). Mensagens Hello são enviadas por padrão a cada 4 segundos, para um endereço multicast, por todas as interfaces babel. Mensagens I heard you, são transmitidas também de maneira periódica de um nodo para todos os outros nodos que enviaram mensagens de hello para ele (Chroboczek, 2011). Com esse processo de envio de mensagens, é possível, além de descobrir os nodos vizinhos, também extrair das informações desses TLVs o custo de enviar e receber mensagens para aquele nodo. As informações dos vizinhos de um nodo e os seus respectivos custos são utilizadas posteriormente na seleção da melhor rota para transmissão de pacotes.

Após a descoberta dos vizinhos e o custo para alcançá-los, os nodos enviam mensagens de update para um endereço multicast, com os destinos que conseguem atingir e com qual custo. Quando um nodo recebe uma mensagem update, ele combina a informação recebida com o custo associado ao vizinho do qual recebeu a informação (Tremback et al., 2019). Essa soma de valores é conhecida como métrica da rota (route metric).

O sistema Althea utiliza uma versão modificada do protocolo Babel, devido ao fato de que protocolos de vetores de distância, recebem informações sobre o custo de um nodo e métricas de rotas para um destino de maneira determinística, sem verificar a informação recebida, o que geralmente não é um problema se a rede onde o protocolo está sendo utilizada for controlada por apenas uma entidade. Já em uma rede Althea, não existe essa central, os dispositivos que compõem a rede estão ativamente competindo para fornecer o melhor serviço, assim nada impediria um nodo de agir maliciosamente e se declarar como a melhor opção para uma determinada rota, mesmo se não for. No próximo parágrafo será mostrado o que o Althea faz para verificar a precisão da métrica.

(37)

4.1.1 Verificação da métrica de rota

Para verificar se a métrica recebida pelos nodos está correta, o sistema Althea adicionou no protocolo babel uma métrica verificável (Tremback et al., 2019). Essa métrica verificável é definida como uma métrica de vetor de distância que tem o mesmo valor quando vista do nodo y para o nodo x, e do nodo x para o nodo y ou quando observada por nodos individuais. Como exemplo a isso, uma métrica verificável de tempo teria o mesmo valor quando um nodo h soma a rota do nodo x para o nodo y, como quando computada pelos nodos envolvidos na operação.

A precisão da métrica verificável anunciada por um nodo é medida comparando o valor da mesma, com o valor da métrica geral anunciada pelo nodo que está atualmente encaminhando o pacote até o destino (Tremback et al., 2019). Em um cenário onde C é o nodo que atualmente encaminha pacotes que A envia para V, e B deseje ser o novo nodo a encaminhar esses pacotes, é esperado que o valor da métrica anunciada pelo nodo B esteja perto do valor da métrica que o C possui para alcançar V.

4.1.2 Métrica de preço

A métrica de preço no Althea também é obtida através do protocolo Babel. Um campo adicional de preço de 16 bit é adicionado para cada TLV de update e em cada rota que está na tabela de roteamento de um nodo (Tremback et al., 2019). Conforme os TLVs de update são propagados na rede, os nodos aumentam o preço da rota utilizando uma constante, diferentes algoritmos para ajuste do preço podem ser utilizados baseados em competição ou demanda.

O protocolo babel leva em consideração a métrica de preço calculada, em conjunto com a métrica de rota, na hora de escolher a melhor rota para encaminhar o pacote de um nodo. O cálculo é dado pela seguinte função, onde as rotas são escolhidas baseadas em m’:

m’ = n x log2(m) + log2(p)

n - Multiplicador constante m - Métrica de rota

p - Métrica de preço

O pagamento dos nodos na rede Althea é feito após o serviço ser prestado, ou seja os nodos realizam o pagamento após terem os seus pacotes encaminhados. Para prevenir que nodos utilizem o serviço e não paguem, o sistema Althea utiliza um sistema de VPN chamado WireGuard. O WireGuard permite que os nodos criem “túneis” entre si e os seus vizinhos,

(38)

possibilitando o bloqueio ou a permissão do envio dos pacotes, baseado no pagamento. Além do controle de quem recebe o serviço, os túneis também garantem a confidencialidade dos dados trafegados. Na rede Althea o nodo de saída é o responsável por prover os serviços de Internet, por essa razão, também existe um túnel entre ele e os nodos clientes, proporcionando um melhor controle dos clientes que estão pagando. Caso o sistema perceba que em certo túnel o pagamento parou, os pacotes são bloqueados e não mais encaminhados.

(39)

5 IMPLEMENTAÇÃO

Nesta seção será apresentado a implementação de um cenário mesh de rede incentivada, descrevendo os recursos utilizados, o escopo adotado e as configurações utilizadas. A implementação tem por objetivo exemplificar uma rede mesh por meio de sua da criação em um cenário virtual. Serão coletados dados do desempenho e configuração dessa rede, assim como da distribuição e acesso a internet pelos diferentes nodos. Esses dados serão expostos nesse trabalho a fim de representar visualmente como as diferentes configurações adotadas pelos nodos de retransmissão afetam o acesso a rede.

5.1 PROPOSTA

Como atividade prática, propõe-se a implementação de um cenário de rede mesh incentivada utilizando máquinas virtuais com o firmware openWRT modificado pelo Althea. O projeto tem como objetivo entender na prática a implementação do cenário, além de realizar medições como concorrência entre os nodos para encaminhar os pacotes, mecanismos de incentivo adotados e simulações de eventos. Para realização dos pagamentos utilizando criptomoedas, será utilizada a blockchain Ethereum em um rede ethereum de teste. A rede mesh terá a seguinte topologia:

Figura 11: Topologia da rede com máquinas virtuais

Fonte: Autor (2020)

(40)

máquinas virtuais, em conjunto com uma máquina representando o usuário sem o firmware Althea instalado. enquanto o nodo de saída será provido pelo sistema Althea para realização dos testes, criando um túnel entre ele e os nodos de retransmissão com o WireGuard.

5.2 SOFTWARES UTILIZADOS 5.2.1 Virtualbox

VirtualBox é um software, multi-plataforma para criar, gerenciar e executar máquinas virtuais. Máquinas virtuais são modelos de virtualização que abstraem recursos computacionais, e permitem a simulação do acesso aos recursos de um computador utilizando outro computador. A técnica de virtualização de máquinas permite diversos benefícios como maior segurança, pois os sistemas virtuais não interferem no sistema que está servindo como host. Flexibilidade, por não estarem limitadas por recursos físicos um máquina virtual pode ser facilmente transferida de um computador para outro (EVEO, 2020).

5.2.2 OpenWrt

OpenWrt é um sistema operacional Linux para sistemas embarcados. Esse sistema disponibiliza um sistema de arquivos que pode ser editado, além do sistemas conter um gerenciador de pacotes. Isso possibilita uma maior liberdade de configuração para o usuário e para desenvolvedores permite a criação de aplicações sem a necessidade da criação de um firmware completo junto.Na prática esse sistema permite a substituição do software padrão de roteadores por um sistema mais maleável e configurável. Essa flexibilidade possibilita a integração de ferramentas não nativas a roteadores comuns, que geralmente só estão presentes em dispositivos mais caros e especializados (Nunez,2020). O openWrt está disponível para diferentes dispositivos e as imagens do sistema estão disponíveis no site do projeto para download.

Nessa implementação será utilizado o firmware openwrt alterado pelo Althea. Como explicado anteriormente, o Althea é um sistema que permite que roteadores paguem uns aos outros pelo encaminhamento de pacotes. Isso foi alcançado através da modificação realizada no OpenWRT, atribuindo essa nova funcionalidade aos dispositivos que o utilizarem.

5.2.3 Rinkeby Testnet

Rinkeby e uma dentre as 4 testnets disponíveis para Ethereum, funcionando como uma rede proof-of-work. Testnets são geralmente utilizadas por desenvolvedores para testar

(41)

projetos e produtos antes do lançamento oficial. Diferente da Main net onde o Ethereum funciona, os ethers nessa rede não tem valor monetário, sendo utilizados para fins de teste. Nessa testnet ethers não podem ser minerados e devem ser requisitados (e-commercebrasil, 2017).

5.2.4 Windows

Windows é um sistema operacional criado pela microsoft que será utilizado pelos nodos clientes para se conectarem a rede mesh. Windows 10 é a versão mais atual do sistema, e foi lançado como sucessor do windows 8.1, apresentando diversas mudanças em relação ao seu antecessor. Esse sistema é atualmente o sistema operacional para desktop mais utilizado do mundo (Hayes, 2018), e por isso foi escolhido para simulação do acesso a rede mesh.

5.3 CRIAÇÃO DO AMBIENTE VIRTUAL

Os ambientes virtuais foram configurados no virtual box, conforme mostra a figura 12, 1 nodo cliente e dois nodos de retransmissão. O virtualBox foi instalado em um notebook cujas informações técnicas estão descritas abaixo. Todos os nodos possuem o firmware OpenWRT instalado.

Figura 12: Ambiente Virtual

(42)

Máquina hospedeira:

Sistema Operacional: Windows 10 64 bit Memória Ram: 8 GB

Processador: Intel core i5 8th

Placa de vídeo: NVIDIA GeForce MX 150 4GB

Cliente 1 :

Sistema Operacional: Althea openwrt-x86-64-combined-squashfs Memória Ram: 2 GB

Memória de Vídeo: 128 MB Processador: 2 Núcleos

Placa de rede1: Placa de rede interna Placa de rede2: Placa de rede interna Placa de rede3: Placa de rede interna Nodo de retransmissão 1 e 2:

Sistema Operacional: Althea openwrt-x86-64-combined-squashfs Memória Ram: 1 GB

Processador: 1 Núcleo

Placa de rede 1: Placa em modo Bridge Placa de rede 2: Placa de rede interna Placa de rede 3: Placa de rede interna

Windows 10: Máquina utilizada para acesso a interface Althea e alguns testes de rede Placa de rede 1: Placa de rede interna

(43)

5.4 INSTALAÇÃO E CONFIGURAÇÃO 5.4.1 Instalação do Althea OpenWRT

O primeiro passo para configuração dos nodos foi o download da imagem do sistema. A imagem está disponível no site “https://althea.net/firmware”.Como explicado anteriormente esse sistema pode ser instalado em diferentes dispositivos, no caso deste experimento foi realizado o download da versão para desktop.

Com o download realizado, a imagem do firmware pode ser importada para o Virtualbox utilizando o comando Vbox VBoxManage convertdd AltheaRoot.img AltheaRoot.vdi. Ao realizar a importação da imagem no formato VDI, o Althea já é inicializado como o sistema do dispositivo, como mostra a figura 13, que representa a primeira inicialização do nodo de retransmissão 1.

Figura 13: Firmware Althea

Fonte: Autor (2020)

A instalação do sistema Althea foi realizada da mesma maneira para todos os nodos da rede. E após a instalação, a interface gráfica do Althea pode ser acessada através do IP 192.168.10.1, como demonstra a figura 14.

(44)

Figura 14: Interface gráfica Althea

Fonte: Autor (2020)

5.4.2 Configuração

5.4.2.1 Configuração da Rede

Realizada a instalação do firmware nas máquinas que integram a rede mesh, é necessário criar um link entre os diferentes nodos. Diferentes tipos de conexões podem ser utilizadas para criação desse link entre o roteador que está oferecendo o serviço de acesso a internet e os nodos que consomem o serviço. Nesse experimento os links na rede estão conectados simulando uma conexão via cabo.

Para que esse link funcione corretamente é preciso que a máquina cliente tenha visibilidade dos nodos retransmissores e vice-versa, assim elas podem enxergar e alcançar umas às outras. Como apontado, essa visibilidade será alcançada ao conectar via cabo os nodos da rede. O primeiro passo para criação desses links em uma máquina virtual é a adição de adaptadores de rede na máquina. Na rede Mesh desse trabalho cada nodo possui 3 adaptadores de rede. Sendo que esses adaptadores podem ser adicionados através das configurações da máquina virtual, no Virtual Box.

(45)

Cada nodo de retransmissão que compõe a rede possui 3 portas: 1 porta WAN, 1 porta LAN e 1 porta MESH. A porta WAN é utilizada para conexão com a rede externa (Internet), a porta LAN é utilizada para conexões locais e fica reservada para o acesso local a máquina. A porta MESH é a porta utilizada para conexão entre os nodos de uma rede mesh. A comunicação entre os nodos em uma rede Althea deve ser feita utilizando uma conexão através de portas Mesh. A figura 15 demonstra a topologia da rede com as respectivas interfaces e os tipos de porta.

Figura 15: Topologia da rede

Fonte: Autor (2020)

As portas podem ser trocadas e configuradas da maneira desejada pelo administrador do roteador através da página mostrada na figura 16 acessando o IP 192.168.10.1 e selecionando a opção “WIFI and Ports” na interface Althea.

ou a partir do arquivo /etc/config/network no firmware Althea. Os únicos IPs estáticos da rede são atribuídos na porta LAN de cada máquina. Para as portas mesh, o sistema se encarrega pela distribuição e atribuição de IPs IPV6.

(46)

Figura 16: Portas

Fonte: Autor (2020)

A figura 16 demonstra a disposição de portas do nodo de retransmissão 1. 5.4.2.2 Configuração do Firmware

Após realizar a instalação do sistema e a configuração da rede é necessário configurar o firmware para que os clientes da rede consigam acessar a Internet. Como explicado na seção sobre o Althea, um nodo gateway e um nodo de saída são necessários para essa conexão, no cenário montado nesse experimento os próprios nodos de retransmissão funcionam como gateway, pois além de encaminhar o tráfego esses nodos estão conectados a Internet.

O nodo de saída é um serviço que no sistema Althea ajuda a proteger a privacidade e consegue encaminhar o tráfego de forma segura a rede externa. Esse nodo pode ser configurado localmente, ou pode estar disponível em um servidor externo, na rede desse experimento foi utilizado um nodo de saída disponibilizado pelo próprio Althea. Cada nodo de saída está configurado para trabalhar com uma blockchain, o Althea possibilita a escolha entre 3 diferentes blockchains, e a listagem dos nodos de saída disponíveis é baseada na blockchain do sistema.

As blockchains disponíveis são: xDai, Ethereum e Rinkeby (tETH). Este trabalho utilizará a rede Rinkeby, por ser uma rede de teste ethereum, que possibilita a simulação da rede principal ethereum sem o custo monetário da compra de ethers. A blockchain do sistema

(47)

pode ser selecionada na página advanced na interface Althea demonstrada na figura 17.

Figura 17: Definição da blockchain do sistema

Fonte: Autor (2020)

Configurada a blockchain do sistema, já é possível selecionar um nodo de saída que esteja configurado com rinkeby na guia settings da interface. A guia settings possibilita a configuração de um nodo de saída através do botão setup exit node, presente na figura 18.

Figura 18: Configuração nodo de saída

Fonte: Autor (2020)

Ao clicar na opção setup exit node, uma lista com os nodos de saída disponíveis é mostrada. Geralmente os administradores desses nodos, exigem uma autenticação para

(48)

conexão, no nodo de saída selecionado a autenticação acontece via SMS e após informar o código de verificação a conexão é realizada com sucesso e já é possível navegar na Internet. Atualmente o Althea possui um nodo de saída pré configurado para testes, chamado test. A figura 19 demonstra a conclusão com sucesso do processo de conexão com o nodo de saída de teste.

Figura 19: Nodo de Saída

Fonte: Autor (2020)

O processo de configuração da blockchain do sistema e do nodo de saída deve acontecer em todos os firmwares da rede, inclusive nos que atuarão somente como clientes. Uma vez conectados ao nodo de saída, os dispositivos da rede já conseguem visualizar seus vizinhos e estão na rede Rinkeby.

(49)

6. EXPERIMENTOS

6.1 ADIÇÃO DE FUNDOS

Em uma rede mesh incentivada, os nodos recebem pelo encaminhamento do tráfego de outros nodos da rede. Para que essa funcionalidade seja alcançada, o firmware Althea disponibiliza uma carteira blockchain que funciona de forma automática com a blockchain escolhida para o sistema. Essa carteira contém um endereço único do nodo na blockchain, de onde é possível receber e enviar fundos. Na rede de teste RinkeBy esses fundos são representados por tETH, moeda virtual ether sem valor monetário.

No primeiro experimento da rede foi realizado a adição de fundos para a carteira do nodo cliente. O nodo possui o endereço presente na figura 20:

Figura 20: Endereço de pagamento

Fonte: Autor (2020)

Os fundos na rede rinkeby devem ser requisitados através de um post em uma rede social como o twitter, O post mostrado na figura 21 foi o utilizado para requisitar os fundos para o endereço da figura 20.

Figura 21: Post Twitter

Fonte: Autor (2020)

Para validação do usuário e adição dos fundos é necessário copiar a url do post no link “rinkeby.io/#faucet” e informar a quantidade de tETHER desejada, como demonstra a figura

(50)

22. Nesse experimento foram requisitados 3 ethers.

Figura 22: Requisição de fundos

Fonte: Autor (2020)

Algum tempo após a requisição, os fundos podem ser observados na guia finanças do cliente, mostrada na figura 23. Essa sincronização indica que o endereço blockchain do nodo está integrado a rede e pode receber e enviar fundos com sucesso.

Figura 23: Carteira com fundos

Fonte: Autor (2020)

6.2 PAGAMENTO E COBRANÇA POR USO

Como explicado na seção sobre o Althea [4 ALTHEA], para vender acesso a Internet em uma rede Althea o nodo que prove o encaminhamento deve estar conectado a Internet e possuir a opção de vender largura de banda ativada. Os nodos pagam ao nodo de saída ao qual estão conectados pela transmissão do pacote. Esse pagamento é baseado em

(51)

consumo/Gigabyte, ou seja a cada 1 gigabyte utilizado pelo nodo é cobrado um preço, e o preço é definido pelo organizador da rede. A figura 24 demonstra o total consumido pelo nodo cliente 1 e o preço desse consumo. Em uma rede Althea os pagamentos não acontecem diretamente na blockchain, mas sim utilizando micropagamentos, reduzindo bastante os custos das transações.

Figura 24:Consumo e preço

Fonte: Autor (2020)

A partir da guia de finanças no dashboard do usuário, mostrada na figura 24, o cliente pode acompanhar o seu consumo e verificar quanto está pagando por isso. Esses dados podem ser filtrados como mensais, semanais ou diários e podem ser exportados utilizando o formato csv.

6.3 TESTES FUNCIONAMENTO DA REDE

Os testes iniciais de funcionamento da rede foram feitos a partir de uma máquina Windows conectada à máquina cliente que possui o firmware do Althea instalado. Os testes realizados seguiram a topologia mostrada na figura 15, com uma máquina Windows conectada a interface LAN do cliente 1. O teste foi disposto dessa maneira para simular um usuário que possua um computador em casa conectado a um roteador sem conexão WAN, mas que esteja na rede Althea local. O ambiente utilizado foi o ambiente de teste mostrado na seção [6.3.2.1 Configuração da rede], seguindo a topologia apresentada na figura 15.

(52)

6.3.1 Rastreamento da rota para Internet

Para o teste de rastreamento foi utilizado o comando traceRT. TraceRt é um comando para visualizar um pacote de rede sendo enviado e recebido e a quantidade de lugares em que ele passa até chegar no seu destino final. No teste indicado na figura 25, fizemos o rastreamento da rota para o website do google.

Figura 25: TraceRt

Fonte: Autor (2020)

Na figura 25 podemos visualizar que até chegar ao destino o pacote efetuou 11 saltos, sendo o primeiro salto para o roteador Althea cliente, seguindo para o nodo de saída representado pelo IP 172.168.0.254. No terceiro salto a resposta de tracert pode estar bloqueada pelo administrador, mas mesmo assim o pacote é encaminhado para o endereço do próximo salto. Neste momento os dois nodos de retransmissão estavam ligados e conectados ao cliente, além de conectados ao nodo de saída, representado no teste pelo segundo salto. 6.3.2 Failover

Ao executar o traceRT e acompanhar o consumo dos dados a partir da interface Althea dos nodos, identificamos que o nodo cliente estava utilizando o nodo de retransmissão 2 para que seus pacotes fossem encaminhados. De acordo com a pesquisa realizada, o protocolo de roteamento utilizado pelo firmware faz a checagem TLV [4.1 BABEL] a cada 5 segundos, e em caso de falha, encontra uma nova rota de saída.

Sendo assim, o nodo de retransmissão 2 foi desligado enquanto o cliente o estava utilizando para transmissão de pacotes. Houve uma perda de sinal durante alguns segundos, por conta da redefinição da rota de saída, mas logo após os pacotes voltaram a ser encaminhados dessa vez utilizando o nodo de retransmissão 1, isso pode ser observado no dashboard do usuário, no campo de uso de dados como demonstra a figura 24.

Referências

Documentos relacionados

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

c.4) Não ocorrerá o cancelamento do contrato de seguro cujo prêmio tenha sido pago a vista, mediante financiamento obtido junto a instituições financeiras, no

Este estudo, que tem como objetivo a investigação do imaginário de estudantes de Psicologia sobre o primeiro atendimento clínico, insere-se num

Quando os dados são analisados categorizando as respostas por tempo de trabalho no SERPRO, é possível observar que os respondentes com menor tempo de trabalho concordam menos que

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Ricoeur retoma tanto o gnosticismo como o próprio Agostinho (e ainda o mito da queda ou adâmico) para tratar do conflito de tradições na interpretação da problemática do mal como

Estabelecer e padronizar critérios de concepção, dimensionamento e padrão mínimo de apresentação de projetos de segurança contra incêndios do Sistema de

O ESTADO DA PARAIBA, por meio da SECRETARIA DE ESTADO DA EDUCAÇÃO, no uso de suas atribuições legais, torna pública a abertura das inscrições, para preenchimento