Blockchain: As principais aplicações na área de Redes e Telecom.

 

Ultimamente alguns de nossos artigos têm mostrado a relação entre as inovações tecnológicas no segmento de Redes e Telecom e as habilidades e competências que um Engenheiro de Redes ou SysAdmin deverão buscar para dominar as tecnologias inerentes, agregar valor à sua carreira profissional e potencializar sua empregabilidade. Só para constar, os posts sobre IoT, Machine Learning, IEEE 802.11ax tiveram este propósito.

Neste post, vamos discorrer sobre a tecnologia Blockchain, suas aplicações, inclusive na área de Redes e Telecom, e quais os conhecimentos que os Engenheiros de Redes e SysAdmin deverão adquirir para não se sentirem fossilizados.

Blockchain.

Se você acompanha notícias sobre tecnologia, provavelmente já ouviu falar muito sobre blockchain. Já deve ter lido sobre os mistérios que envolve a figura de seu criador: O mito Satoshi Nakamoto; a respeito das promessas e possibilidades de aplicações; dos bilhões de dólares já destinados às pesquisas; e como alguns setores da indústria como: o sistema bancário; o ecossistema Telecom, dentre outros estão empolgados com a tecnologia blockchain. Alguns entusiastas chegam a declarar que a blockchain é a gênesis de uma nova Internet

Para muitos – neófitos na área ou não –, quando ouvem ou lêem algum título com a palavra blockchain logo vem à mente o termo Bitcoin, o que é natural, vez que durante muito tempo ambos os termos foram tratados como um só coisa. E essa associação não parou por ai, outras criptomoedas, além do Bitcoin dependem da blockchain para existirem. Contudo, associar a blockchain apenas às criptomoedas é limitar o enorme potencial que esta tecnologia promete, sobre tudo em soluções para a indústria de Redes e Telecom.

Desmitificando um pouco essa confusão, podemos comparar a Bitcoin e outras criptomoedas, com uma das muitas aplicações passiveis de “rodar” sob um Sistema Operacional, neste caso a blockchain.

Mas o que a Blockchain?

Uma boa definição: Blockchain, também conhecida como “o protocolo da confiança, é uma plataforma operacional constituída por blocos – daí o motivo do nome blockchain -, de informações que são armazenados em bancos de dados distribuídos, os quais estão instalados e configurados em redes descentralizadas P2P (per to per). Cada bloco – chamado de Livro de transação ou Ledger-, contém registros de transações que podem ser: uma criptomoeda, contratos inteligentes, ou outras informações; e um hash que aponta para um outro hash de um bloco anterior. Pense em hash como uma chave criptográfica composta por um número muito grande.

Toda vez que um novo bloco é criado ele é enviado para todos os participantes (nós P2P) da rede para que seja verificado. Uma vez que o bloco passa pela verificação de todos os componentes ele é adicionado à blockchain. Este processo de verificação / auditoria é chamado de mineração e o resultado é o consenso, isto é, a concordância, por todos os nós P2P, de que o bloco é válido ou não.

Algumas características de destaque da blockchain que consolidam sua segurança são:

  • Hash: Cada hash de um novo bloco na cadeia é baseando no hash do bloco anterior da cadeia;
  • Consenso: Para que uma transação seja válida, todos os participantes devem concordar com sua validade;
  • Proveniência: Os participantes sabem de onde veio o ativo e como sua propriedade mudou ao longo do tempo. Ativo aqui, pode ser uma criptomoeda, um contrato, um processo, informação, etc.;
  • Imutabilidade: Nenhum participante pode adulterar uma transação depois de ter sido gravada no Ledger. Se uma transação estiver em erro, uma nova transação deve ser usada para reverter o erro e ambas as transações são então visíveis;
  • Finalidade: Um único Ledger compartilhado fornece um lugar para ir para determinar a propriedade de um ativo ou a conclusão de uma transação;
  • Mineração / Mineradores: Hardware de computação altamente especializado, conectam-se à rede P2P, utilizam seu poder de processamento para escutar solicitações de transação em toda a rede, executam o algoritmo Proof-of-Work (Prova de Trabalho) ou PoW e montam uma lista de transações válidas.

