Banco de Dados

20 fev, 2017

Implementando blockchain para aplicações cognitivas de Internet das Coisas – Parte 01

Publicidade

Soluções de Internet das Coisas (IoT) estão sendo adotadas com sucesso em muitas áreas diferentes, tais como cuidados de saúde, armazenagem, transporte e logística. As soluções atuais de Internet das Coisas, centralizadas e baseadas na nuvem, podem não crescer e atender aos desafios de segurança enfrentados por empresas de grande porte. O uso de blockchain como um registro distribuído de transações e comunicação peer-to-peer entre os nós participantes pode resolver tais problemas. Este artigo fornece uma visão geral das soluções de Internet das Coisas habilitadas para blockchain e demonstra como usar a plataforma IBM Blockchain para uma aplicação de Internet das Coisas em um ambiente multi-parceiros.

O que é blockchain?

Blockchain refere-se a um registro distribuído, onde uma lista de transações é armazenada em vários servidores participantes em vez de em um servidor de transações central. A cada participante da rede de blockchain é concedido acesso a uma cópia atualizada desse registro criptografado para que eles possam ler, escrever e validar transações.

Enquanto os principais cenários de uso do blockchain estão no domínio financeiro, o blockchain recentemente ganhou muita atenção em soluções de Internet das Coisas. Ele pode ajudar significativamente a alcançar a visão da Internet das Coisas descentralizada, facilitando transações e a coordenação entre os dispositivos que interagem.

Internet das Coisas e a Plataforma IBM Watson IoT

A Internet das Coisas trouxe enormes oportunidades para empresas e consumidores, especialmente nas áreas de saúde, armazenagem, transporte e logística. As soluções de IoT envolvem uma rede complexa de dispositivos inteligentes, e fornecem a oportunidade de desenvolver novos serviços para dispositivos físicos conectados baseados na nuvem – de máquinas físicas e carros até eletrodomésticos. Existem três principais níveis de soluções de Internet das Coisas da IBM suportadas pela nuvem, cada uma com suas próprias responsabilidades específicas:

  • Dispositivos/gateways: Estes são dispositivos inteligentes ou sensores que recolhem dados sobre o mundo físico, tais como a temperatura de um container refrigerado de transporte de alimentos perecíveis, ou dados de saúde de um paciente que está internado no hospital. Os dispositivos estão conectados à Internet para transmitir esses dados de forma segura para uma plataforma de Internet das Coisas para análise, processamento e ações com base nesses dados.
  • Plataforma IBM Watson de Internet das Coisas: a Plataforma da IBM para Internet das Coisas recolhe os dados a partir de dispositivos IoT e fornece vários serviços que analisam os dados e tomam as medidas subsequentes para resolver problemas de negócios específicos. A plataforma fornece um rico conjunto de serviços cognitivos (tais como machine learning, raciocínio da máquina, processamento de linguagem natural e análise de imagem) que melhoram a capacidade de processar os dados não estruturados coletados dos vários sensores inteligentes.
  • IBM Bluemix: Bluemix é uma plataforma de nuvem baseada em padrões abertos para a construção, execução e gerenciamento de aplicações e serviços. Ele suporta aplicações de Internet das Coisas, tornando mais fácil incluir capacidades analíticas e cognitivas para as aplicações baseadas em vários tempos de execução e serviços.

Blockchain e Internet das Coisas

Embora a adoção da Internet das Coisas esteja crescendo significativamente, alguns desafios-chave precisam ser abordados para fazer as soluções de Internet das coisas crescerem e apoiarem a crescente demanda por mais e mais dispositivos conectados. As soluções de IoT devem abordar as preocupações de segurança e privacidade em torno desses dispositivos e dos dados que eles coletam. Alguns desses desafios são:

  • Escalabilidade: As atuais plataformas de Internet das Coisas baseadas em nuvem centralizadas impoẽm roteamento de mensagens através dessas plataformas. Isso cria um gargalo para a ampliação das soluções de IoT para um grande número de dispositivos.
  • Segurança: O enorme volume de dados coletado de milhões de dispositivos levanta preocupação sobre segurança da informação e privacidade para indivíduos, corporações e governos. Como comprovado pelos recentes ataques de negação de serviço em dispositivos da Internet das Coisas, o grande número de dispositivos de baixo custo conectados à Internet está provando ser um grande desafio para garantir a segurança da Internet das Coisas.
  • Falta de padrões de dados/uniformidade: O mundo está se voltando para as iniciativas de dados abertos, mas não há uma abordagem uniforme. Existem vários protocolos e nenhuma plataforma única para conexão de dispositivos de todos os fabricantes. A interoperabilidade de dispositivos e plataformas é um desafio fundamental para o crescimento das soluções de Internet das Coisas.
  • Custo: As soluções de Internet das coisas são associadas a um grande número de dispositivos e seus equipamentos de rede. Os custos associados às soluções de Internet das Coisas estão provando ser muito altos, pois terão de atender a um volume muito elevado de mensagens (custos de comunicação), dados gerados pelos dispositivos (custos de armazenamento) e processos analíticos (custos de servidor). O crescimento subsequente somente aumentará esses custos.
  • Arquitetura: Plataformas centralizadas em nuvem permanecem um gargalo em soluções de Internet das Coisas end-to-end. Qualquer interrupção pode afetar toda a rede.

