Criptomoedas de IoT: Ambrosus

Este post faz parte da série Criptomoedas de IoT. Leia também os outros posts da série:

 

A Ambrosus é uma solução integrada, composta de itens de hardware, software e camadas de aplicação, que utiliza a tecnologia blockchain para assegurar a origem, qualidade, originalidade de itens que circulam por uma rede. Seu foco principal é em produtos essenciais para nossas vidas, alimentos e fármacos. Alguns exemplos de uso desse blockchain incluem:

  • Origem do alimento e monitoramento de seu caminho, da produção até o ponto de venda ou consumidor;
  • Melhoria do processo de logística através do conhecimento de toda a cadeia de suprimentos mapeada;
  • Entrega de alimentos ou medicamentos sem intermediários, onde o produto poderia ser vendido do produtor diretamente ao consumidor final.

 

A Ambrosus almeja tornar qualquer entidade da cadeia de fornecimentos em um bem digital confiável (trustred digital asset) que poderá ser rastreado, compartilhado e comercializado, comprado ou vendido através de contratos inteligentes (smart contracts). É uma solução que foi criada pensando em ser uma tecnologia completamente open source, e quem precisar pode customizar seus nós e até mesmo seus contratos inteligentes conforme sua aplicação ou seus sistemas para integrar com a rede Ambrosus. No centro do projeto Ambrosus está a função de ser um sistema de sensores interconectados, que garantem a qualidade e conseguem gravar de forma segura e confiável todo histórico de um produto. O Blockchain pode proteger a integridade e o acesso à verificação confiável dos dados provenientes dos sensores. Os contratos inteligentes podem permitir a governança automatizada (e digital) das cadeias de suprimento e tomar conta também das relações comerciais entre os interessados da cadeia.

 

Ambrosus vai além de ferramentas de desenvolvimento que possibilitam com que quem tem acesso possa usar o sistema. Ele é construído utilizando a Blockchain Ethereum, por onde as transações são realizadas. A maioria dos padrões GS1 são suportadas pela rede.

 

A rede Ambrosus introduziu também um novo Token, denominado Amber. O Amber é um Token Ethereum ERC-20 utilizado para verificar a logística, dados do ambiente e/ou biológicos de um determinado produto, utilizado pelo Blockchain. Ele é o combustível da rede, e toda a informação do ecossistema de aplicações feitas no topo do protocolo Ambrosus está no token. O token Amber é utilizado para pagamento. Sempre que se inicia uma atividade ou se executa uma transação na AMB-NET, sempre que alguém cria um bem ou evento, deve-se se pagar uma taxa em Amber para os outros nós da rede. Quem tiver uma quantidade considerável de Ambers pode também deixá-los alocados em um Masternode, que são servidores responsáveis por validar as transações da rede AMB-NET. Alguns Ambers também podem ser atrelados a alguns atores que fazem parte da rede. Atrelar Ambers a bens (assets) garantem que a saída de cada etapa de um processo na rede seja igual a entrada desse processo, garantindo autenticidade dentro da camada de suprimentos.

 

Em uma cadeia de suprimentos, o Amber acompanha o produto por toda a sua história e os clientes que compram os produtos podem restituir os tokens no final do seu ciclo, na entrega, depois da compra do produto. Esse processo de restituição do token ao sistema pode ocorrer também em um local pré-estabelecido na cadeia de suprimentos, e não exatamente no fim da cadeia de comercialização do produto. Isso então faz parte da reciclagem do token e ele volta para o início da cadeia. Além disso o produtor também recebe bônus pelo resgate do token ao final do ciclo. O Token é único e insubstituível e não há perigo de um token sobrescrever outro token, ele apenas volta pro início da cadeia e fica disponível para que outro produto possa utilizá-lo.

 

A Jornada do Token Amber pela cadeia de suprimentos
Figura 1: A Jornada do Token Amber pela cadeia de suprimentos

 

A Ambrosus é uma rede pública e pode ser utilizada tanto com dados públicos ou privados. A solução Ambrosus permite diferenciar qual dado pode ser disponibilizado publicamente e quais dados podem ser compartilhados apenas com os parceiros confiáveis que podem ter acesso a essas informações.

 