Figura 1: Representação de uma Blockchain

Quando surgiu a Blockchain

Blockchain surgiu em 2008 como uma tecnologia implícita ao Bitcoin, razão pela qual durante muito tempo ambos eram tratados com uma só coisa. Seu criador – Satoshi Nakamoto – é um mito, já que não se sabe tratar-se de uma pessoa ou grupos de pessoas. Você certamente – em uma rápida pesquisa no Google –, encontrará vários artigos de afirmação ou negação da identidade do Satoshi Nakamoto.

A partir de 2009, surgem outras criptomoedas – cerca de 700 -, suportadas pela Blockchain, como também outras aplicações que tornaria a Blockchain como a tecnologia disruptora da forma convencional de efetuar transações, sobretudo as transações de negócios.

Alguns setores atraídos pelo potencial da Blockchain já investiram alguns bilhões de dólares em pesquisas e implementações de aplicações suportadas pela Blockchain.

Junte-se a isto as iniciativas Open Source de projetos blockchain, destacadamente o projeto Ethereum. Ethereum é uma plataforma baseada na tecnologia blockchain que permite aos desenvolvedores criar e implantar aplicativos descentralizados. O core do Ethereum é o chamado Smart Contract (Contrato Inteligente) que é a definição do código de computador – que roda em uma EVM (Ethereum Virtual Machine) -, e que pode facilitar a troca de: dinheiro, conteúdo, propriedade, ações ou qualquer coisa de valor e, considerando todas as características blockchain como: sem censura, tempo de inatividade, ausência de fraude ou interferência de terceiros.

Mas o que são Contratos Inteligentes?

Um contrato inteligente é um código de computador, cuja finalidade é representar um acordo ou conjunto de regras que regem uma transação de negócios; o código (contrato) é armazenado na blockchain e é executado automaticamente como parte de uma transação. Os contratos inteligentes podem ter muitas cláusulas contratuais que poderiam ser feitas parcialmente ou totalmente Self-Executing, Self-Importing ou ambos. Sua finalidade é fornecer a segurança superior à lei de contrato tradicional ao reduzir os custos e os atrasos associados com contratos tradicionais. A priori, este contrato pode ser codificado com qualquer linguagem de programação, mas já existem ambientes específicos – em tese mais fáceis –, para desenvolvimento desses contratos. Os exemplos mais clássicos são: Solidity Language e Serpent, mas também pode ser utilizada C++. Veja abaixo um exemplo de um contrato codificado em uma linguagem de programação.

Figura 2: Exemplo de Smart Contracts desenvolvimento em Solidity

Veja abaixo alguns casos de uso desta inovação tecnológica.

Serviços financeiros

A indústria de serviços financeiros tem vários exemplos de casos de uso para a blockchain. Vejamos:

Importação / Exportação

As empresas precisam agilizar o processo de obtenção de aprovações de várias entidades jurídicas (alfândegas, autoridades portuárias, caminhões ou transportes ferroviários, etc.). A blockchain pode ser usada pelas entidades jurídicas para assinar todas as aprovações, e manter todas as partes informadas sobre o status de aprovação, quando as mercadorias são recebidas, e quando o pagamento é transferido do importador para o banco do exportador.

Seguro

As empresas seguradoras precisam de uma maneira eficiente de processar declarações, verificar se um sinistro realmente ocorreu, e indenizar os clientes com pagamentos justos e oportunos. Com o processamento automatizado de reivindicação de seguro, as condições políticas são escritas em um contrato inteligente armazenado na blockchain e conectado a dados publicamente disponíveis através da Internet. Sempre que sinistro ocorre e é relatado por uma fonte confiável, a apólice de seguro é acionada automaticamente, a declaração é processada de acordo com os termos da diretiva especificada no contrato inteligente e o cliente é indenizado.

