A série Tecnologia Blockchain e Aplicações em Saúde é escrita por Olavo Diogo, Engenheiro de Telecomunicações, Mestre em Sistemas de Comunicações, Consultor de Inteligência de Mercado, Professor de Administração, Doutorando do COPPEAD e Pesquisador do CESS/COPPEAD.
O presente artigo faz parte de uma série que tratará da evolução das aplicações Blockchain no setor de Saúde. Começaremos com o entendimento da tecnologia e por que ela é uma solução que se adequa muito bem e vem ao encontro das necessidades urgentes demandadas pelo intrincado setor em questão.
- INTRODUÇÃO
O entusiasmo provocado pela natureza transformadora da tecnologia Blockchain se infiltrou no setor de Saúde. Blockchain está sendo vista como a tecnologia necessária e perfeitamente aplicável para a Saúde, abordando suas questões difíceis e complexas de segurança e interoperabilidade. Mais importante ainda, a filosofia de valor e o sistema baseado em confiança podem prover ações e respostas automatizadas por meio de seu mecanismo de contrato inteligente (smart contract). Saúde, no entanto, é um sistema complexo. Até agora, a Tecnologia da Informação não cumpriu sua promessa de transformar a Saúde devido à complexa interação sócio técnica requerida pelo setor. A introdução da tecnologia Blockchain terá que considerar esta gama de questões idiossincráticas da Saúde a fim de melhorar a qualidade e a segurança do atendimento ao paciente.
Equacionados os principais entraves para a implantação de uma rede idealizada de negócios em Saúde, deve-se, então definir quais serão as transações e processos que utilizarão como base o Blockchain. Os processos elegíveis, em geral, atendem aos seguintes critérios básicos: processos extremamente complexos (e lentos) que mantenham uma cadeia de validação em vários níveis; transações que exijam rastreabilidade; transações que exijam registros únicos e não alteráveis; processos de identidade; necessidade de aumento (ou estabelecimento) de relação de confiança entre os membros da rede de negócios; e novos modelos de negócio [1].
A tecnologia Blockchain vem sendo desenvolvida já há uma década. Desde a publicação do white paper “Bitcoin: A Peer-to-Peer Electronic Cash System”, em 2008, por um autor com pseudônimo de Satoshi Nakamoto, a tecnologia Blockchain evoluiu com diversas aplicações, a primeira tendo sido a aplicação da criptomoeda Bitcoin, que teve seu primeiro lote gerado em 2009. Em seguida, em fevereiro de 2010, foi instituída a primeira bolsa de valores para negociações desta criptomoeda. E a primeira compra, utilizando-a como forma de pagamento, foi realizada em maio do mesmo ano. Em 2015, a plataforma Ethereum lança sua criptomoeda, a Ether (ou ETH), atualmente a segunda maior capitalização deste mercado [2]. A tecnologia Blockchain tem atraído, desde então, o interesse de vários setores que buscam novos modelos de negócios para transações com segurança, especialmente grandes instituições financeiras e fintechs. Também em 2015, a Linux Foundation criou o projeto Hyperledger, com o objetivo de criar um padrão aberto cross-industry para o desenvolvimento de tecnologias utilizando Blockchain. São mais de 130 membros das mais diferentes indústrias, incluindo TI, Finanças, Saúde e Transporte. Accenture, Airbus, J.P.Morgan, IBM e Intel são alguns membros dessa iniciativa. Este consórcio tem a função de desenvolver projetos open source em torno da tecnologia Blockchain. Um destes projetos é o Hyperledger Fabric, que é a rede Blockchain corporativa utilizada pela IBM para implementação de soluções de negócios com seus clientes [1].
No setor de Saúde, dezenas de projetos e produtos utilizando a plataforma Blockchain já estão em andamento. A NucleusHealth desenvolveu um projeto utilizando a plataforma Ethereum para troca de radiografias e outros serviços de imagem entre hospitais. O MedRec, projeto idealizado pelo MIT, também usa a Ethereum para que o paciente controle o acesso a todos os seus dados clínicos [3,4]. A SimplyVital Health tem uma plataforma online que, quando acoplada a um prontuário eletrônico, permite a auditoria e consulta de todas as interações realizadas para um paciente. A Healthcoin usa Blockchain para premiar pacientes diabéticos que estejam seguindo bem o tratamento terapêutico. Gem Health, BRON.TECH, Guardtime, PokitDok, HealthCombix, PointNurese e Blockchain in Health Co. são outros exemplos de soluções utilizando a tecnologia Blockchain. Em breve voltaremos a discorrer aqui sobre essas iniciativas na Saúde.
- ENTENDENDO A TECNOLOGIA BLOCKCHAIN
2.1 Segurança nas Redes
Em termos de tecnologia de redes, as comunicações corporativas normalmente usam uma rede multisserviço com protocolo IP/MPLS (Internet Protocol/Multiprotocol Label Switching) criando túneis seguros (L2TP/IPsec) por meio das chamadas VPNs (Virtual Private Networks) como mostrado na Figura 1. L2TP significa Protocolo de Tunelamento de Camada 2 (do Modelo OSI, Camada de Acesso). Como o L2TP não fornece criptografia forte ou autenticação, um outro protocolo chamado IPsec (Segurança IP) é mais frequentemente usado em conjunto com o L2TP. O IPsec é um protocolo muito flexível para segurança ponta a ponta, que autentica e criptografa todo pacote IP individual em uma determinada comunicação. Ou seja, estes protocolos criam canais seguros em redes privativas virtualmente construídas sobre a Internet para transmitir e receber pacotes de dados. As redes IP/MPLS pertencem a uma família chamada SDN (Software-Defined Networking) por possibilitarem a construção de redes virtuais pela configuração por software da plataforma tecnológica de comunicação de dados por pacotes.