Redes de Internet das coisas descentralizadas

A tecnologia blockchain e de Internet das Coisas oferece um novo mundo de promessas e pode ser aproveitada para resolver os problemas descritos acima. Os padrões abertos baseados em redes distribuídas de Internet das Coisas podem resolver muitos dos problemas associados com as soluções centralizadas atuais de IoT baseadas na nuvem, incluindo segurança, escalabilidade e custo. Por exemplo, os dispositivos conectados poderiam se comunicar diretamente com os registros distribuídos. Os dados desses dispositivos podem ser usados por smart contracts para atualizar e validar os dados e, posteriormente, enviá-los para todos os participantes interessados da rede de negócios. Isso reduziria a necessidade de monitoramento e ações humanas, e promoveria a confiança nos dados gerados pelos dispositivos. Redes de blockchain descentralizadas também podem melhorar a segurança das soluções de Internet das Coisas através da execução de contratos inteligentes predefinidos e da implementação de mecanismos de consenso específicos que eliminam as ações dos dispositivos comprometidos.

A Plataforma IBM Watson de Internet das Coisas agora suporta o uso de serviços IBM Blockchain para aplicações de IoT. Dados de dispositivos da Internet das Coisas podem agora ser integrados com os registros privados de blockchain e operações compartilhadas com alta segurança. O mecanismo de replicação distribuído de blockchain elimina a necessidade de ter todos os dados da IoT recolhidos e armazenados centralmente, e permite a utilização dos dados IoT de forma descentralizada.

Internet das coisas: casos de uso usando blockchain

A combinação da Internet das Coisas e blockchain está criando uma série de novas possibilidades para o uso de dispositivos inteligentes no ciclo de gestão de ativos. Como ativos percorrem as várias fases do seu ciclo de vida, dispositivos monitoram diferentes aspectos e integram os dados dos ativos em um blockchain dos participantes de negócios para fornecer dados confiáveis em tempo real. Com smart contracts de blockchain, regras podem ser criadas para monitorar e controlar a temperatura de um edifício baseado no consumo de energia e na informação de preços de energia dos fornecedores que participem da rede. Do mesmo modo, a qualidade (e preço) dos alimentos pode ser determinada com base nos dados em tempo real da refrigeração utilizados no transporte. A IBM (juntamente com a Samsung) demonstou o uso de blockchain em máquinas de lavar autônomas que podem solicitar detergentes e peças de reposição, e mandar para o serviço pós-venda através de smart contracts.

Vários consórcios (como Chain od Things ) e start-ups (como Filament ) demonstraram outras formas inteligentes de alavancar os registros distribuídos em redes de Internet das Coisas para automatizar os processos end-to-end e a integração com participantes dos negócios. A tabela abaixo apresenta alguns casos de uso de Internet das Coisas com base em blockchain para diferentes áreas:

 

Empresas Casos de uso
Supply chain A falta de visibilidade é um problema-chave na supply chain. Mesmo quando os dados sobre os processos estão disponíveis, eles não são confiáveis o suficiente para desencadear ações concretas. O blockchain pode ajudar a resolver alguns dos principais problemas na supply chain: visibilidade, otimização e demanda. Pode assegurar o controle de acesso adequado para os dados compartilhados entre os participantes da supply chain. Uma supply chain com acesso contínuo e em tempo real a dados confiáveis, compartilhados em blockchain, pode ser otimizada de forma mais eficiente do que supply chains tradicionais.

Casos de uso concretos na supply chain com base em blockchain e Internet das Coisas incluem:

• Acompanhamento de alimentos da fazenda até embalagem e transporte.