Governo

Uma quantidade considerável de atividades do governo envolve a gravação de transações e controle de propriedade de ativos, todos os quais podem ser tornados mais eficientes e transparentes através do uso de blockchain.

Gestão da cadeia de suprimentos

Quando algo dá errado com um sistema complexo, como por exemplo: uma aeronave, é importante saber a procedência de cada componente envolvido, através da gestão da cadeia de suprimentos, considerando o fabricante, data de produção, lote e até mesmo o programa da máquina de manufatura.

Blockchain detém detalhes completos de procedência de cada parte do componente, acessível por cada fabricante no processo de produção, os proprietários de aeronaves, mantenedores e reguladores do governo.

Saúde

As empresas de medicina de grupo precisam de um sistema mais eficiente e seguro para gerenciar registros médicos, pre-autorizar pagamentos, liquidar reivindicações de seguro, e realizar e gravar outras transações complexas. A blockchain é a solução para muitos dos problemas deste setor.

E os casos de uso na área de Redes e Telecom?

São muitos os casos de uso no universo de Redes e Telecom, vamos citar apenas alguns de usos mais imediatos da blockchain: IoT, Gerência de Redes, Segurança, SDN

A Internet das coisas (loT)

A tecnologia Blockchain é a possibilidade que faltava para resolver questões de segurança, privacidade e confiabilidade na Internet das Coisas. Pode ser usada no rastreamento de bilhões de dispositivos conectados, possibilitando o processamento de transações e a coordenação entre dispositivos. A abordagem descentralizada eliminaria pontos únicos de falha, criando um ecossistema mais resiliente para dispositivos. Os algoritmos criptográficos usados por blockchains tornariam os dados, trafegando nos dispositivos, mais privados.

Devido as nuances do consenso, o Ledger é à prova de falsificação e não pode ser manipulado por agentes mal-intencionados porque ele não existe em um único local, e os ataques “Man-in-the-Middle” não poderão ser executados porque não há um único segmento de comunicação que possa ser interceptado. A Blockchain torna possível o envio de mensagens P2P entre dispositivos em uma rede IoT. Nesse modelo, a blockchain tratará as trocas de mensagens entre dispositivos semelhantes a transações em uma rede bitcoin. Para permitir trocas de mensagens, os dispositivos utilizarão contratos inteligentes que regularão o acordo entre as partes.

Gerenciamento de Redes

Acredito que a maioria dos nossos seguidores já possuem conhecimento dos modelos de gerenciamento de redes definidos no ISO/OSI e validados pela UIT que é o FCAPS – Fault, Configuration, Account, Performance e gerenciamento da Segurança. Para aqueles que não estão familiarizado com a sigla, segue um breve resumo, convindo recomendar uma leitura mais aprofundada em [Capítulo 3 de Fundamentals of EMS, NMS and OSS/BSS; Autor Jithesh Sathyan; Editora O’Reilly books] ou então na Wikipedia sobre o assunto.

Fault Management Define os métodos e processos para o rápido reconhecimento, isolamento, login e remediação das falhas em uma rede de computadores
Configuration Management Trata as regras e processos para armazenamento, recuperação, alteração, gerenciamento e planejamento futuro da rede de computadores
Administration Management Identifica processos para rastrear a estatística de uso e a utilização da rede para que os recursos medidos possam ser cobrados apropriadamente.

Em redes sem faturamento, essa função é chamada de Gerenciamento de Administração e destina-se a rastrear as funções, credenciais e ações dos usuários.

Performance Management Garante que as redes funcionem conforme pretendido, em muitos casos validando os acordos de garantia de conformidade.
Security Management Define orientações e processos para garantir integridade de dados, redes e acessos