Os hackers conseguem quebrar os códigos de criptografia basicamente por dois motivos: os túneis VPNs são fechados de um ponto A para um ponto B; e as palavras-código das chaves, apesar de razoavelmente longas, podem ser quebradas por hackers experientes e algoritmos em máquinas poderosas de processamento paralelo. As características de centralização das SDNs fazem com que as redes virtuais VPNs sejam presas fáceis para os hackers, que atacam em grupos grandes bombardeando as pontas dos túneis, quebrando assim os códigos de segurança.
Quando fazemos uma operação de compra via Internet com pagamento em cartão, estamos abrindo uma VPN, que deveria ser segura, entre nós e a administradora do cartão (bandeira), se for operação de crédito, e a administradora, por sua vez, abrirá outra VPN com o banco para autorização da operação; ou, em caso de débito, estamos abrindo uma rede virtual com túnel dito seguro diretamente com o banco. Na maioria das vezes existe ainda mais um participante, que seria o adquirente, quando o website de e-commerce possui um API (Application Programming Interface) que nos leva para outra página para realizar a liquidação financeira das transações junto aos bancos e as bandeiras. Em geral, os adquirentes são empresas de grande porte como Rede e Cielo, que possuem grandes investimentos financeiros em tecnologia, processos e segurança para receber as autorizações e realizar esse processo. Ou seja, o adquirente introduz mais um elo de possível vulnerabilidade na segurança dessa operação. O que está em jogo em qualquer tipo de transação de bens e valores sobre a Internet é a confiança. Temos que confiar na outra parte, para a qual estamos entregando muita informação a nosso respeito, parte esta que terá que autenticar nossas credenciais e autorizar a conclusão da operação. Operação esta que muitas vezes é desproporcional, pois estamos entregando muita informação em troca de valores geralmente baixos.
A tecnologia Blockchain criou um protocolo pensando exatamente nos pontos fracos das redes centralizadas como as SDNs. Estabelece um conjunto de regras de negócio aplicadas aos sistemas (chaincodes), na forma de computação distribuída, que assegura a integridade dos dados trocados entre milhões de dispositivos sem a necessidade da intervenção de uma terceira parte confiável para autenticação ou autorização da transação. Este protocolo possibilita o estabelecimento de um crescente número de livros-razão de registros contábeis (ledgers) distribuídos globalmente, em blocos particionados e encadeados, chamados de blockchains. A plataforma foi desenvolvida com filosofia de software livre (open source code) e pode ser baixada de forma gratuita por qualquer pessoa que queira usá-la ou mesmo desenvolver novas ferramentas para gerenciar transações online.
- Fundamentos da Tecnologia Blockchain
A tecnologia está baseada em quatro fundamentos: (1) o registro compartilhado das transações (ledger); (2) o consenso para verificação das transações; (3) um contrato que determina as regras de funcionamento das transações (smart contract); e (4) a criptografia, que é o fundamento de tudo [6].
É importante ressaltar que não existe qualquer informação na ledger que se pareça com uma moeda eletrônica (no sentido de uma sequência de bits unicamente identificável, distinguível das demais e transferível), apesar de o termo criptomoeda ser comumente associado ao Blockchain e ao Bitcoin [7].
Consenso distribuído é um termo da ciência da computação usado na disciplina de sistemas distribuídos e é um aspecto crítico do Blockchain e das criptomoedas [6]. Consenso significa que a maioria dos envolvidos (os nós da rede P2P) concorda sobre a ordem em que as transações são registradas na ledger. No Blockchain, o consenso ocorre por meio de métodos compostos por protocolos específicos e regras bem definidas. Todos os nós da rede P2P são envolvidos de algum modo na tomada de decisão por consenso. Trata-se, portanto, de um grupo (ou comunidade) decidindo em conjunto e de modo confiável. Opcionalmente, um nó centralizador (validador) pode coletar e propagar o consenso na rede P2P. O resultado de uma realização do protocolo de consenso deve ser confiável (determinístico) para toda execução. Exemplos de métodos de consenso utilizados em blockchains são: o consenso bizantino (caracterizado pela necessidade de 3*n+1 nós na rede P2P para tolerar n divergências no consenso); a prova de trabalho (proof-of- work) utilizada no Bitcoin para mineração; e a prova de participação utilizada pelo Ethereum.
Os contratos inteligentes (smart contracts) resolvem questões que necessitam de acordos com mínima confiança entre as partes participantes de um sistema distribuído [6]. Smart contracts são programas de computador que podem ser executados por uma rede de nós ditos mutuamente suspeitos de uma rede P2P, sem que seja necessária uma entidade externa confiável para mediação do acordo. Diz-se que os nós da rede são mutuamente suspeitos por que eles não precisam confiar incondicionalmente uns nos outros, uma vez que podem ser competidores ou até mesmo adversários. O programa executável do smart contract é implantado e executado nos nós da rede P2P de um Blockchain e sua execução correta é imposta (garantida) pelo consenso, que é composto por regras e protocolo.
Em princípio, com Blockchain estamos interessados em atingir os seguintes objetivos com o uso de algoritmos criptográficos: garantia de integridade e consistência de dados na rede e prova de trabalho computacional utilizando hashes; e autenticidade das transações utilizando assinaturas digitais de Criptografia de Chave Pública [6].
Funções Hash Criptográficas: Este tipo de função é usado como bloco fundamental em muitas aplicações criptográficas e tem como comportamento básico receber um conjunto de dados de tamanho arbitrário como entrada (input) e produzir um valor hash de um tamanho fixo como saída (output) que chamamos de digest como forma de representação do dado de entrada. Chamamos de funções hash criptográficas, todas as funções hash que atendem aos seguintes requisitos: deve resistir a todo tipo de ataque cripto-analítico conhecido; deve ter resistência à colisão, ou seja, a geração de um mesmo digest para inputs diferentes deve ser impraticável; ser computacionalmente eficiente; agir como uma função matemática trap-door, que significa dizer que deve ser impraticável/improvável reverter (fazer o caminho contrário e reverter o digest de volta ao input original); além de ser impraticável a retirada de qualquer dado útil do digest que possa dizer algo sobre o input usado na função.
Com estas funções em mãos conseguimos verificar integridade de informações enviadas à rede, gerar e verificar prova de trabalho computacional (proof-of-work) e, com isso, criar a “cola” criptográfica fundamental para a segurança da blockchain.
Criptografia de Chave Pública: Esta tecnologia possibilita que pessoas possam usar ferramentas criptográficas para encriptar e provar/verificar autenticidade de informações trocadas sem a necessidade do compartilhamento de um segredo.
No Blockchain, estamos mais interessados nas assinaturas digitais produzidas por este tipo de criptografia, na qual eu consigo provar que tenho um segredo (a Chave Privada ou Private Key) ao mesmo tempo em que autentico uma transação com este segredo sem a necessidade de compartilhar este segredo; tendo apenas que compartilhar a minha Chave Pública (Public Key). Assim, garantindo que apenas o detentor da Chave Privada correta poderá movimentar dados ou bens na rede.
Há mais de um método matemático para alcançar este tipo de funcionalidade, por exemplo, no Bitcoin é utilizado o Algoritmo de Assinaturas Digitais de Curva Elípica (Elliptic Curve Digital Signature Algorithm) ou ECDSA. Este tipo de assinatura é o que permite que todos na rede possam comprovar que uma transação foi enviada pelo detentor de uma certa chave privada (número de 256 bits), sendo essencial para o funcionamento correto do Bitcoin.
Em geral, a estrutura dos blocos é composta dos seguintes elementos (Figura 2): um timestamp, o identificador (hash) da transação anterior de onde vem o valor de entrada (pode haver mais de um), o valor de entrada, o valor de saída, o endereço de destino, um número pseudoaleatório único (nonce), e uma assinatura digital feita com a chave privada do usuário. A Raiz de Merkle serve como prova de todas as transações incluídas no bloco da qual ela faz parte.