• Identificação da contaminação e redução do desperdício de alimentos na supply chain.

Esses casos de uso fazem uso de dados de localização, refrigeração, solo e previsões do tempo em um blockchain de Internet das Coisas para disponibilizar todos os dados relevantes aos participantes em tempo real.

Automotivos A indústria automotiva é um dos principais na adoção de soluções blockchain baseadas em Internet das Coisas. As soluções baseadas em blockchain estão sendo usadas para fornecer informações em tempo real e executar transações entre as principais empresas parceiro-produtoras, empresas de financiamento de automóveis, seguradoras, prestadores de serviços, reguladoras e clientes. Além da adoção do blockchain nas supply chains automáticas, os dados do sensor de várias peças do veículo são integrados com blockchain para tomar decisões em tempo real e fazer transações envolvendo serviços e pagamentos.

Por exemplo, a Toyota começou a usar blockchain para monitorar as milhares de peças que viajam por vários países, fábricas e fornecedores para fabricar um único carro.

Energia e utilidades Blockchain tem grande potencial disruptivo para a indústria de energia. Redes blockchain de Internet das Coisas e redes de energia permitem transações peer-to-peer de energia. Em uma aplicação, o excesso de energia solar na cobertura é vendido para outros usuários que precisam dela – tudo é pago e registrado através de blockchain.

Startups como a Filament também estão construindo redes de malha de dispositivos inteligentes que monitoram redes de energia e corrigem quaisquer problemas que surjam o mais rápido possível.

Assistência médica O uso do blockchain pode ajudar a melhorar a segurança de dados particulares do paciente que venham de dispositivos de monitoramento médicos. Os dados são armazenados de forma segura em um registro distribuído, e os participantes têm acesso baseado em regras de acesso inteligentes que são definidas no blockchain (por exemplo, a aprovação de 3 ou mais partes).

Isso também pode ajudar a fornecer dados confiáveis do paciente em tempo real para os participantes necessários (como seguradoras) e ajudá-los a liberar pagamentos com base em dados mais precisos.

Automação residencial As tecnologias habilitadas para Internet das Coisas estão sendo usadas em cidades e edifícios inteligentes para melhorar as operações, segurança e a experiência dos residentes. Um grande número de dispositivos e sensores estão sendo usados para monitorar e gerenciar esses recursos.

Uma rede de Internet das Coisas habilitada para o blockchain pode proteger os dispositivos e os dados recolhidos a partir deles. Todos os fornecedores de gestão de instalações podem participar de uma blockchain privada para oferecer serviços com rapidez e automatizar o processo de pagamento com base na prestação efetiva de trabalho ou na qualidade do serviço.

Outras indústrias/aplicações A tecnologia blockchain também ajuda a melhorar a gestão dos dispositivos e a segurança do fluxo de dados na rede.

Ela permite o controle de acesso aos dados que fluem para diferentes participantes, a troca de dados entre os participantes, e fornece os serviços de pagamento necessários que são integrados com o fluxo de dados.

Arquitetura de aplicações blockchain de Internet das Coisas

A Figura 1 mostra a arquitetura de alto nível de aplicações de Internet das Coisas que usam os serviços Hyperledger baseados em Bluemix.

Figura 1. Arquitetura de aplicação blockchain com Internet das Coisas

Dados de dispositivos são enviados para Plataforma Watson para Internet das Coisas utilizando o protocolo MQTT. O proxy do blockchain na Plataforma Watson para Internet das Coisas envia os dados para o chaincode com base numa configuração pré-definida. Operações inteligentes são executadas em Bluemix com base nos dados do dispositivo.

Os componentes individuais são descritos na próxima seção.

Componentes de solução

Serviço Bluemix Blockchain

IBM Blockchain fornece a infraestrutura blockchain privada para o desenvolvimento de soluções baseadas em blockchain. O serviço Bluemix Blockchain é uma implementação do Hyperledger Fabric. Ele fornece o seguinte:

  • Uma rede blockchain que consiste em quatro pares
  • Um servidor de autoridade de certificação
  • Código de contratos inteligentes (chaincode, desenvolvido utilizando Golang)
  • O estado razão mundial, que detém o valor atual de dados dos smart contracts (o histórico de todas as transações também está disponível no blockchain)

A Figura 2 mostra os diferentes subcomponentes dos serviços IBM Blockchain.

 
Figura 2. Subcomponentes de serviços IBM Blockchain