Sem sombra de dúvida o gerenciamento de redes sob a égide do FCAPS funciona muito bem em ambientes centralizados e de provedor único. Se era uma abordagem eficiente há três décadas, deixou de sê-lo com o avanço da Cloud Computing onde muitas empresas distribuíram cargas de trabalhos em várias redes na nuvem. Nesta nova configuração, como garantir que o fluxo de trabalho seja executado corretamente fim a fim? No caso de falha, como saber qual provedor é o responsável? Se o fluxo de trabalho for comprometido, como saber onde, intensidade e por quanto tempo a falha não foi identificada?

A tecnologia Blockchain pode ser a respostas para estes e outros questionamentos referentes ao gerenciamento de rede com uma abordagem FCAPS e de forma totalmente descentralizada.

Segurança de Redes

A imutabilidade perfeita não existe; A blockchain, como qualquer outra rede, é tecnicamente propensa a modificações. Mas como os computadores, ou nós, em uma rede blockchain são distribuídos, o algoritmo (Prova de Trabalho) e o poder de computação necessários para fazer alterações tornam a modificação quase impossível. Para alterar uma cadeia, seria necessário assumir o controle de mais de 51% dos computadores no mesmo Ledger distribuído e alterar todos os registros transacionais em um curto espaço de tempo – em 10 minutos para o Bitcoin. Até hoje, isso nunca aconteceu.

 Melhoria da confidencialidade e integridade dos dados

Embora a Blockchain tenha sido originalmente criada sem controles de acesso específicos (devido à sua distribuição pública), algumas implementações blockchain agora abordam os desafios de confidencialidade de dados e controle de acesso. Esse é claramente um desafio crítico em uma época em que os dados podem ser facilmente manipulados ou falsificados, mas a criptografia completa dos dados blockchain garante que esses dados não estarão acessíveis a pessoas não autorizadas enquanto em trânsito (tampouco ou nenhuma chance de sucesso ataques Man in The Middle – MiTM).

Proteger mensagens privadas

Ao contrário da criptografia end-to-end empregada pelo WhatsApp, poderíamos utilizar a tecnologia blockchain para proteger os metadados dos usuários. Os metadados seriam distribuídos aleatoriamente ao longo de um Ledger e, portanto, não estariam disponíveis em um único ponto, a partir do qual eles poderiam ser comprometidos.

DNS mais seguro / Redução de ataques DDoS

O botnet Mirai mostrou como é fácil para os criminosos comprometer a infraestrutura crítica da Internet. Ao derrubar o provedor de serviços do sistema de nomes de domínio (DNS) para a maioria dos principais sites, os invasores conseguiram interromper o acesso ao Twitter, Netflix, PayPal, Spotify e outros. Uma abordagem de blockchain para armazenar entradas de DNS poderia, em teoria, melhorar a segurança removendo o alvo único e atacável.

A dificuldade atual na prevenção de ataques DDoS vem do sistema de nomes de domínio (DNS) existente. O DNS é um mapeamento parcialmente descentralizado de endereços IP para nomes de domínio e funciona como uma lista telefônica para a Internet. Este sistema é responsável por resolver nomes de domínio legíveis por humanos em endereços IP legíveis por máquina.

O fato de ser apenas parcialmente descentralizado significa que ainda é vulnerável a hackers, porque eles são capazes de direcionar a parte centralizada do DNS (aquela que armazena a maior parte dos dados) e continuar a invadir um site após o outro.

A implementação da tecnologia blockchain iria descentralizar totalmente o DNS, distribuindo o conteúdo para um grande número de nós e tornando quase impossível para os hackers atacarem. Os direitos de edição de domínio seriam concedidos somente àqueles que precisam deles (proprietários de domínio) e nenhum outro usuário poderia fazer alterações, reduzindo significativamente o risco de acesso ou alteração de dados por partes não autorizadas. Usando blockchains para proteger os dados, um sistema pode garantir que seja invulnerável aos hackers.

Blockchain e SDN

