Como funciona
A tecnologia base do Cadastro Compartilhado da Receita Federal é o Hyperledger Fabric que é um framework de redes blockchain permissionadas de propósito geral. Os participantes de uma rede blockchain geralmente precisam saber implantar e operar um nó, chamado de peer. No b-Cadastros isso não é necessário, visto que o Serpro faz a gestão da rede e fornece ao participante uma automação para a implantação do seu peer.
Como uma blockchain de propósito geral, o Hyperledger Fabric faz uso de smart contracts (chaincodes) para as mais variadas situações, e estes podem ser desenvolvidos em linguagens como JavaScript (NodeJS), Go e Java. É um projeto que está incubado pela Linux Foundation, é open source e tem a participação e colaboração de diversas empresas de grande porte. Segundo a Blockdata, o Hyperledger Fabric é o framework mais adotado entre as 100 maiores empresas, por valor de mercado, do mundo.
O Hyperledger Fabric é uma rede de blockchain permissionada definida pelas organizações que pretendem configurar um consórcio, ou seja, é necessário ser convidado para participar de uma blockchain Hyperledger, ao contrário de redes públicas abertas como a Ethereum.
Cada organização membro da rede blockchain é responsável por configurar peers para participar da rede. Todos esses peers precisam estar configurados com informações criptográficas apropriadas, como Autoridade Certificadora, Cadeia de Certificados, dentre outras configurações necessárias. Os peers da organização membro recebem solicitações de chamada de transação dos clientes dentro da organização.
Um cliente pode ser qualquer aplicativo ou portal específico que atenda a atividades de negócios específicas. O aplicativo cliente usa o Hyperledger Fabric SDK ou API REST para interagir com a rede do Hyperledger Fabric. O código do contrato inteligente (smart contract), denominado no Fabric como chaincode instalado nos peers, faz com que a chamada de transação seja iniciada.
O Fabric oferece a capacidade de criar canais (channels), permitindo que um grupo de participantes crie um ledger separado de transações. Nesse modelo todos os peers mantêm seu ledger por canal no qual estão inscritos, criando uma estrutura de dados distribuída chamada Distributed Ledger (DLT). No Hyperledger Fabric, os peers da blockchain hospedados no Serpro têm papéis distintos. Portanto, nem todos os nós peers são iguais, existem diferentes tipos de nós de mesmo nível com funções diferentes na rede:
- Committer Peer: valida e salva as transações no seu ledger.
- Endorsing Peer: recebe uma proposta de transação para validação, responde com aval ou negação.
- Ordering Peer: aprova a inclusão de blocos de transação no ledger e se comunica com os nodos peers de confirmação (committer) e avalizador (endorser).
O Hyperledger Fabric foi projetado para ser uma base verdadeiramente modular, escalável e segura para soluções corporativas de Blockchain. Por ser permissionada, o Fabric possui características com vantagens sobre outras blockchains abertas:
- Proteção de Dados e Consistência: utiliza permissões para garantir controle dos membros e direitos de acesso;
- Transações Confidenciais: controle de visibilidade de transações por grupos baseado em chaves criptográficas (certificados digitais);
- Sem criptomoedas: não necessita mineração ou computação custosa para publicação de transações;
- Programável: lógica implementada em contratos (chaincode) para automação de processos de negócio.
Mais informações: https://www.hyperledger.org/use/fabric
Fluxo de funcionamento da rede
Para que as informações das bases de cadastros cheguem aos bancos de dados dos peers dos participantes, elas devem obedecer ao fluxo de transações do Fabric. A Figura abaixo mostra os seis passos necessários para que isso ocorra.
Primeiro os dados atualizados das bases são extraídos e enviados em lotes para a API do Cadastro Compartilhado da Receita Federal (1). Essa API cria uma proposta de transação para inserir os dados no ledger da blockchain e solicita a um peer da RFB o endosso da transação (2). O peer da RFB executa a proposta de transação no chaincode e retorna o resultado endossado para a API (3). A API, por sua vez, encaminha essa transação endossada para o serviço de Orderers (4). O cluster de orderers ordena as transações recebidas e cria os blocos da blockchain (5). Esses blocos são então enviados para todos os peers participantes, que validam cada transação e gravam as informações em um banco de dados local (CouchDB) para posterior acesso pelas aplicações dos participantes (6).
Características de segurança da rede
Gestão de Chaves
O Serpro produz internamente as ACs privadas das Organizações dos participantes do Cadastro Compartilhado da Receita Federal. Dessa forma o Serpro é responsável por autorizar a emissão dos certificados para os peers de cada Organização, o que garante a segurança e preserva a auditabilidade da solução pelo participante.
As chaves privadas das ACs dos participantes ficam guardadas em HSMs administrados pela equipe do Serviço de Certificação Digital do Serpro. Já as chaves privadas dos membros das Organizações (admin, peer e client) são geradas e guardadas na infraestrutura do próprio participante e não são enviadas ao Serpro, o que gera uma saudável segregação de funções entre Serpro e participantes. A auditabilidade é preservada, pois um participante pode utilizar seu certificado de admin para visualizar no ledger* como está configurada a sua Organização.
Criptografia
Toda a comunicação da rede Cadastro Compartilhado da Receita Federal é criptografada por meio do protocolo TLS e com certificados ICP-Brasil. Todas as operações da rede são assinadas pelos certificados das Organizações que fazem parte da estrutura de ACs exclusiva do Cadastro Compartilhado da Receita Federal.
Controle de Acesso
A solução tecnológica escolhida como base para o produto Cadastro Compartilhado da Receita Federal possui um modelo de segurança fortemente baseado em identidades e políticas. No Fabric, todo membro de uma Organização tem sua identidade definida por um certificado digital X.509, emitido por uma AC atrelada àquela Organização, seguindo o modelo tradicional de infraestruturas de chaves públicas (PKI). Para o Fabric, até mesmo um peer possui sua própria identidade, assim como um orderer, uma aplicação cliente da rede e também um administrador.
Políticas governam quem pode fazer o quê em uma rede Fabric. Elas determinam quem administra a rede, como são realizados os consensos, os parâmetros de criação de blocos e vários outros aspectos. Todas essas informações de identidade e políticas ficam registradas no próprio ledger da rede, nos chamados blocos de configuração, exclusivos para essa finalidade. Dessa forma, uma rede Fabric apresenta forte transparência e auditabilidade.
Na rede Cadastro Compartilhado da Receita Federal apenas a Organização da RFB possui permissão para endossar e registrar transações. As Organizações do Serpro e dos demais participantes apenas recebem as informações registradas no ledger, com a possibilidade de auditá-lo.