O projeto Ambrosus também prevê um toolkit para que os desenvolvedores possam criar de forma fácil apps no topo da rede. Assim é possível que se crie rapidamente uma aplicação utilizando sensores (IoT) e que possam ter seus dados gravados no Blockchain, em uma rede descentralizada (Ethereum). Está sendo construída também uma API aberta para que seja utilizada nas redes de suprimento de alimentos e fármacos e também em qualquer tipo de commodity, visto que a rede construída é bem flexível e pensada de antemão para isso. A ideia é que apps possam ser construídos por usuários e empresas sem que esses atores tenham conhecimento prévio de programação em Blockchain.

 

O projeto prevê a construção de sensores de medidas de ambiente (umidade, temperatura, etc) que se conectam automaticamente à rede do projeto diretamente ou através de gateways. Também são previstas tags inteligentes, rastreadores e bio sensores, além de impressoras IoT utilizadas ao longo da cadeia de suprimentos, mas faltam detalhes na especificação do projeto, especialmente sobre o hardware que será desenvolvido em um futuro próximo. Um dos planos do projeto é se integrar a redes de controle de cadeia de suprimentos padronizadas com o EPCIS (Electronic Product Code Information Services), que podem ser parte de sistemas como o SAP e Oracle. Para isso é previsto alguma forma de conexão para que possam ser compartilhados dados dos sensores de produtos com hardwares do projeto que contém informações referentes à cadeia de suprimentos, ou seja, à história desse produto durante toda a cadeia.

 

Para autenticação, a rede Ambrosus prevê um esquema utilizando criptografia com chave público-privada. Cada dispositivo da rede então tem que assinar com sua chave privada os dados enviados para a rede Ambrosus, provando assim a autenticidade e originalidade dos dados, desde que esse dispositivo esteja autorizado a fazer parte da rede. A lista de dispositivos autorizados está disponível através do contrato inteligente que está sendo executado, que possui diversas chaves públicas. Quando a mensagem enviada é verificada através de sua assinatura, os dados são gravados no Blockchain. Se a assinatura não é válida, os dados são descartados e os dados referentes à medida ignorada.

 

Autenticação utilizando criptografia com chave público-privada
Figura 2: Autenticação utilizando criptografia com chave público-privada

 

No caso do uso de gateways no meio do caminho entre o dispositivo e o Blockchain, os dados encriptados são enviados para o edge gateway através de uma das tecnologia sem fio disponíveis, como por exemplo, Bluetooth BLE, NFC ou RFID, dependendo da aplicação. O pacote de dados então é descriptografado pelo edge gateway e vai repassar a informação que acaba de receber para a rede. Um edge gateway é capaz de suportar a conexão de diversos dispositivos e, ele coleta, agrega e seleciona os dados que são passados para frente na rede. Ele envia esses dados para um internal gateway ou para outro edge gateway. O Internal gateway então se comunica com a rede Ambrosus através de uma API.

 

Comunicação entre dispositivos e gateways
Figura 3: Comunicação entre dispositivos e gateways

 

A Ambrosus criou um blockchain específico que se integra ao Blockchain Ethereum por conta da imensa quantidade de dados demanda pela internet das coisas, dados provenientes principalmente da medida de sensores. Essa arquitetura mista ainda assim permitiu que se mantivesse a descentralização, imutabilidade e transparência dos dados. Esse tipo de arquitetura otimiza também os custos de uso do Blockchain, já que a utilização da rede Ethereum passou a ser bem cara. Esse blockchain criado é uma versão privada da Blockchain Ethereum (não é privada, também é uma blockchain pública, mas particular). Todas as informações são primeiramente processadas nessa Blockchain, e então transferidas para a Blockchain Ethereum.

 