Imagine uma rede SDN, implementada via OpenFlow, com diversos controllers. Devido a arquitetura de controle centralizado, esta rede, apresenta algumas questões de segurança, desempenho, confiabilidade e escalabilidade.

Agora suponha esta mesma rede em uma arquitetura fisicamente distribuída, onde cada controle se comportaria como um nó de uma rede P2P. Associe essa rede à tecnologia Blockchain, Ledgers, hashes, consenso e contratos inteligentes e agregaremos a esta rede: segurança, confiabilidade, desempenho e escalabilidade.

E finalmente o Hyperledger.

Hyperledger é um projeto colaborativo iniciado, em dezembro de 2015, pela Linux Foundation com o propósito de criar uma plataforma útil, fácil de usar e robusta onde qualquer indivíduo interessado em desenvolver um software baseado em blockchain possa usá-la como referência, definindo objetivos mais específicos como: modularidade; extensibilidade; facilidade de uso; variedade de métodos criptográficos. Cada um desses objetivos contribui para a visão geral do Hyperledger. Por exemplo, a modularidade contribui para a interoperabilidade entre sistemas que, por sua vez, potencializa a flexibilidade do projeto, e aumenta a cobertura de casos. A extensibilidade também contribui para aumentar a cobertura de novos casos, já que funcionalidades novas podem ser adicionadas. A arquitetura geral do Hyperledger consiste de 4 categorias:

  • Identidade (Identity)
  • Política (Policy)
  • Blockchain; e
  • contratos inteligentes (Smart Contracts)

De forma geral, essas categorias possuem responsabilidades específicas: a identidade é responsável por identificar as entidades participantes; a policy é responsável por regular o acesso e responsabilidades dessas entidades; e a blockchain provê o serviço P2P que guarda o estado do sistema. Vale destacar que essas categorias são divisões lógicas do software e não necessariamente significam serviços fisicamente separados

O projeto Hyperledger conta hoje com mais de 250 membros dos mais diversos segmentos da indústria , incluindo tecnologia (Cisco, Fujitsu, Hitachi, IBM, Intel, NEC, NTT Data, Red Hat, VMware); financeiro (BNDS, ABN AMRO, Banco ANZ, BNY Mellon, Grupo CLS, CME Group, Depository Trust & Clearing Corporation (DTCC), Grupo Deutsche Börse, JP Morgan, State Street, SWIFT, Wells Fargo); academia (Cambridge Center for Alternative Finance, Blockchain em Columbia, UCLA Blockchain Lab); e outros

O que o Engenheiro de Redes e/ou SysAdmin deverão saber para terem um diferencial curricular?

Até aqui, por conta do objetivo do post, tratamos superficialmente os conceitos e técnicas envolvidas na Blackchain. Abaixo, algumas recomendações de que você deve estudar para começar a se aprofundar nesta tecnologia tão promissora:

Algoritmo P2P: Você deverá ter o pleno entendimento de como funcionam e como implementar uma rede P2P. Existe uma variedade de opções P2P. Comece com as RFC’s 5694; 7574 e outras.

Banco de Dados Distribuídos: Você deverá conhecer com funciona o banco de dados distribuídos e dominar conceitos como: Replicação (síncrona, assíncrona); Fragmentação (horizontal, vertical). Os livros a seguir oferecem uma boa base:

T. Ozsu and P. Valduriez, Principles of Distributed Databases(2nd edition), Prentice-Hall,ISBN 0-13-659707-6

Elmasri and Navathe, Fundamentals of database systems(3rd edition), Addison-Wesley Longman, ISBN 0-201-54263-3

Algoritmo de consenso (Proof of work – Pow): O Algoritmo de consenso ou de Prova de Trabalho é o core da Blockchain e, portanto, merece uma atenção especial. Você encontrará várias referências sobre Prova de Trabalho, infelizmente – na internet -, encontrará poucos trabalhos com consistência conceitual, mas poderia iniciar pelo Hashcash de Adam Back, citado no trabalho original de Satoshi Nakamoto.