Os smart contracts formam o núcleo de soluções baseadas em blockchain e encapsulam a lógica de negócios. Cada chamada de um smart contract é contabilizada como uma transação blockchain. Contratos IBM Blockchain (chaincode) são desenvolvidos usando a linguagem Go e precisam implementar a API Contract. Os smart contracts precisam ser registrados com serviços blockchain usando APIs pré-definidas.

A API Contract precisa ser implementada por um desenvolvedor de smart contract. Ela tem três funções principais: Init() , Invoke() e Query() . Consulte a documentação Bluemix para mais detalhes sobre essa API.

API Blockchain é a API do cliente para aplicações blockchain. O SDK Hyperledger Fabric Client (HFC) permite que os desenvolvedores de aplicativos construam aplicações Node.js que interagem com uma rede blockchain. Os aplicativos podem, de forma segura, registrar os usuários e enviar transações usando essa API.

Existem várias alternativas para o desenvolvimento de aplicativos de cliente blockchain:

API REST

A API REST para blockchain ajuda a interagir com os pares blockchain utilizando a interface HTTP. Uma lista de operações suportadas é mostrada na tabela a seguir:

Método Operação Descrição
GET / chain/blocks/{Block} Retorna informações sobre um bloco específico dentro do blockchain.
GET /chain O endpoint da cadeia retorna informações sobre o estado atual do blockchain.
POST /chaincode Esse endpoint recebe solicitações para implementar, invocar e pesquisar um chaincode alvo.
GET /network/peers Essa API retorna uma lista de todas as conexões de rede existentes para o nó destino. A lista inclui tanto os pares não-validados quanto os validados.
POST /registrar Registra um usuário com a certificação de autoridade.
DELETE /registrar/{enrollmentID} Exclui todos os tokens de login do cliente existentes no armazenamento local. Após a conclusão desse pedido, o usuário de destino não será mais capaz de executar operações.
GET /registrar/{enrollmentID} Confirma se o usuário especificado foi registrado com a certificação de autoridade.
GET /registrar/{enrollmentID}/ecert Recupera o certificado de matrícula para um determinado usuário que foi registrado com a certificação de autoridade.
GET /registrar/{enrollmentID}/tcert Recupera os certificados de transação para um determinado usuário que foi registrado com a autoridade certificada.
GET /transactions/UUID Esse endpoint retorna a transação correspondente ao UUID especificado.

IBM-Blockchain-js

IBM-Blockchain-js é uma biblioteca de encapsulamento Node.js sobre a API REST, que é fornecida pelos serviços Bluemix Blockchain. Ela fornece funções na API Node.js de fácil uso, que são semelhantes às disponíveis na API REST.

HFC SDK

O SDK Hyperledger Fabric Client (HFC) para Node.js é uma API baseada em gRPC que fornece uma interface fácil de usar para o desenvolvimento de aplicativos baseados no serviço IBM Blockchain. O HFC é concebido para ser usado na execução Javascript do Node.js. Para mais detalhes, consulte estas fontes:

 A aplicação cliente

A aplicação cliente é responsável por fornecer os dados necessários para satisfazer as necessidades de negócios das partes interessadas e fornecer uma rica experiência do usuário. As aplicações clientes precisam usar a API blockchain conforme previsto nos smart contracts para interagir com a contabilidade do negócio. Essas aplicações também podem processar os eventos gerados pelos componentes blockchain.

 Plataforma IBM Watson para Internet das Coisas

A Plataforma IBM Watson para Internet das Coisas recebe dados de todos os dispositivos registrados e os processa para o formato necessário para a integração com blockchain. Isso significa que o desenvolvedor do contrato blockchain não precisa saber os detalhes sobre a fonte dos dados, e pode se concentrar no desenvolvimento da lógica de contrato.

Desenvolvimento de aplicações blockchain para Internet das Coisas

A Figura 3 mostra os principais passos no desenvolvimento de um aplicativo de Internet das Coisas habilitado para blockchain usando os serviços da Plataforma Internet das Coisas do IBM Watson e Bluemix Blockchain. Os desenvolvedores precisam ter várias habilidades para desenvolver aplicações end-to-end de IoT que utilizem esses serviços.

Figura 3. Desenvolvimento de aplicações blockchain para Internet das Coisas

Aqui está uma breve visão geral de cada etapa do processo:

1. Configurar uma infraestrutura de blockchain privada

Os desenvolvedores precisam criar um blockchain privado com base no serviço IBM Blockchain. Consulte a documentação Bluemix sobre a criação de serviços blockchain privados.