As novas medidas que chegam na rede Ambrosus são armazenadas em forma de árvore de Merkel, como folhas dessa estrutura. Para permitir uma estrutura para um sistema escalável, a Ambrosus escolheu não fazer update da árvore sempre que uma informação chega, ou seja, não escreve no Blockchain toda vez que a informação chega. A raíz da árvore é atualizada no contrato inteligente (e o processo de escrita no Blockchain é executado), por exemplo a cada 100 medidas realizadas pelos sensores autorizados pelo sistema. Ambrosus mantém todo o histórico do do que foi escrito na árvore de Merkel, para que evitar que dados sejam perdidos entre updates referentes a dados novos sendo escritos na árvore.

 

Árvore de Merkel
Figura 4: Árvore de Merkel

 

É possível que sejam feitas especificações relativas a requerimentos que devem ser obedecidos para que contratos inteligentes que contenham determinadas medidas de sensores sejam válidas. Caso as medidas fiquem dentro dos limites estabelecidos por esse documento digital de requerimentos, os contratos inteligentes são válidos. Os contratos inteligentes de requerimentos podem ser bem complexos ou simples e podem ser formatados de acordo com a aplicação em questão. Ele pode estabelecer também penalidades financeiras ou algum tipo de penalidade por pontos por exemplo.

 

Para um produto farmacêutico congelado por exemplo, o contrato pode estabelecer que os seguintes limites sejam respeitados:

  • Temperatura, de -20 a -10 graus Celsius;
  • Umidade, de 2 a 3%;
  • Nenhuma luz do sol direta.

 

Contrato Inteligente de Requerimentos
Figura 5: Contrato Inteligente de Requerimentos

 

A seguir algumas características presentes nos contratos inteligentes responsáveis por medidas, da rede Ambrosus:

  • Autenticidade - Todos os dados que entram no sistema passam por uma autenticação e são verificados de forma criptografada;
  • Transparência - Todos os dados registrados no blockchain estão disponíveis publicamente;
  • Não podem ser modificados - Todos os dados são imutáveis, uma vez registrados no Blockchain;
  • Capacidade - É possível armazenar uma quantidade enorme de dados, mesmo com pacotes de dados pequenos, mas com grande número de pacotes;
  • Monitoramento - Pode-se utilizar sensores para registrar informações com Blockchain;
  • Contratos - Podem ser estabelecidos contratos inteligentes que contém algumas regras (requerimentos) de limites de medidas a serem realizadas, para que possam ser confrontados com contratos que possuem informações referentes a medidas feitas por um sistema.

 

Sobre a arquitetura de dados do projeto Ambrosus, ele prevê o uso de uma arquitetura de três camadas para armazenamento de dados:

  1. A primeira camada é projetada para guardar grandes quantias de dados, cada um com poucos bytes de tamanho. Neste local se aplicam as árvores de Merkel;
  2. A segunda camada se refere a camada de suprimentos. Estão aqui os contratos inteligentes de requerimentos;
  3. Na camada mais acima, na terceira camada, está a Ambrosus.js, um protocolo dedicado para cadeias de suprimento de comida e produtos farmacêuticos;
  4. Na camada topo do projeto Ambrosus, há uma biblioteca em React, que provê interface para o usuário para que ele possa criar suas aplicações na rede Ambrosus. Essa camada pode ser acessada por qualquer web browser e se conecta a uma camada Java Script, a Ambrosus.js.

 

Arquitetura em camadas do projeto Ambrosus
Figura 6: Arquitetura em camadas do projeto Ambrosus

 

Um exemplo do uso do Ambrosus é um marketplace para alimentos. O pessoal responsável pelo projeto disponibilizou um vídeo que explica exatamente a ideia por trás dessa aplicação do Ambrosus.

 

 

Ambrosus - Exemplos de uso

 

Cenário 1 - Comprador

 

Diversos peixes estão expostos no marketplace. Cada um dos vendedores mostra uma imagem, o endereço de Ether, o preço e descrição do produto. O comprador tem segurança por comprar nesse marketplace pois o vendedor garante algumas informações que serão cumpridas, por exemplo, no transporte do alimento, isso porque está sendo emitido um contrato inteligente na compra do alimento anunciado e será monitorado o envio do peixe.

 

Exemplo - Comprador
Figura 7: Exemplo - Comprador

 

Cenário 2 - Vendedor

 