A rede proporcionada pela tecnologia Blockchain sobrepõe-se à rede de comunicações legada e implementa uma arquitetura peer-to-peer (P2P), onde todos os participantes são nós da rede que funcionam tanto como clientes (clients) quanto como servidores (servers) sem hierarquia especial entre um nó ou outro (Figura 3). Todos são considerados hierarquicamente iguais e devem servir à rede com certos recursos. Este modelo aberto e descentralizado faz com que a rede não tenha uma barreira de entrada arbitrariamente escolhida; basta que você esteja rodando um nó e você será parte da rede.

Ao se conectar à rede seu client realiza o processo chamado bootstrap para achar e se conectar a outros peers na rede, e começa a baixar blocos para a cópia local da blockchain de peers mais adiantados na rede. Ao mesmo tempo o seu client já pode começar a prover dados para os peers conectados e ajudar a rede enquanto se atualiza com o consenso da rede. Quando você cria uma transação e a envia para a rede, o seu client envia esta transação para alguns peers, estes peers enviam para outros e assim, sucessivamente, até que um minerador valide a sua transação e a inclua num bloco, e, então, transmita este bloco aos peers de forma sucessiva até que seu client receba o novo bloco e confirme a transação.
Após o bloco ser criado e validado pela rede, ele será adicionado à cadeia de blocos da rede, a blockchain (Figura 4). Esse novo bloco é inserido de modo sintagmático, ou seja, criando uma relação de dependência hierárquica, dessa forma uma das características essenciais do bloco é fazer referência ao bloco anterior, contendo informações do bloco anterior no novo bloco, sempre de modo criptograficamente seguro [8].