Desenvolver e implementar smart contracts em blockchain com base em dados do dispositivo. Um contrato pode ser configurado para rejeitar a transferência ou reduzir um preço se a temperatura do container (medida por meio de sensores) excede um determinado limiar.

 2. Conectar dispositivos à plataforma IBM Watson para Internet das Coisas

Ligue os sensores/gatewaya à Plataforma Watson para Internet das Coisas. Isso permitirá que os dispositivos enviem dados para serem filtrados/agregados e, posteriormente, encaminhados ao blockchain. Siga a documentação para adicionar os dispositivos à Plataforma Watson para Internet das Coisas. Quando adicionada com êxito, a página “Dispositivos” no painel do Watson será parecida com esta:

Figura 4. Página do painel de dispositivos do Watson

3. Integrar os dados do dispositivo com o registro do blockchain distribuído

A Plataforma Watson para Internet das Coisas precisa ser ativada para enviar dados para os serviços blockchain em execução no Bluemix. Consulte a documentação Bluemix para mais detalhes sobre como configurar a integração. Instale a UI de monitoramento para verificar a conexão entre a Plataforma do Watson e o Blockchain. Aqui está uma visão geral de alto nível das etapas desse processo:

a) Ative o blockchain na aba “Configurações”:

Figura 5. Ativar o blockchain na guia “Configurações”

b) Configure a conexão com o serviço Blockchain conforme adicionado anteriormente. Clique no botão Adicionar e preencha os detalhes do serviço Blockchain na caixa de diálogo pop-up:

Figura 6. Configurar a conexão ao serviço Blockchain

c) Quando ele é adicionado com êxito, as configurações devem ficar assim:

 
 Figura 7. Blockchain adicionado com sucesso

d) Confirme todas as suas alterações. O menu de configuração do blockchain aparece na barra de navegação do lado esquerdo:

Figura 8. Opção Blockchain na barra de navegação

e) Selecione o menu blockchain para mapear os dados do dispositivo:

 
Figura 9. Mapeamento dos dados do dispositivo

Siga o assistente e forneça os dados necessários para concluir o mapeamento dos dados do dispositivo para o contrato blockchain. Você vai precisar do ID de chaincode implantado para mapeá-lo com sucesso. O contrato que você mapear deve, no mínimo, suportar o método readAssetSchemas() para o mapeamento funcionar.

Assim que os dados em tempo real de dados chegarem, os smart contracts serão executados sobre os dados.

Com base no resultado, a transação é completada e gravada no registro digital e, em seguida, compartilhada com todos os pares.

4. Desenvolver aplicativos cliente para usuários finais

O passo final é tornar as transações de outputs/eventos disponíveis para os usuários finais. Um aplicativo cliente pode ser desenvolvido usando a API blockchain (como mencionado na seção anterior) e outros serviços analíticos utilizando múltiplas linguagens/plataformas suportadas pelo Bluemix.

Conclusão

Como você pode ver, existe um enorme potencial para o desenvolvimento de aplicações usando blockchain em soluções de Internet das Coisas, e essta combinação pode resolver alguns dos principais problemas que limitam a adoção de IoT, como segurança e escalabilidade. Um registro distribuído com smart contract incorporado pode melhorar a segurança e a confiança, e automatizar os processos completos compostos por múltiplos parceiros de negócios. A Plataforma IBM Watson para Internet das Coisas pode ser combinada com serviços blockchain baseados em Bluemix para fornecer uma plataforma pronta para implantação para aplicações baseadas na Internet das Coisas (baseadas em padrões abertos) com base em blockchain.

Há, no entanto, alguns desafios que precisam ser superados. Um dos principais desafios das aplicações de Internet das coisas com base em blockchain é o poder de computação limitado de muitos dispositivos IoT. Criptografia e verificação de transações blockchain podem exigir um poder de processamento considerável, o que pode não estar disponível em dispositivos low-end. E o uso de mais poder de processamento pode aumentar tanto o consumo de energia quanto o custo da solução.

Na parte 2 deste artigo, vamos demonstrar a integração da Plataforma IBM Watson para Internet das Coisas com os serviços IBM Blockchain para desenvolver um aplicativo que usa dados de veículos e sensores V2V (simulados) para executar transações inteligentes no IBM Blockchain.

Recursos para download

Tópicos relacionados

***

Ayan Mukherjee faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://www.ibm.com/developerworks/cloud/library/cl-blockchain-for-cognitive-iot-apps-trs/index.htm.