Blockchain on Demand

A GoLedger oferece para os seus clientes um serviço de concepção e desenvolvimento de sistemas corporativos baseadas em Blockchain.

Como saber se eu preciso de um sistema em Blockchain?

Algumas questões precisam ser respondidas:

  • Existe um processo definido?
  • Existem diversas partes (ex: empresas, organizações, departamentos externos ou internos) que compartilham esse processo?
  • Existe um ativo com características bem definidas entre todos (ex: documento, certificado, título) a ser compartilhado entre as partes desse processo?
  • O processo possui hierarquia, na qual cada uma das partes pode criar, modificar ou visualizar o ativo?

Se todas as respostas para as questões acima foram ‘SIM’, então você precisa de um sistema em Blockchain.

 

Que informações em preciso para iniciar o desenvolvimento de um sistema em Blockchain?

Importante lembrar que o Blockchain nasce do conceito de redes distribuídas.

Não apenas os dados são compartilhados, como os sistemas (contratos inteligentes) estão disponíveis em todos os equipamentos (nós) e são executados em todos os nós quando assim necessário.

Para dimensionar um sistema Blockchain deve-se primeiro entender o processo que precisa ser aplicado entre as diversas entidades.

Quanto mais detalhado o processo, maior a facilidade de se definir o sistema em Blockchain.

Terminada essa etapa, agora é necessário definir o ativo compartilhado e os participantes que vão fazer uso dessas informações compartilhadas.

Tecnicamente falando, o ativo pode ser definido por arquivos XML, JSON, XSD, ou qualquer representação de estruturação de dados que se tenha preferência.

Já os participantes são identificados por pares de chaves ou certificados digitais (a tecnologia que nós trabalhamos ( Hyperledger ) se utiliza de certificados digitais x.509). Cada participante terá um conjunto de nós de sua propriedade, instanciados dentro dos seus datacenters ou em nuvens pré-definidas, que irão realizar suas transações e armazenar os dados do Blockchain.

Após a definição do ativo e participantes, agora deve-se definir qual a hierarquia de escrita e leitura de cada participante quando for criar, modificar ou ler o ativo.

Essas regras de leitura e escrita fazem parte do conceito de consenso do Blockchain privado e permissionado.

Após concluídas essas etapas do conceito do Blockchain, podemos iniciar a codificar o processo em linguagem de programação. Dependendo do tipo de Blockchain que se esteja trabalhando, existe uma gama de linguagens de programação a se escolher.

O framework de Blockchain que trabalhamos (Hyperledger) permite codificação em Go, Node ou utilizar um runtime baseado em JavaScript chamado Composer.

Essa etapa de codificação representa a interpretação do processo para transformá-lo em sistema. O sistema distribuído é comumente conhecido por Contrato Inteligente (Smart Contracts ou Chaincodes)

Exemplo de Processo

Vamos pensar um processo simples: o transporte de produtos controlados.

Nesse caso fictício, vamos considerar produtos controlados sendo cargas sensíveis a temperatura (ex: medicamentos, alimentos), cargas de risco (ex: resíduos hospitalares, explosivos), cargas com risco ambiental (ex: lotes de madeira) ou qualquer lote de produtos que precise de autorização especial para transporte.

Nesse processo simplificado, iremos pensar no controle feito entre os seguintes participantes:

  • Fabricante do produto controlado
  • Transportadora de cargas
  • Regulador de produtos controlados.

No futuro dos processos, podemos adicionar novos participantes, como centros de distribuição, portos secos, dentre outros.

Esse processo se define pelo seguinte fluxo:

  • Fabricante cria o lote de produto a ser transportado.
  • Fabricante emite a nota fiscal do lote de produtos a serem transportados.
  • Fabricante gera anexa a guia de autorização de produto controlado (ex: guia de origem florestal para lotes de madeira)
  • Transportadora emite o documento de conhecimento de transporte para poder passar por postos de fiscalização.
  • Transportador anexa seguro da carga, em documento emitido por uma seguradora.
  • Em caso de problemas com a entrega, transportadora recebe nota fiscal de devolução no ponto de entrega.
  • Em caso de extravio ou roubo de carga, transportadora recebe boletim de ocorrência emitido no local pela Secretaria de Segurança Pública da região.
  • Em caso de pagamento na entrega, Transportadora leva máquina de cartão de crédito para pagamento no local.
  • Regulador audita os produto controlado desde a sua criação, transporte e recebimento no ponto final.

Esse exemplo fictício descrito acima é uma pequena representação de um processo simples de transporte. Outros exemplos podem ser imaginados para a concepção de Blockchains em diversas cadeias produtivas.

Exemplo utilizando tecnologias tradicionais cliente/servidor

Quando se pensa em criar um sistema com as tecnologias cliente/servidor tradicionais, em geral se começa com a modelagem dos dados e criação de Web APIs e VPNs para realizar a interconexão entre as diversas bases de dados.

As informações do lote de produto são definidas internamente dentro dos bancos de dados do Fabricante. No momento do início de transporte, a transportadora armazena suas próprias informações a partir dos dados passados pelo Fabricante.

Nesse momento, surgem diversos problemas: as informações sobre os lotes de produtos são duplicadas em dois bancos de dados distintos, e conforme as situações de transporte começam a ocorrer, os dados armazenados dentro do Fabricante não condizem mais com a real situação do lote transportado.

