Slides do treinamento de Fundamentos de Blockchain para a equipe de Desenvolvimento e Inovação da Secretaria da Saúde do Estado do Ceará-SESA. Neste workshop foi abordado a tecnologia de controle e armazenamento de dados, da teoria à prática.
Marcelo Laranjeira MeloHead de Desenvolvimento e Inovação at Secretaria da Saúde do Estado do Ceará - SESA
2. Sobre o curso
Você irá aprender:
- Conceito de Blockchain e sua importância;
- Como funciona a Rede Blockchain;
- Como funcionam os contratos Inteligentes;
- Como programar, do zero, uma API RESTful de Blockchain usando Python;
3. Sobre o curso
Você não irá aprender:
- Fazer Criptomoedas;
- Contratos inteligentes em plataformas de terceiros.
4. Objetivo do curso
- Criar Insigts para aplicação da Blockchain nos sistemas de Saúde da SESA;
- Capacitar as pessoas para desenvolvimento, evolução e manutenção da 1a
Rede Blockchain Pública da área da Saúde no Brasil: SESA Ledger
6. Definição
“Blockchain é um livro-razão imutável e compartilhado que facilita o processo de
registro de transações e de controle de ativos em uma rede de negócios. Um
ativo pode ser tangível (uma casa, um carro, dinheiro, terrenos) ou intangível
(propriedade intelectual, patentes, direitos autorais, branding). Praticamente
qualquer item de valor pode ser controlado e comercializado em uma rede de
blockchain, o que reduz os riscos e os custos de todas as partes envolvidas.”
IBM (2023)
7. Definição
“A Blockchain é uma rede que funciona com blocos encadeados muito seguros
pelos quais carregam um conteúdo junto a uma impressão digital. Cada bloco de
dados contém uma espécie de assinatura digital, chamada hash, que,
basicamente, funciona como uma impressão biométrica.”
Morais (2019)
8. Definição
“A tecnologia Blockchain é uma forma de validar uma transação ou registro.
Trata-se da inovação por trás da moeda digital. Apesar de estar ligada às
criptomoedas (Bitcoin, Litecoin ou Ethereum), seu uso pode ter outros fins, como
a validação de documentos”
(MORAIS, 2019, p. 222)
9. Definição
“De acordo com Sheldon (2021), a blockchain foi introduzida pela primeira vez em
2008 como o livro-razão distribuído por trás das transações de bitcoin.”
10. Características da Blockchain
● Livro-razão distribuído: Todos os participantes da rede têm acesso ao
livro-razão distribuído (compartilhado) e ao registro imutável das transações.
Bem mais fácil do que as transações usadas nos negócios tradicionais;
● Registros imutáveis: Após a incluída a transação no livro-razão
compartilhado, esta não poderá mais ser alterada;
● Contratos inteligentes: Para acelerar as transações, um conjunto de regras,
chamado de contrato inteligente, é armazenado na blockchain e é executado
automaticamente.
11. Vantagens da Blockchain
● Confiança: Os dados são dispostos em uma rede fechada garantindo o
recebimento de dados precisos e atualizados. Os registros confidenciais da
blockchain só serão compartilhados com membros autorizados.
● Segurança: A inclusão dos dados na blockchain precisa ser confirmada por
todos os membros da rede, garantindo a validação e a imutabilidade das
transações. Ninguém, nem mesmo um administrador do sistema, pode
excluir uma transação!
12. Vantagens da Blockchain
● Eficiência: Com um livro-razão distribuído que é compartilhado entre os
membros de uma rede, não é preciso perder tempo conferindo registros.
● Contratos Inteligentes: São um conjunto de regras que podem ser
armazenados na blockchain e executados automaticamente, sem
interferência humana.
13. Soluções para Blockchain
O Hyperledger Fabric é uma iniciativa open
source do Linux Foundation, em parceria
com empresas de tecnologia, com o
objetivo de modelar soluções empresariais
utilizando a Blockchain. O Hyperledger não
é uma Blockchain! O projeto busca integrar
e operar cadeias já existentes como a
Bitcoin e a Ethereum, combinando
aspectos de cada uma para criar soluções.
14. Soluções para Blockchain
O Kekker permite construir
aplicativos
descentralizados sem
qualquer conhecimento
prévio de blockchain. No
site kekker.com oferece
infraestrutura gratuita e
APIs bem documentadas
para construir seu
aplicativo descentralizado
com facilidade.
15. Cronologia
[1991] Conference paper “How to
Time-Stamp a Digital Document” de Stuart
Haber & W. Scott Stornetta.
● Mecanismos para criar carimbos de
data/ hora digitais;
● Ordenar arquivos gravados de forma
única e segura;
● Evitar a modificação e manipulação de
documentos digitais.
Stuart Haber Scott Stornetta
https://link.springer.com/chapter/10.1007/3-540-38424-3_32
16. Cronologia
[2008] paper “Bitcoin: A peer-to-peer electronic cash
system” de ‘Satoshi Nakamoto’
Satoshi Nakamoto
https://assets.pubpub.org/d8wct41f/31611263538139.pdf
Sua última publicação foi em 2010
no fórum Bitcointalk:
https://bitcointalk.org/index.php?acti
on=profile;u=3;sa=showPosts
17. O algoritmo Hash (SHA256)
● O Secure Hash Algorithm (SHA) é um algoritmo matemático para converter
uma entrada (input) de informação (de qualquer tamanho) em uma linha de
texto (hash value) no formato hexadecimal de tamanho fixo de 64 caracteres
(ou 256 bits)
● Desenvolvido pela NSA (Agência de Segurança Nacional dos EUA) e NIST
(Instituto Nacional de Padrões e Tecnologia) em 1993;
● Atualmente (2023) não existe nenhuma técnica capaz de quebrar o SHA256.
https://www.movable-type.co.uk/scripts/sha256.html
18. O algoritmo Hash (SHA256)
Características do SHA256:
● Unicidade: todo hashvalue deve ser único, ou seja, ‘impossível’ obter o
mesmo hashvalue inserindo inputs diferentes;
● Determinístico: deve sempre gerar o mesmo hashvalue com o mesmo input;
● Velocidade: eficiente para gerar o hashvalue;
● Efeito avalanche: capaz de alterar toda cadeia do hashvalue na menor
alteração;
● Segurança: impossibilidade de gerar o input através de seu hashvalue.
https://rb.gy/nbpjli
19. O algoritmo Hash (SHA256)
HASH NÃO É CRIPTOGRAFIA!
A criptografia se concentra em proteger o conteúdo dos dados!
O hashing se concentra em proteger a integridade dos dados!
https://rb.gy/huzx4z
20. Como funciona a Blockchain
Dados:
“Dados importantes aqui. Pode ser
registro no banco de dados, json,
vetor ou documento em formato
digital (txt, pdf, imagem, doc, xls,
etc)”
Timestamp:20230201 12:11:25
Nonce:12345
Previous Hash: 0
Current Hash:
8500b59bb5271135cd9bcb
Bloco Genesis
sha256(Dados + Nonce + Previous Hash + Timestamp) = Current Hash
● Dados: Registros digitais armazenados;
● Nonce: Variável de controle da prova de trabalho;
● Previous hash: Hash do bloco anterior;
● Current hash: Hash do bloco atual;
● Timestamp: Data e hora de inclusão do bloco.
21. Como funciona a Blockchain
Dados:
Genesis Block
Nonce:12345
Previous Hash: 0
Current Hash:
8500b59bb5271135cd9bcb
sha256(Genesis Block0) = 8500b59bb5271135cd9bcbf0afd693028d76df3b9c7da58d412b13fc8a8f9394
Bloco Genesis
22. Como funciona a Blockchain
Dados:
Prontuário: 2023001
Data: 16/01/2023
Nome: José Lins da Silva
RG: 54879544897
CPF: 857963124-85
Endereço: Rua das Internets
Número: 256
Bairro: Ipê
CEP: 60965-785
Nonce:65846
Previous Hash:
8500b59bb5271135cd9bcb
Current Hash:
afb387de76afd9823afcd23df
Dados:
Genesis Block
Nonce:12345
Previous Hash: 0
Current Hash:
8500b59bb5271135cd9bcb
Bloco Genesis Bloco 01
23. Como funciona a Blockchain
Dados:
Prontuário: 2023001
Data: 16/01/2023
Nome: José Lins da Silva
RG: 54879544897
CPF: 857963124-85
Endereço: Rua das Internets
Número: 256
Bairro: Ipê
CEP: 60965-785
Nonce:65846
Previous Hash:
8500b59bb5271135cd9bcb
Current Hash:
afb387de76afd9823afcd23df
Dados:
Genesis Block
Nonce:12345
Previous Hash: 0
Current Hash:
8500b59bb5271135cd9bcb
Bloco Genesis Bloco 01 Bloco 02 …. Bloco N
Dados:
Prontuário: 2023002
Data: 22/02/2023
Nome: Ava Gina de Almeida
RG: 9854553225412
CPF: 635874265-56
Endereço: Rua das Estradas
Número: 123
Bairro: Epaminondas
CEP: 60965-785
Nonce:37911
Previous Hash:
afb387de76afd9823afcd23df
Current Hash:
a42d3c5f67832df98aa54ff3c8a
24. Como funciona a Blockchain
Dados:
Prontuário: 2023001
Data: 16/01/2023
Nome: José Lins da Silva
RG: 54879544897
CPF: 857963124-85
Endereço: Rua das Internets
Número: 256
Bairro: Ipê
CEP: 60965-785
Nonce:65846
Previous Hash:
8500b59bb5271135cd9bcb
Current Hash:
afb387de76afd9823afcd23df
Dados:
Genesis Block
Nonce:12345
Previous Hash: 0
Current Hash:
8500b59bb5271135cd9bcb
Bloco Genesis Bloco 01 Bloco 02 …. Bloco N
Dados:
Prontuário: 2023002
Data: 22/02/2023
Nome: Ava Gina de Almeida
RG: 9854553225412
CPF: 635874265-56
Endereço: Rua das Estradas
Número: 123
Bairro: Epaminondas
CEP: 60965-785
Nonce:37911
Previous Hash:
afb387de76afd9823afcd23df
Current Hash:
a42d3c5f67832df98aa54ff3c8a
25. Como funciona a Blockchain
Registros imutáveis
Na Blockchain não podemos alterar ou excluir blocos (registros) dentro da rede! O
histórico permanece na formação da cadeia, ou seja, o passado é imutável!
C - Create
R - Read
U - Update
D - Delete
26. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Forma tradicional)
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário em papel!
27. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Forma tradicional)
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário em papel!
Atendimento médico:
Após horas de espera
e ter a vez perdida,
nessa etapa são
coletados os sintomas
do paciente e a
análise do médico.
Médico prescreve um
medicamento em um
papel.
28. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Forma tradicional)
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário em papel!
Atendimento médico:
Após horas de espera
e ter a vez perdida,
nessa etapa são
coletados os sintomas
do paciente e a
análise do médico.
Médico prescreve um
medicamento em um
papel.
Atendimento
ambulatorial:
A prescrição é
coletada, mas a
técnica esqueceu
de solicitar/ separar
os medicamentos.
Após 30 minutos o
medicamento
chega no
ambulatório.
29. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Forma tradicional)
Retorno:
Após tomar a
medicação o paciente
retorna para falar com
o médico. Espera mais
uma fila.
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário em papel!
Atendimento médico:
Após horas de espera
e ter a vez perdida,
nessa etapa são
coletados os sintomas
do paciente e a
análise do médico.
Médico prescreve um
medicamento em um
papel.
Atendimento
ambulatorial:
A prescrição é
coletada, mas a
técnica esqueceu
de solicitar/ separar
os medicamentos.
Após 30 minutos o
medicamento
chega no
ambulatório.
30. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Forma tradicional)
Alta:
Após mais de 6 horas
no hospital o paciente
recebe alta.
Retorno:
Após tomar a
medicação o paciente
retorna para falar com
o médico. Espera mais
uma fila.
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário em papel!
Atendimento médico:
Após horas de espera
e ter a vez perdida,
nessa etapa são
coletados os sintomas
do paciente e a
análise do médico.
Médico prescreve um
medicamento em um
papel.
Atendimento
ambulatorial:
A prescrição é
coletada, mas a
técnica esqueceu
de solicitar/ separar
os medicamentos.
Após 30 minutos o
medicamento
chega no
ambulatório.
31. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Uso do Blockchain)
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário na Rede
Blockchain!
32. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Uso do Blockchain)
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário na Rede
Blockchain!
Atendimento médico:
Aqui são coletados os
sintomas do paciente
e a análise do médico.
Novo bloco é inserido.
33. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Uso do Blockchain)
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário na Rede
Blockchain!
Atendimento médico:
Aqui são coletados os
sintomas do paciente
e a análise do médico.
Novo bloco é inserido.
Atendimento
ambulatorial:
Aqui são coletados
os medicamentos
prescritos para o
paciente. Novo
bloco é inserido.
34. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Uso do Blockchain)
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário na Rede
Blockchain!
Atendimento médico:
Aqui são coletados os
sintomas do paciente
e a análise do médico.
Novo bloco é inserido.
Atendimento
ambulatorial:
Aqui são coletados
os medicamentos
prescritos para o
paciente. Novo
bloco é inserido.
Retorno:
Aqui são coletados os
resultados do estado
de saúde do paciente
após a medicação.
Novo bloco é inserido.
35. Como funciona a Blockchain
Registros imutáveis: exemplo de atendimento hospitalar (Uso do Blockchain)
Acolhida:
Aqui são coletados os
dados do paciente,
bem como seus dados
vitais e inseridos em
um bloco. Abertura do
prontuário na Rede
Blockchain!
Atendimento médico:
Aqui são coletados os
sintomas do paciente
e a análise do médico.
Novo bloco é inserido.
Atendimento
ambulatorial:
Aqui são coletados
os medicamentos
prescritos para o
paciente. Novo
bloco é inserido.
Retorno:
Aqui são coletados os
resultados do estado
de saúde do paciente
após a medicação.
Novo bloco é inserido.
Alta:
Aqui são coletados os
resultados do
atendimento médico
com a avaliação do
estado do paciente.
Novo bloco é inserido.
36. Como funciona a Blockchain
Registros imutáveis: Atendimento hospitalar (Forma tradicional x Blockchain)
Forma tradicional
● Possibilidade de alteração no
documento físico;
● A ordem de atendimento não é
respeitada;
● Possibilidade de perdas de
documentos;
● Não há histórico do paciente
disponível de forma rápida e segura.
Blockchain
● Não há como alterar o registro!
Nem pelo adm do sistema;
● A ordem de atendimento é
respeitada;
● Impossibilidade de perdas de
documentos;
● Histórico do paciente disponível
de forma rápida e segura.
38. Como funciona a Blockchain
Dados:
Prontuário: 2023002
Data: 22/02/2023
Nome: Ava Gina de Almeida
RG: 9854553225412
CPF: 635874265-56
Endereço: Rua das Estradas
Número: 123
Bairro: Epaminondas
CEP: 60965-785
Nonce:37911
Previous Hash:
afb387de76afd9823afcd23df
Current Hash:
a42d3c5f67832df98aa54ff3c8a
Dados:
Prontuário: 2023001
Data: 16/01/2023
Nome: José Lins da Silva
RG: 54879544897
CPF: 857963124-85
Endereço: Rua das Internets
Número: 256
Bairro: Ipê
CEP: 60965-785
Nonce:65846
Previous Hash:
8500b59bb5271135cd9bcb
Current Hash:
afb387de76afd9823afcd23df
Bloco 01 Bloco 02 Bloco 03
Dados:
Prontuário: 2023002
Data: 22/02/2023
Nome: Ava Gina de Almeida
RG: 9854553225412
CPF: 635874265-56
Endereço: Rua das Pedras
Número: 123
Bairro: Epaminondas
CEP: 60965-785
Nonce:17664
Previous Hash:
a42d3c5f67832df98aa54ff3c8a
Current Hash:
8f4d3a5c926578ee94ff9c590fc
Qual a diferença nos dados do bloco 02 e bloco 03?
39. Como funciona a Blockchain
Dados:
Prontuário: 2023002
Data: 22/02/2023
Nome: Ava Gina de Almeida
RG: 9854553225412
CPF: 635874265-56
Endereço: Rua das Estradas
Número: 123
Bairro: Epaminondas
CEP: 60965-785
Nonce:37911
Previous Hash:
afb387de76afd9823afcd23df
Current Hash:
a42d3c5f67832df98aa54ff3c8a
Dados:
Prontuário: 2023001
Data: 16/01/2023
Nome: José Lins da Silva
RG: 54879544897
CPF: 857963124-85
Endereço: Rua das Internets
Número: 256
Bairro: Ipê
CEP: 60965-785
Nonce:65846
Previous Hash:
8500b59bb5271135cd9bcb
Current Hash:
afb387de76afd9823afcd23df
Bloco 01 Bloco 02 Bloco 03
Dados:
Prontuário: 2023002
Data: 22/02/2023
Nome: Ava Gina de Almeida
RG: 9854553225412
CPF: 635874265-56
Endereço: Rua das Pedras
Número: 123
Bairro: Epaminondas
CEP: 60965-785
Nonce:17664
Previous Hash:
a42d3c5f67832df98aa54ff3c8a
Current Hash:
8f4d3a5c926578ee94ff9c590fc
Correção do
Endereço!
Qual a diferença nos dados do bloco 02 e bloco 03?
40. Como funciona a Blockchain
É importante certificar-se que os dados do bloco são válidos e
consistentes antes da inclusão do mesmo na Rede Blockchain!
41. Como funciona a Blockchain
Vamos aprender na prática!
https://andersbrownworth.com/blockchain/blockchain
47. Modelo P2P (peer to peer) distribuído
Invalidação dos demais blocos!
48. Modelo P2P (peer to peer) distribuído
Restauração dos blocos
por sincronismo da Rede!
49. Mineração e POW (proof of work)
● Serra Pelada (1980-1983).
Serra dos Carajás, no Pará;
● Teve início em 1979, quando o
agricultor Genésio Ferreira da
Silva descobriu uma pepita de
ouro de 13 quilos em suas
terras.
50. Mineração e POW (proof of work)
● Cinco semanas depois da
descoberta, 3 mil pessoas foram
para a região, em busca de
fortuna. No primeiro semestre de
1980, Serra Pelada já contava
com 5 mil mineiros vindos de
todas as partes do Brasil,
especialmente do Nordeste.
● Calcula-se que foram extraídos
cerca de 45 toneladas de ouro
desde sua inauguração até o
fechamento oficial em 1992.
51. Mineração e POW (proof of work)
Dados:
“Dados importantes aqui. Pode ser
registro no banco de dados, json,
vetor ou documento em formato
digital (txt, pdf, imagem, doc, xls,
etc)”
Timestamp:20230201 12:11:25
Nonce:12345
Previous Hash: 0
Current Hash:
8500b59bb5271135cd9bcb
Bloco #1
sha256(Dados + Nonce + Previous Hash + Timestamp) = Current Hash
● Dados: Registros digitais armazenados;
● Nonce: Variável de controle da prova de trabalho;
● Previous hash: Hash do bloco anterior;
● Current hash: Hash do bloco atual;
● Timestamp: Data e hora de inclusão do bloco.
52. A variável Nonce
● O Nounce (number that can only be used once) é um número aleatório usado
dentro dos chamados protocolos de autenticação;
● Em uma rede blockchain baseada em POW o nonce funciona em
combinação com o hash como elemento de controle para evitar a
manipulação de informações;
● Deve-se garantir que o nonce seja usado apenas uma vez, com o uso de
uma variante de tempo (timestamp);
53. A variável Nonce
● Esse número aleatório garante que hashes antigos não possam ser
reutilizados nos chamados “ataques de repetição”;
● O cálculo do nonce é realizado de maneira forçada, ou seja, são necessárias
grandes quantidades de recursos computacionais e tempo para atingir esse
valor para que comprove uma prova de trabalho.
● É “impossível” prever a combinação de 32 bits para gerar um hash correto.
54. Como funciona o Nonce!
Vamos aprender na prática!
https://andersbrownworth.com/blockchain/block
55. Aspectos jurídicos a serem considerados
O Código de Ética Médica, no capítulo que trata sobre a relação do médico com
seus pacientes e familiares, define:
● No artigo 70 que é vedado ao profissional “negar ao paciente acesso a seu
prontuário médico, ficha clínica ou similar, bem como deixar de dar
explicações necessárias a sua compreensão, salvo quando ocasionar riscos
para o paciente ou para terceiros”.
● Já o artigo 71 explica que “é vedado ao médico deixar de fornecer laudo
médico ao paciente, quando do encaminhamento ou transferência para fins
de continuidade do tratamento ou na alta, se solicitado”.
Fonte: https://portal.cfm.org.br/artigos/prontuario-medico/
56. Aspectos jurídicos a serem considerados
● O artigo 11 do Código de Ética determina que “o médico deve manter sigilo
quanto às informações confidenciais de que tiver conhecimento no
desempenho de suas funções. O mesmo se aplica ao trabalho em empresas,
exceto nos casos em que seu silêncio prejudique ou ponha em risco a saúde
do trabalhador ou da comunidade”.
Fonte: https://portal.cfm.org.br/artigos/prontuario-medico/
57. Aspectos jurídicos a serem considerados
A Constituição Federal e o Código Penal também garantem a privacidade do
indivíduo. As informações contidas em um prontuário médico devem ser
guardadas de forma sigilosa. Nos casos de solicitações judicial, policial ou de
convênios médicos e companhias de seguro, o prontuário só pode ser fornecido
mediante autorização do paciente ou responsável legal. Porém, em casos
judiciais, convoca-se uma equipe de perícia médica que pode ter livre acesso aos
documentos.
Fonte: https://portal.cfm.org.br/artigos/prontuario-medico/
58. Aspectos jurídicos a serem considerados
O Conselho Federal de Medicina (CFM) publicou em 2002 a resolução que
estabelece o prazo mínimo de 20 anos a partir do último registro, para a
preservação dos prontuários médicos em suporte de papel. O papel só pode ser
eliminado após o arquivamento dos dados, por microfilmagem ou de outra forma.
Para isso, o CFM também determina que todas as instituições de saúde tenham
uma Comissão de Revisão de Prontuários. Sua função é a de resguardar as
informações contidas nos prontuários médicos, que representam documentos
valiosos para o paciente e para o médico.
Fonte: https://portal.cfm.org.br/artigos/prontuario-medico/