Ethereum e Contratos Inteligentes: Ethereum é a aplicação que roda na blockchain, que juntamente com os contratos inteligentes, permitem aplicações diferentes da bitcoin. Procure conhecer um pouco mais sobre Ethereum e contratos inteligentes para entender como associar a blockchain em outras tecnologias, inclusive às relacionadas a Redes e Telecom.

Criptografia e Hash: A palavra criptografia assusta, talvez pela suposição da complexidade matemática envolvida. Mas pasme! A matemática que você precisa conhecer é aquela apreendida no ensino médio. Complemente com o domínio dos conceitos de hash, função hash

O mercado de trabalho para Engenheiros Blockchain

O mercado de trabalho para a indústria de TIC e Telecom, não obstante a crise econômica por qual passa nosso país, continua em franco crescimento e a blockchain, juntamente com o projeto Hyperledger – tendo em vista a inerente potencialidade -, contribuem significativamente no número de vagas que o setor disponibiliza.

Com a recente explosão pelo interesse pela tecnologia – pelas mais diversas indústrias -, a necessidade por Engenheiros Blockchain é enorme, contudo a ausência de formação gera uma lacuna entre a oferta de vagas e a demanda por profissionais.

Mercado Brasileiro/Americano/Europeu, salários

No Brasil o salário é na ordem de R$ 120 mil x ano, mas se você tiver domínio do inglês e coragem para participar de um processo de offshore outsourcing poderá ganhar até USD 60 mil x ano (49 mil Euros x ano), algumas fontes entretanto declaram que o salário médio – no mercado americano e europeu -, pode chegar até USD 130 mil x ano.

Onde buscar formação Blockchain

Infelizmente, embora bastante inspiradora e motivadora, educar e formar mão de obra que possam atender a demanda do mercado é um dos desafios da blockchain. A ausência de programas de treinamento de qualidade em torno de blockchain significa que muitas pessoas ou perderão oportunidades neste novo e excitante campo, ou pior ainda – farão escolhas de carreira prematuras baseadas em uma compreensão errônea do que é possível e do que não é.

No Brasil você poderá encontrar cursos interessantes em algumas Instituições de Ensino Superior (IES) como USP, na Escola Politécnica (Poli); Unicamp. Outras IES privadas também têm ofertas focadas em Bitcoin.

Na plataforma Coursera, você encontrar diversas IES internacionais oferecendo cursos on-line sobre o tema.

Existem outras empresas de treinamentos oferecendo cursos Blockchain focados em Ethereum e/ou Bitcoin.

Concluindo

O assunto é extenso, complexo e excitante. Obviamente não dá para cobrir todos os aspectos da tecnologia Blockchain em um único artigo, dada amplitude das técnicas e conceitos envolvidos. Recomendamos que você conheça um pouco mais sobre esta tecnologia considerada disruptora e que – a depender do projeto Hyperledger -, poderá ser, com conjeturam alguns pesquisadores, a gênesis de uma nova Internet.

Por fim, neste artigo, voltamos a tratar de tecnologias que envolvem conceitos de programação: codificação dos contratos inteligentes na blockchain e controles na SDN. Não estamos aqui aconselhando que você, como condição “sine qua non” para permanecer no mercado, adquira competências em desenvolvimento e programação, mas sim que dispenda um pouco de seu tempo para conhecer as tecnologias em questão. Afinal, dependendo do porte da rede que você gerencia, os serviços relacionados à blockchain e/ou SDN poderão ser contratados do departamento de desenvolvimento de sua empresa ou então de empresas terceiras. Neste contexto, você deverá, no mínimo, ter discernimento do que pedir em um projeto blockchain.

Até o próximo post

JC Vitorino, Sócio Diretor da CloudCampus

Professor Universitário há mais de 30 anos, Mestre em Engenharia da Computação pela USP/IPT e Bacharel em Matemática pela PUC/SP

Deixe um comentário