Nos processos tradicionais em geral se inclui uma etapa de conciliação, na qual os dados de cada lado são confrontados pelas equipes administrativas de cada parte, etapa que em geral é realizada ao final do transporte e é conhecida por ser extremamente trabalhosa e improdutiva.

Além disso, o processo de prestação de contas ao Regulador, em geral é feito através de auditorias pré-agendadas. Essas análises feitas de forma esporádica são causa de diversas fraudes que deveriam ser evitas pelas agências reguladoras.

Agora vamos pensar Blockchain

No processo de transporte de produtos controlados, o ativo representa as informações de controle do lote:

  • Id do lote de produto.
  • Nota fiscal do lote (XML)
  • Guia de autorização (PDF assinado, certificado digital do regulador)
  • Documento de conhecimento de transporte, com a lista de todos os produtos que serão transportados no veículo.
  • Documento de seguro de carga (PDF assinado, certificado digital da seguradora)
  • Nota fiscal de devolução (XML) em caso de devolução total ou parcial da carga.
  • Boletim de ocorrência (PDF digitalizado) em caso de roubo.
  • Informações de pagamento (boleto, cartão de crédito, cheque, etc)

Os participantes são identificados por certificados digitais capazes de gerar as informações dentro dos seus nós.

Dentro das regras do Blockchain temos:

  • Fabricante grava as informações: Id, Nota Fiscal, Guia de Autorização.
  • Transportador grava as informações: Conhecimento de transporte, Seguro, Nota de devolução, Boletim de ocorrência, pagamento
  • Regulador pode ler todos os ativos em tempo real.

Cada etapa desse processo de transporte é validada e as novas versões do ativo são replicadas em todas os nós.

Nenhum dos dados pode ser escrito sem autorização descrita na regras de consenso. Ou seja, um Transportador não pode gravar informações relativas ao Fabricante e vice-versa.

Além disso, o Regulador terá todos os dados relativos aos transporte, em tempo real, podendo criar monitoramentos avançados e realizar auditorias mais aprofundadas a qualquer momento.

 

Quais as vantagens de ser desenvolver um sistema em Blockchain?

  • O processo todo torna-se mais seguro, sem a necessidade de complexas etapas de conciliação entre as partes.
  • Cada transação é assinada pela parte que a originou, e sincronizada com todos que precisam visualizar a transação.
  • As partes possuem cópias idênticas de todas as informações dentro de nós disponíveis nos seus datacenters ou nuvens.
  • Não existe duas versões do mesmo ativo. Se um documento está compartilhado entre as partes, os dados são iguais independente da organização ao qual se encontra.
  • Não existe duas versões do mesmo sistema (contrato inteligente). Quando se executa um contrato inteligente, ele usa a mesma versão dos dados (ledger) disponível em todos os nós e é executado em todas as organizações simultaneamente e gravando o resultado como uma transação assinada.
  • Entidades de auditoria não precisam mais pedir relatórios aos outros participantes do Blockchain. As informações se encontram sincronizadas, assinadas e disponíveis nos nós existentes dentro da organização auditora.

 

Faz sentido desenvolver um sistema em Blockchain apenas para uma empresa?

Sistemas em Blockchain são desenvolvidos para garantir a segurança de implementação de um processo entre várias partes.

Desenvolver um Blockchain privado para funcionamento em uma única empresa apenas faz sentido quando separamos o processo entre diversos departamentos, considerando principalmente um departamento de auditoria e governança.

Quando um departamento de auditoria se incorpora a outros departamentos, informações de governança são imediatamente sincronizadas entre todas as partes, possibilitando ações em tempo real, ou análises temporárias de qualquer etapa do processo, independente do momento em que os eventos ocorreram.

 

O que acontece quando nem todas as entidades participantes participam da rede Blockchain?

Sistemas em Blockchain são desenvolvidos para garantir a segurança de implementação de um processo entre várias organizações.

Porém nem sempre se consegue iniciar o desenvolvimento de uma rede de confiança em Blockchain com a participação de todos os envolvidos no processo.

Nesse caso, iremos nos beneficiar de uma das características mais importante da tecnologia: escalabilidade.

A rede Blockchain pode ser iniciada sem a presença de todos os participantes do processo.

As organizações que estiverem dentro do Blockchain, estarão representadas por certificados digitais e nós de sincronização. Essas terão todas as vantagens que a tecnologia fornece: imutabilidade, auditabilidade, segurança, dentre outras.

Para aquelas outras entidades do processo, o acesso aos serviços se darão da forma tradicional, com acesso ao sistema vias páginas Web, ou Web APIs (o framework Hyperledger usa o padrão REST para Web API).

Caso uma entidade deseje entrar posteriormente, é realizado um processo conhecido como versionamento do Blockchain, para permitir a entrada de um novo participante a rede de confiança.

 

E seu eu tiver mais alguma dúvida?

A GoLedger é uma empresa especializada em Blockchains privados e permissionados.

Nosso trabalho começa em entender o processo, antes de iniciar o desenvolvimento de qualquer linha de código. Essa é a forma de se desenvolver em Blockchain.

Entre em contato.