Plataformas permissionadas de Blockchain/DLT

Neste texto, pretendo abordar um pouco das plataformas Blockchain permissionadas, afinal de contas, muitas empresas tem aderido á estas plataformas, para implementação de Blockchain em processos internos.

Muitas vezes durante o processo de levantamento de solução para os clientes, tenho me deparado com necessidades específicas, necessidades estas que nos levam a sugerir a utilização de soluções permissionadas, pois para estes casos as redes públicas são desnecessárias, desaconselháveis, ou sua utilização é inviabilizada pela necessidade de pagamento de fee por transação, ou algumas vezes o próprio cliente mediante estudo prévio já escolheu a opção de implementação..

Com o advento das redes onde não existe a necessidade de pagamento de fee por transação ( as chamadas FFM for fast, feeless and minerless), temos também uma nova opção muito interesse nesta possibilidade.

Ethereum

Uma opção bem simples, é criar uma rede utilizando um nó (software com a implementação ) bem conhecido, chamado Geth.
Outros clientes da rede Ethereum como Parity e Eth também podem ser utilizados com o mesmo objetivo.
Você pode com uma pequena configuração, criar uma rede Ethereum, permissionada, utilizando como mecanismo de consenso PoW ou PoS.
Ainda seria necessário utilizar mineração, no caso de utilização de PoW, mas neste caso você não precisaria de uma moeda de verdade, poderia utilizar Keth (ethereum utilizado para as redes de testes).
Vale lembrar que neste tipo de rede, temos apenas o papel de Minerador, e Nó, ou seja, ainda pode ficar aquém de uma rede tipicamente projetada para ser permissionada, com todas as features que explicarei a seguir.

Quorum

Image result for quorum blockchain

Quorum é um ledger distribuído, baseado em Ethereum, cujo foco é a implementação de uma rede permissionada para serviços financeiros. Embora haja a possibilidade de criação de transações públicas, padrão da rede Ethereum, o Quorum traz a possibilidade de se criar transações privadas entre participantes da rede.
Internamente o Quorum tem em execução um fork do Geth (já citado neste post), chamado Quorum Node, por isso existe a possibilidade das principais atualizações, aquelas atualizações que fazem sentido para uma rede permissionada/enterprise, da rede Ethereum serem ser adicionadas na rede Quorum.

Algumas features do Quorum são:

  1. Privacidade nas transações
  2. Privacidade nos smart contracts
  3. Gerenciamento de permissão de nós
  4. Alta performance
  5. Conexão apenas de nós permitidos na rede, mediante configuração prévia
  6. Ao invés de uma árvore de transações, tem uma árvore pública e outra privada.
  7. Compatível com os mesmos smart contracts da rede Ethereum

Quorum Constellation


O Quorum utiliza um sistema plugável de envio de mensagens através de uma forma segura, este sistema, entre outras coisas, criptografa as mensagens utilizando PGP, este sistema é o Constellation, que traz para uma rede permissionada, a capacidade essencial de criptografar as informações trocadas na Blockchain, mas não só isso, Constellation é plugável a qualquer solução não Blockchain.

Um bom exemplo de utilização de cliente Constallation pode ser encontrado aqui:
https://github.com/jpmorganchase/quorum/blob/master/private/constellation/node.go

Transaction Manager


Dentro do Constellation, o módulo que garante a privacidade nas transações é o Transaction Manager. É ele quem permite o acesso às transações criptografadas, aos nós que detém a transação.

Enclave


O Enclave é o responsável pela parte do trabalho duro de criptografia no Constellation, é este módulo que gera as chaves simétricas e decodifica os dados, para acesso às transações.
Vale lembrar que o Quorum extende as funcionalidades do Ethereum, adicionando o parametro privateFor  (enviando as chaves publicas dos nós participantes da transação) e o método IsPrivate , para identificar uma transação privada.
Como o trabalho exige muito processamento, o Enclave consegue paralelizar algumas funções, para não se tornar gargalo na rede.

Mecanismos de consenso


Quando se fala de uma rede permissionada, o mecanismo de consenso é fator fundamental e diferente do que ocorre nas redes públicas, o PoW (Proof-of-work onde o consenso da rede é obtido através de processamento pesado de algoritmos) não é utilizado, pois por concepção, os entes da rede são conhecidos e a participação na rede é feita mediante configuração. No caso do Quorum, existem duas opções para mecanismo de consenso, são elas:

Raft-based : Utiliza a implementação etcd, e tem como características:
– Este mecanismo de consenso não cria blocos vazios
– Utilizado para transações em milisegundos
– Utiliza o conceito de liderseguidor ou candidato (leader, follower, or candidate)
– O líder recebe a transação e processa a replicação de log (com o estado de máquina)
– Sempre que há uma transação para ser processada, caso não haja bloco criado, levando em consideração o blocktime (tempo configurado para criação de blocos), cria um novo bloco e processa a transação.
– Transporte de blocos via http
– Muito utilizada em ambiente de produção
– Provém replicação de log na rede e compactação do log
–  Temporização randomizada para eleição de líderes
– Se um lider estiver indisponível, ou for desconectado da rede, outro líder é escolhido
– O tempo é dividido em prazos, cada prazo começa com a eleição de um líder

 

IBFT (Istanbul Bizantine Fault Tolerance): Trata-se de uma variação do conhecido PBFT, utiliza consenso trí-fasico (PRE-PREPARE, PREPARE, COMMIT)
– Utiliza o conceito de validador e proponente (validator and proposer)
– O proponente, propõe a criação de um novo bloco e faz broadcast na rede, na mensagem de PRE-PREPARE
– Após receber a mensagem de PRE-PREPARE do proponente os validadores, iniciam o estado PRE-PREPARED, e em seguida fazem broadcast da mensagem PREPARE
– Após receber a mensagem PREPARE, o validador inicia o estado PREPARED e faz broadcast das mensagens COMMIT.
– Neste passo os validadores aceitam o Bloco e o mesmo será inserido na Blockchain.
– Em seguida os validadores aguardam até que recebam mensagens de COMMIT de 51% dos nós para iniciar o estado COMMITED
– Uma nova rodada então pode ser iniciada

A seguir tratarei do Hyperledger que é uma plataforma Enterprise para soluções Blockchain, criada pela Linux Foundation, open source e com muitas contribuições da IBM, e da DLT Corda, criada pela R3, também uma solução enterprise, cujo foco são serviços financeiros, mas não se resumindo a isso.

Dúvidas, sugestões entrem em contato, até a próxima.


Autor:

JC Bombardelli

João Bombardelli
CTO | Blockchain Engineer na A Star Labs

Profissional criativo e resoluto, com uma perceptível
capacidade de aprendizado e colaboração



 

 

 

 


 

Fique por dentro das novidades!

Fazer login com suas credenciais

Esqueceu sua senha?