O Vendedor pode cadastrar seu produto no marketplace, incluir descrição e carteira de ether e também especificar as condições de transporte para o produto. Ele coloca o seu produto e aguarda um comprador. Assim que a venda é feita, um contrato inteligente é emitido e a transação registrada no Blockchain.

 

Exemplo - Vendedor (ambrosus)
Figura 8 - Exemplo - Vendedor

 

Veja o demonstrativo no vídeo abaixo.

 

 

 

No dashboard, produtores e compradores podem firmar contratos digitais baseados em dados dos produtos vendidos e parâmetros que asseguram como eles deverão ser transportados, a fim de dar ao comprador mais tranquilidade, já que a mercadoria vai ser entregue naquelas condições que foram estipuladas na hora da venda, e assim é efetuado o pagamento.

 

Quando o produto chega ao fim da cadeia de transporte, os dados medidos pelos sensores, relativos ao que aconteceu no transporte, podem ser descarregados, são importados para o blockchain e é verificado se os dados medidos estão de acordo com os dados que foram estipulados pelo contrato inteligente inicial, pelo produtor, nesse caso deste exemplo.

 

Veja o vídeo abaixo:

 

 

 

O pessoal do projeto Ambrosus também disponibilizou outro vídeo bem didático sobre o projeto. Confira a aplicação relacionada à confiabilidade que o projeto dá a uma comida para bebês, deixando a mão muito mais confortável ao comprar o alimento.

 

 

 

Roadmap do projeto Ambrosus - O que vem por aí

 

  • Abril de 2018 - Foram disponibilizadas ferramentas de desenvolvimento e biblioteca JavaScript;
  • Maio de 2018 - Será disponibilizado o dashboard para desenvolvedores e o SDK Android;
  • Em Junho de 2018 será disponibilizado o marketplace e também a possibilidade de integrar contratos inteligentes à solução;
  • Em Julho de 2018 será lançada a rede principal - AMB-NET 1.0;
  • Em Agosto e Setembro serão feitos testes de performance com o IoT Toolkit;
  • E de Outubro a Dezembro será desenvolvido a AMB-NET 2.0, para suportar aplicações com escala industrial;
  • A partir de 2019 serão desenvolvidos e fornecidos também hardwares, e uma aposta que o projeto Ambrosus faz é na impressão de circuitos.

 

 

Para verificar o mercado da AMBROSUS, acesse o link.

 

Para visitar o whitepaper do projeto, acesse o link. (temporariamente fora do ar. Acesse aqui o mesmo arquivo em um outro site.)

 

Para ver a evolução do projeto, acesse o medium do projeto no link.

 

 

Saiba mais

 

Criptomoedas de IoT: Modum

Campus Party Natal - Palestra IoT - Reflexos e Tendências para o Brasil

Webinar: Criptomoedas: Blockchain e IoT

Outros artigos da série

<< Criptomoedas de IoT: Modum
Este post faz da série Criptomoedas de IoT. Leia também os outros posts da série:

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Thiago Lima
Apaixonado por sistemas digitais e circuitos eletrônicos, ja contabilizo 16 anos trabalhando com desenvolvimento de produtos eletrônicos. Formado na USP Sao Carlos, com mestrado em Engenharia Elétrica no Rochester Institute of Technology pelo CsF, atualmente lidero boa parte das operações do Embarcados, buscando levar conhecimento de sistemas eletrônicos para o Brasil. Experimentar o mundo das startups nos EUA foi transformador. La fui cofundador de uma startup de tecnologia chamada Una, sendo acelerado e incubado por um programa especial de Startups no RIT. Ao final, recebemos um prêmio de melhor startup do programa. No Laboratório Hacker de Campinas sou um dos entusiastas de novas tecnologias e apoio iniciativas da comunidade. Tambem participo de atividades comunitarias e sou um dos responsáveis pela Plataforma Ituiutaba Lixo Zero, onde escrevo regularmente artigos sobre redução de resíduos. Sou sonhador mesmo e quero acender a luz ?

Deixe um comentário

avatar
 
  Notificações  
Notificar