A arquitetura da rede peer-to-peer aliada aos quatro fundamentos (a estrutura de formação da ledger, o consenso distribuído, as regras de negócio do smart contract e os protocolos de criptografia) fazem com que seja tecnicamente quase impossível de os hackers enganarem o sistema Blockchain.
Alterar uma transação na blockchain não é uma tarefa simples. Antes de tudo é preciso entender que alterar um dado em uma rede distribuída significa ter que “enganar” toda a rede – isso ignorando toda a parte de criptografia que para ser quebrada demoraria uma parcela significativa de tempo e energia [8].
Primeiro, o hacker precisaria encontrar o bloco certo, descriptografar (parte quase impossível do processo) e encontrar a transação para ser alterada. Após a transação alterada, e consequentemente o bloco, geraria uma nova blockchain diferente da que está na rede. Ou seja, não basta simplesmente recolocar o bloco na rede, pois a rede reconheceria que aquela nova blockchain não é válida por não ser idêntica à já autenticada. Seria necessário reescrever todos os blocos posteriores para que essa nova cadeia fosse aceita. Para seguir com tal feito, o hacker teria ainda que enviar um bloco válido novo para toda a rede. Em outras palavras, ganhar uma rodada contra todos os computadores da rede e subir a nova cadeia.
Por exemplo, se a nossa blockchain já estiver no bloco 1004, para alterar o bloco 10 é indispensável ter que reescrever até o bloco 1004 e enviar o bloco 1005 (Figura 5). Desse modo, fica evidente que blocos muito antigos são praticamente imutáveis, por conta de um alto custo computacional necessário.

Referências
- IBM Blockchain {Internet]. New Jersey: 2018 [citado 2018 Jul 06 ]. Disponível em https://www.ibm.com/blockchain/solutions
- Bridge Academy. Blockchain e seu Poder de Disruptura [Internet]. Rio de Janeiro: 2018 [citado 2018 Jul 06]. Disponível em http://bridgeconsulting.com.br/academy/blockchain-e-seu-poder-de-disruptura/
- Harvard Business Review. The Potential for Blockchain to Transform Electronic Health Records [Internet]. Boston: 2017 [citado 2018 Jul 07]. Disponível em https://hbr.org/2017/03/the-potential-for-blockchain-to-transform-electronic-health-records
- Viral Communications. MedRec: Medical Data Management on the Blockchain [Internet]. Boston: 2018 [citado 2018 Jul 07[. Disponível em https://viral.media.mit.edu/pub/medrec
- Barracuda Campus. How to Configure a Client-to-Site L2TP/IPsec VPN [Internet]. Campbell, CA: Barracuda Networks, Inc. (US); 2015 [citado 2018 Jul 06]. Disponível em https://campus.barracuda.com/product/cloudgenfirewall/doc/41116183/how-to-configure-a-client-to-site-l2tp-ipsec-vpn/
- Bitcoin para Programadores [Internet]. Rio de Janeiro: GitBook; 2018 [citado 2018 Jul 06 ]. Disponível em https://legacy.gitbook.com/book/itsriodejaneiro/bitcoin-para-programadores/details
- Tecnologia Blockchain: Fundamentos, Tecnologias de Segurança e Desenvolvimento de Software [Internet]. Brasília: CPqD; 2018 [citado 2018 Jul 06]. Disponível em https://www.cpqd.com.br/wp-content/uploads/2017/09/whitepaper_blockchain_fundamentos_tecnologias_de_seguranca_e_desenvolvimento_de_softwar_FINAL.pdf
- Entenda Blockchain em menos de 15 minutos [Internet]. Rio de Janeiro: 2018 [citado 2018 Jul 07]. Disponível em https://www.proof.com.br/blog/blockchain/
Uma resposta
Excelente texto! Espero acompanhar a continuação. 🙂
Os comentários estão desabilitados.