PCS – Escola Politécnica - USP
Seminário sobre
“Bitcoin: A Peer-to-Peer Electronic Cash System”
por Satoshi Nakamoto
October 31, 2008 www.cryptovest.co.uk
Manuscrito não publicado em periódicos científicos
Antonio Newton Licciardi Junior
São Paulo
Mar- 2017 1
PCS – Escola Politécnica - USP
Sumario
1.Objetivos
2.Introdução
3.Transações
4.Servidor de Timestamp
5.Proof-of-Work
6.Rede – Funcionamento
7.Incentivo
8.Recuperando Espaço em Disco / Verificação Simplificada de Pagamento
9.Combinando e Separando Valores
10.Privacidade
11.Cálculos
12.Conclusão
(*) – extras – de outros materiais e simulação
(se houver tempo)
2
PCS – Escola Politécnica - USP
1. Objetivos
•Apresentar a proposta de versão eletrônica, P2P, de dinheiro eletrônico;
•Baseado em assinaturas digitais e criptografia como parte da solução;
•Evitar utilização Instituições Financeiras – modelos baseados em confiança;
•Proposto como solução a problemas de “double spending”;
•Transações “Proof-of-Work” (de confiança):
• Utilizam Assinaturas digitais;
• Incluem o “Time-stamp” da Rede;
• Elaboradas em cadeia (com Hash de transações anteriores).
• De forma que, quanto maior a capacidade de CPU (“nós honestos”) a
disposição para validar as transações em cadeia, maior a cadeia e
menor a possibilidade de ataques serem bem sucedidos.
3
PCS – Escola Politécnica - USP
Comentários (*)
“Satoshi Nakamoto” é um pseudônimo.
Após anos de mistério e especulações, o suposto verdadeiro criador da moeda
virtual bitcoin revelou em 06/2016 sua identidade à “BBC”, “The Economist” e à
revista “GQ – Dr. Craig Wright.
Possui mais de 50 patentes no assunto “Moedas Criptográficas” (Reuters).
Existem questionamentos da Imprensa quanto a veracidade das chaves
critpgráficas apresentadas que teriam dado início ao Bitcoin.
Estatísticas do Google Academics:
-Artigo original divulgado em 315 diferentes sites da Internet (relacionados a moedas
digitais)
-Citado em 1430 publicações até Mar/2017
4
PCS – Escola Politécnica - USP
2. Introdução
•Comércio eletrônico depende de Instituições Financeiras p realização de
transações seguras;
•Sofre das fraquezas do modelo baseado em confiança;
•Transações podem ser desfeitas/revertidas, o que acaba gerando:
• Maior Custo (operacional);
• Transações só são viáveis a partir de um valor mínimo;
• Diminuem a possibilidade de ocorrerem transações de pequena monta
casuais;
•Aumenta a necessidade de confiança entre as partes;
• Vendedor – acaba solicitando mais e mais informações ao comprador;
•Certa porcentagem de perda neste sistema é assumida como inerente.
5
PCS – Escola Politécnica - USP
2. Introdução (cont.)
•Solução proposta em modelo de pagamento baseado em prova criptográfica ao
invés de confiança;
•Permitem duas partes interessadas realizarem uma transação diretamente;
•Característica das transações – irreversíveis computacionalmente:
• Proteção aos vendedores contra fraudes;
• Mecanismos de “Escrow” – proteger compradores;
•Solução ao problema de “double spending” usando servidores de “time stamp”
P2P distribuídos para gerar prova computacional da ordem cronológica da
transação;
•Sistema é tão mais seguro quanto maior a capacidade de computação de nós
honestos da rede versus capacidade cooperativa de grupos atacantes.
6
PCS – Escola Politécnica - USP
3. Transações
•Moeda Eletrônica como uma cadeia de assinaturas digitais:
• Cada proprietário (comprador de um produto, serviço) transfere a
moeda para o próximo assinando digitalmente o hash da transação
passada e a chave pública do próximo proprietário. O vendedor pode
verificar as assinaturas para verificar a cadeia de propriedade da
moeda, confirme ilustrado na Figura 1.
7Figura 1 – Modelo Transações Criptográficas
PCS – Escola Politécnica - USP
Dados (n) Sign (PrK1)
8
3. Transações (vide Figura 2)(vide Figura 2)
Comprador (n)
Chave Privada 1
PrK1
Vendedor (n+1)
Chave Privada 2
PrK2
Chave Pública 2
PK(n+1 = 2)
Transação Anterior
Tr(n-1) HASH
Chave Pública 2
PK(n+1)
Transação (n)
Dados (n)
Transação Anterior
Tr(n-1 = 0 ) HASH
Verificação
Dados (n+1) Sign (PrK2)
Chave Pública 3
PK(n+2 = 3)
Transação Anterior
Tr(n = 1) HASH
Transação Anterior
Tr(n) HASH
Chave Pública 3
PK(n+2)
Transação (n+1)
Dados (n+1)
Desafio:
Duplo gasto de Moeda?
Figura 2 – Modelo Transações Criptográficas – assinatura e verificação
PCS – Escola Politécnica - USP
4. Servidor de Timestamp
•A solução para evitar duplos gastos de moeda é baseada na utilização do rótulos de tempo
nas transações.
•Assim, a transação mais recente com um certo valor de moeda, nos registros/blocos de
transação (longest chain) é o que valerá para o sistema como transação efetiva.
•Um servidor de rótulos de tempo trabalharia tomando o Hash da transação efetuado,
alocando o rótulo de tempo a este e divulgando amplamente o resultado, como em um
jornal ou post na Usenet.
•O rótulo de tempo atual inclui o Hash da transação passada e seu respectivo timestamp,
formando uma cadeia – em que cada novo rótumo de tempo, reforça os anteriores. A figura
3 ilustra o processo mencionado
9Figura 3 – Serviço de Rótulos de Tempo das transações
+ +
TIMESTAMP TIMESTAMP
Quem agiria
Como Timestamp
Server?
PCS – Escola Politécnica - USP
5. Proof of Work (Prova de Trabalho ou Validação)
•Para implementação de um serviço de rótulos no tempo descentralizado, é necessário um sistema
similar ao Hashcach de Adam Back, ao invés de usarmos a publicação num jornal de internet ou Usenet.
•O processo – envolve a descoberta do valor de um campo (NONCE – algo que, em criptografia,
significa que só pode ser usado uma vez) agragado ao Bloco, que faça com a o HASH, baseado em
SHA-256, produza um certo número de bits iniciais “0”.
•Quanto maior o número de bits iniciais zero desejados, cresce exponencialmente o esforço
computacional para descobrir o NONCE (no Bitcoin atualmente – 72 bits ‘0’ - https://blockchain.info/pt/
(*)).
•Uma vez que um nó encontra o NONCE, ele anuncia a todos os nós vizinhos, que então verificam a
inserção no bloco de cadeia mais longa.
•O Bloco de cadeia mais longa representa o maior esforço computacional realizado para a manutenção
das transações.
•A Figura 4 apresenta o esquema de Hascash proposto para o Bitcoin
Figura 4 – Proof at Work – Nonce acregado ao Bloco
TS TS
TS – Time Stamp
(referência UTC)
Tx - Transação
PCS – Escola Politécnica - USP
5. Proof of Work (cont)
•O proof-of-work tbem resolve o problema de determinar a representatividade da solução por decisão de
maioria. O sistema é essencialmente one-CPU-one-vote.
• No sistema one-IP-address-one vote, existe uma falha de vários Ips são controlados por um
grupo atacante, podendo representar a maioria.
• No sistema one-CPU-one vote, o primeiro nó mais rápido que determinar a solução
critpgráfica NONCE anuncia para os demais vizinhos, e a decisão da maioria é apresentada
sempre pelo bloco que gerará a cadeia mais longa.
•Segurança do Processo
• A cadeia de blocos mais longa, sempre possuíra um grande esforço computacional embutido
nela
• Se a maior capacidade de CPU é controlada por nós honestos, esta cadeia crescerá mais
rápido do que qq. Cadeia competidora.
• Para modificar um Bloco passado, um atacante teria que se capaz de modificar o bloco e
todos os consequentes a este.
• Para compensar futuros aumentos de velocidade de hardware (Lei de Moore) – observe que
um número ainda maior de blocos e transações será agregado a cadeia mais longa num
certo tempo, compensando tbem o aumento de capacidade de CPU de um atacante.
PCS – Escola Politécnica - USP
6. Rede - Funcionamento
•Novas transações são divulgadas a todos os nós;
•Cada nó coleta as novas transações em um Bloco;
•Cada nó trabalha para encontrar o difícil NONCE deste bloco – Proof-at-Work;
•Quando um nó encontra a proof-of-work, ele divulga o bloco a todos os nós
•Os nós aceitam o bloco somente se as transações neste forem válidas e não tiverem sido
gastas/realizadas;
•Nós expressam sua aceitação do bloco por trabalhar na criação do próximo na cadeia, usando o
Hash do bloco aceito como Hash prévio;
•Observações
• Nós sempre tomam a cadeia mais longa como a correta e continuam trabalhando para
estender esta;
• Se dois nós divulgam diferentes versões do próximo bloco ao mesmo tempo, alguns nós
podem receber um ou o outro primeiro. Neste caso, trabalham no 1.o que receberam, mas
salvam o outro braço, caso o último se torne mais longo. Esta questão será resolvida quando
o próximo “proof-of-work” for divulgado e uma das cadeias se tornar a mais longa.
PCS – Escola Politécnica - USP
7. Incentivo
•Primeira transação de um novo Bloco – inicia nova moeda p circulação. Isto adiciona um incentivo
para os nós suportarem a rede e prover um meio inicial de distribuir as moedas em circulação.
•A Adição regular de novas quantidades de moedas é análoga aos mineiros de ouro gastando recursos
para colocar o ouro em circulação. Neste caso, é o recurso da CPU e eletricidade que é gasto.
•O incentivo pode ser baseado em taxas de transação:
• Se o valor de saída de um bloco é menor do que o de entrada, a diferença é um taxa de
transação que é adicionada como valor do bloco contendo a transação.
• Uma vez que uma certa quantidade de moeda entrou em circulação, as taxas de transação
podem ser convertidas e compor completamente uma taxa de inflação, que recompensa os
nós que transacionam os blocos e a cadeia.
•O Incentivo pode ajudar e encorajar os nós se manterem honestos
•Um atacante pode ser desmotivado, achando que é mais interessante jogar pelas regras e aproveitar
sua alta capacidade de CPU p converter taxas a seu favor (posse novas moedas).
PCS – Escola Politécnica - USP
7. Incentivo (cont) (*) – Bitcoin Wiki – Jul/2016
•Nós mineradores – constroem blocos e validam as transações. Cada novo bloco colocado com
sucesso (desde o momento que é encontrado o NONCE do bloco em 1.a mão) na cadeia é
recompensado com 25 BTCs.
• Cada BTC em 4/7/16 – valia US$419,79
•A Figura 5 apresenta a evolução do Bitcoin em 2016 x outros índices financeiros brasileiros. A Moeda
teve um valorização de aprox. 50% em relação ao real em 2016.
Figura 5 – Desempenho do Bitcoin comparado com outros índices - 2016
PCS – Escola Politécnica - USP
8. Recuperando Espaço em Disco / Verificação Simplificada de Pagamento
•Uma vez que a última transação/quantidade em moedas é gasta em blocos suficientes:
• As transações gastas anteriormente podem ser descartadas para salvar espaço em disco.
• Transações são codificadas em uma árvore e Merkle(*), em que apenas a raiz é inclusa na
codificação dos blocos.
• Os blocos antigos podem então ser compactados ao remover as versões mais antigas da
árvore. As codificações anteriores não precisam ser armazenadas.
• A Figura 6 apresenta a situação comentada acima e ilustra uma verificação simples de pgto.
• (*) - arvore binaria – folhas duas a duas combinadas – SHA-1 ou CRC. Ex.s ZFS da SUN e Google Wave
Figura 6 – árvore de Merkle criada para o bloco e descarte das transações 0 a 2
Informaçoes de um nó (*)
SPV – simplified payment validation
PCS – Escola Politécnica - USP
9. Combinando e Separando Valores
•Uma transação pode combinar múltiplas entradas e saídas de uma moeda – para fins de
otimização. Típico: uma simples entrada de moeda de maior valor, ou várias entradas de pequeno valor
combinadas com até duas saídas – uma com o pagamento, outra retornando o troco, se existente. Este
aspecto é apresentado na Figura 7 abaixo.
10. Privacidade
•Modelo Tradicional (Banco) – nível de privacidade garantido por limitar acesso a informação das
partes envolvidas.
•Novo modelo – público pode observar transações, mas sem efetuar a ligação de uma chave pública a
alguém. Além disto um novo par de chaves pode ser solicitado a cada transação.
A Figura 8 – apresenta um esquema dos modelos.
Figura 7 – transação com múltiplas entradas e até duas saídas tipicamente
Figura 8 – Modelos tradicional de privacidade (ex. Bancos) e Novo Modelo Proposto
PCS – Escola Politécnica - USP
11. Cálculos
•É apresentado o cálculo de probabilidade de um atacante (ou grupo organizado) criar uma cadeia de
blocos falsa para os nós que cuidam das transações, subtraindo moedas eletrônicas do sistema. Para
um atacante:
• Nós não aceitariam transações inválidas como pagamento e nós honestos não aceitarão
blocos que as contenham
• O atacante pode apenas tentar modificar uma de suas próprias transações, tomando o
dinheiro de volta que ele gastou recentemente.
• Para isto o nós atacante precisa criar um bloco falso e aceito mais rapidamente que a rede
‘honesta”, ou ainda uma cadeia de z blocos (o que envolve sua transação e os consequentes
criados), passando a fazer a rede a acreditar que é a cadeia mais longa.
• Problema: um evento de sucesso – a cadeia honesta é estendida de um bloco, aumentando a
liderança em “+1”. Um evento de fracasso, a cadeia do atacante é estendida em um bloco,
reduzindo o gap em “-1”. Este problema é semelhante ao de ‘Ruína de um jogador’ e portanto
(*):
Se p>q => cai exponencialmente o número de blocos que o atacante
conseguiria alterar com sucesso;
PCS – Escola Politécnica - USP
11. Cálculos(*)
Na Figura 9, abaixo, são apresentados alguns casos em que
varia-se o Z. Alternando o q até 0,4, não se observaram mudanças
significativas quando z>5.
Figura 9 – Prob êxito do atacante p Z=5, 10 e 100, considerando q=0.1 e p=0.9
PCS – Escola Politécnica - USP
PCS – Escola Politécnica - USP
Figura 10 – Prob êxito do atacante p Z até 20, considerando q= de 0 a 0.5
PCS – Escola Politécnica - USP
12. Conclusão
•Proposto um sistema eletrônico de transações sem se basear numa estrutura de confiança;
•Framework baseado em assinaturas digitais e criptografia;
•Transações são gravadas em blocos criando uma cadeia longa em rede P2P;
•Quanto maior a cadeia (dependente tbem da capacidade de CPU dos nós), maior a
dificuldade de um atacante ou grupo de atacantes de gerar transações inválidas;
•Transações anônimas;
•Incentivos ajudam a manter os nós honestos e mesmo a alterar objetivos de um atacante.
PCS – Escola Politécnica - USP
Criticas
•Artigo versa sobre um conjunto de idéias de como implementar uma solução de moeda
criptográfica;
•Não apresenta claramente o como deve ser feito, por quem (em uma rede P2P);
•Não apresenta o processo como um todo;
•Críticas mencionadas precisam relevar o fato do artigo ser o originador do Bitcoin, Moedas
Eletrônicas;
•Transações no Bitcoin (blockchain) - https://blockchain.info/pt/
PCS – Escola Politécnica - USP
23

Seminário sobre bitcoin por prof newton licciardi

  • 1.
    PCS – EscolaPolitécnica - USP Seminário sobre “Bitcoin: A Peer-to-Peer Electronic Cash System” por Satoshi Nakamoto October 31, 2008 www.cryptovest.co.uk Manuscrito não publicado em periódicos científicos Antonio Newton Licciardi Junior São Paulo Mar- 2017 1
  • 2.
    PCS – EscolaPolitécnica - USP Sumario 1.Objetivos 2.Introdução 3.Transações 4.Servidor de Timestamp 5.Proof-of-Work 6.Rede – Funcionamento 7.Incentivo 8.Recuperando Espaço em Disco / Verificação Simplificada de Pagamento 9.Combinando e Separando Valores 10.Privacidade 11.Cálculos 12.Conclusão (*) – extras – de outros materiais e simulação (se houver tempo) 2
  • 3.
    PCS – EscolaPolitécnica - USP 1. Objetivos •Apresentar a proposta de versão eletrônica, P2P, de dinheiro eletrônico; •Baseado em assinaturas digitais e criptografia como parte da solução; •Evitar utilização Instituições Financeiras – modelos baseados em confiança; •Proposto como solução a problemas de “double spending”; •Transações “Proof-of-Work” (de confiança): • Utilizam Assinaturas digitais; • Incluem o “Time-stamp” da Rede; • Elaboradas em cadeia (com Hash de transações anteriores). • De forma que, quanto maior a capacidade de CPU (“nós honestos”) a disposição para validar as transações em cadeia, maior a cadeia e menor a possibilidade de ataques serem bem sucedidos. 3
  • 4.
    PCS – EscolaPolitécnica - USP Comentários (*) “Satoshi Nakamoto” é um pseudônimo. Após anos de mistério e especulações, o suposto verdadeiro criador da moeda virtual bitcoin revelou em 06/2016 sua identidade à “BBC”, “The Economist” e à revista “GQ – Dr. Craig Wright. Possui mais de 50 patentes no assunto “Moedas Criptográficas” (Reuters). Existem questionamentos da Imprensa quanto a veracidade das chaves critpgráficas apresentadas que teriam dado início ao Bitcoin. Estatísticas do Google Academics: -Artigo original divulgado em 315 diferentes sites da Internet (relacionados a moedas digitais) -Citado em 1430 publicações até Mar/2017 4
  • 5.
    PCS – EscolaPolitécnica - USP 2. Introdução •Comércio eletrônico depende de Instituições Financeiras p realização de transações seguras; •Sofre das fraquezas do modelo baseado em confiança; •Transações podem ser desfeitas/revertidas, o que acaba gerando: • Maior Custo (operacional); • Transações só são viáveis a partir de um valor mínimo; • Diminuem a possibilidade de ocorrerem transações de pequena monta casuais; •Aumenta a necessidade de confiança entre as partes; • Vendedor – acaba solicitando mais e mais informações ao comprador; •Certa porcentagem de perda neste sistema é assumida como inerente. 5
  • 6.
    PCS – EscolaPolitécnica - USP 2. Introdução (cont.) •Solução proposta em modelo de pagamento baseado em prova criptográfica ao invés de confiança; •Permitem duas partes interessadas realizarem uma transação diretamente; •Característica das transações – irreversíveis computacionalmente: • Proteção aos vendedores contra fraudes; • Mecanismos de “Escrow” – proteger compradores; •Solução ao problema de “double spending” usando servidores de “time stamp” P2P distribuídos para gerar prova computacional da ordem cronológica da transação; •Sistema é tão mais seguro quanto maior a capacidade de computação de nós honestos da rede versus capacidade cooperativa de grupos atacantes. 6
  • 7.
    PCS – EscolaPolitécnica - USP 3. Transações •Moeda Eletrônica como uma cadeia de assinaturas digitais: • Cada proprietário (comprador de um produto, serviço) transfere a moeda para o próximo assinando digitalmente o hash da transação passada e a chave pública do próximo proprietário. O vendedor pode verificar as assinaturas para verificar a cadeia de propriedade da moeda, confirme ilustrado na Figura 1. 7Figura 1 – Modelo Transações Criptográficas
  • 8.
    PCS – EscolaPolitécnica - USP Dados (n) Sign (PrK1) 8 3. Transações (vide Figura 2)(vide Figura 2) Comprador (n) Chave Privada 1 PrK1 Vendedor (n+1) Chave Privada 2 PrK2 Chave Pública 2 PK(n+1 = 2) Transação Anterior Tr(n-1) HASH Chave Pública 2 PK(n+1) Transação (n) Dados (n) Transação Anterior Tr(n-1 = 0 ) HASH Verificação Dados (n+1) Sign (PrK2) Chave Pública 3 PK(n+2 = 3) Transação Anterior Tr(n = 1) HASH Transação Anterior Tr(n) HASH Chave Pública 3 PK(n+2) Transação (n+1) Dados (n+1) Desafio: Duplo gasto de Moeda? Figura 2 – Modelo Transações Criptográficas – assinatura e verificação
  • 9.
    PCS – EscolaPolitécnica - USP 4. Servidor de Timestamp •A solução para evitar duplos gastos de moeda é baseada na utilização do rótulos de tempo nas transações. •Assim, a transação mais recente com um certo valor de moeda, nos registros/blocos de transação (longest chain) é o que valerá para o sistema como transação efetiva. •Um servidor de rótulos de tempo trabalharia tomando o Hash da transação efetuado, alocando o rótulo de tempo a este e divulgando amplamente o resultado, como em um jornal ou post na Usenet. •O rótulo de tempo atual inclui o Hash da transação passada e seu respectivo timestamp, formando uma cadeia – em que cada novo rótumo de tempo, reforça os anteriores. A figura 3 ilustra o processo mencionado 9Figura 3 – Serviço de Rótulos de Tempo das transações + + TIMESTAMP TIMESTAMP Quem agiria Como Timestamp Server?
  • 10.
    PCS – EscolaPolitécnica - USP 5. Proof of Work (Prova de Trabalho ou Validação) •Para implementação de um serviço de rótulos no tempo descentralizado, é necessário um sistema similar ao Hashcach de Adam Back, ao invés de usarmos a publicação num jornal de internet ou Usenet. •O processo – envolve a descoberta do valor de um campo (NONCE – algo que, em criptografia, significa que só pode ser usado uma vez) agragado ao Bloco, que faça com a o HASH, baseado em SHA-256, produza um certo número de bits iniciais “0”. •Quanto maior o número de bits iniciais zero desejados, cresce exponencialmente o esforço computacional para descobrir o NONCE (no Bitcoin atualmente – 72 bits ‘0’ - https://blockchain.info/pt/ (*)). •Uma vez que um nó encontra o NONCE, ele anuncia a todos os nós vizinhos, que então verificam a inserção no bloco de cadeia mais longa. •O Bloco de cadeia mais longa representa o maior esforço computacional realizado para a manutenção das transações. •A Figura 4 apresenta o esquema de Hascash proposto para o Bitcoin Figura 4 – Proof at Work – Nonce acregado ao Bloco TS TS TS – Time Stamp (referência UTC) Tx - Transação
  • 11.
    PCS – EscolaPolitécnica - USP 5. Proof of Work (cont) •O proof-of-work tbem resolve o problema de determinar a representatividade da solução por decisão de maioria. O sistema é essencialmente one-CPU-one-vote. • No sistema one-IP-address-one vote, existe uma falha de vários Ips são controlados por um grupo atacante, podendo representar a maioria. • No sistema one-CPU-one vote, o primeiro nó mais rápido que determinar a solução critpgráfica NONCE anuncia para os demais vizinhos, e a decisão da maioria é apresentada sempre pelo bloco que gerará a cadeia mais longa. •Segurança do Processo • A cadeia de blocos mais longa, sempre possuíra um grande esforço computacional embutido nela • Se a maior capacidade de CPU é controlada por nós honestos, esta cadeia crescerá mais rápido do que qq. Cadeia competidora. • Para modificar um Bloco passado, um atacante teria que se capaz de modificar o bloco e todos os consequentes a este. • Para compensar futuros aumentos de velocidade de hardware (Lei de Moore) – observe que um número ainda maior de blocos e transações será agregado a cadeia mais longa num certo tempo, compensando tbem o aumento de capacidade de CPU de um atacante.
  • 12.
    PCS – EscolaPolitécnica - USP 6. Rede - Funcionamento •Novas transações são divulgadas a todos os nós; •Cada nó coleta as novas transações em um Bloco; •Cada nó trabalha para encontrar o difícil NONCE deste bloco – Proof-at-Work; •Quando um nó encontra a proof-of-work, ele divulga o bloco a todos os nós •Os nós aceitam o bloco somente se as transações neste forem válidas e não tiverem sido gastas/realizadas; •Nós expressam sua aceitação do bloco por trabalhar na criação do próximo na cadeia, usando o Hash do bloco aceito como Hash prévio; •Observações • Nós sempre tomam a cadeia mais longa como a correta e continuam trabalhando para estender esta; • Se dois nós divulgam diferentes versões do próximo bloco ao mesmo tempo, alguns nós podem receber um ou o outro primeiro. Neste caso, trabalham no 1.o que receberam, mas salvam o outro braço, caso o último se torne mais longo. Esta questão será resolvida quando o próximo “proof-of-work” for divulgado e uma das cadeias se tornar a mais longa.
  • 13.
    PCS – EscolaPolitécnica - USP 7. Incentivo •Primeira transação de um novo Bloco – inicia nova moeda p circulação. Isto adiciona um incentivo para os nós suportarem a rede e prover um meio inicial de distribuir as moedas em circulação. •A Adição regular de novas quantidades de moedas é análoga aos mineiros de ouro gastando recursos para colocar o ouro em circulação. Neste caso, é o recurso da CPU e eletricidade que é gasto. •O incentivo pode ser baseado em taxas de transação: • Se o valor de saída de um bloco é menor do que o de entrada, a diferença é um taxa de transação que é adicionada como valor do bloco contendo a transação. • Uma vez que uma certa quantidade de moeda entrou em circulação, as taxas de transação podem ser convertidas e compor completamente uma taxa de inflação, que recompensa os nós que transacionam os blocos e a cadeia. •O Incentivo pode ajudar e encorajar os nós se manterem honestos •Um atacante pode ser desmotivado, achando que é mais interessante jogar pelas regras e aproveitar sua alta capacidade de CPU p converter taxas a seu favor (posse novas moedas).
  • 14.
    PCS – EscolaPolitécnica - USP 7. Incentivo (cont) (*) – Bitcoin Wiki – Jul/2016 •Nós mineradores – constroem blocos e validam as transações. Cada novo bloco colocado com sucesso (desde o momento que é encontrado o NONCE do bloco em 1.a mão) na cadeia é recompensado com 25 BTCs. • Cada BTC em 4/7/16 – valia US$419,79 •A Figura 5 apresenta a evolução do Bitcoin em 2016 x outros índices financeiros brasileiros. A Moeda teve um valorização de aprox. 50% em relação ao real em 2016. Figura 5 – Desempenho do Bitcoin comparado com outros índices - 2016
  • 15.
    PCS – EscolaPolitécnica - USP 8. Recuperando Espaço em Disco / Verificação Simplificada de Pagamento •Uma vez que a última transação/quantidade em moedas é gasta em blocos suficientes: • As transações gastas anteriormente podem ser descartadas para salvar espaço em disco. • Transações são codificadas em uma árvore e Merkle(*), em que apenas a raiz é inclusa na codificação dos blocos. • Os blocos antigos podem então ser compactados ao remover as versões mais antigas da árvore. As codificações anteriores não precisam ser armazenadas. • A Figura 6 apresenta a situação comentada acima e ilustra uma verificação simples de pgto. • (*) - arvore binaria – folhas duas a duas combinadas – SHA-1 ou CRC. Ex.s ZFS da SUN e Google Wave Figura 6 – árvore de Merkle criada para o bloco e descarte das transações 0 a 2 Informaçoes de um nó (*) SPV – simplified payment validation
  • 16.
    PCS – EscolaPolitécnica - USP 9. Combinando e Separando Valores •Uma transação pode combinar múltiplas entradas e saídas de uma moeda – para fins de otimização. Típico: uma simples entrada de moeda de maior valor, ou várias entradas de pequeno valor combinadas com até duas saídas – uma com o pagamento, outra retornando o troco, se existente. Este aspecto é apresentado na Figura 7 abaixo. 10. Privacidade •Modelo Tradicional (Banco) – nível de privacidade garantido por limitar acesso a informação das partes envolvidas. •Novo modelo – público pode observar transações, mas sem efetuar a ligação de uma chave pública a alguém. Além disto um novo par de chaves pode ser solicitado a cada transação. A Figura 8 – apresenta um esquema dos modelos. Figura 7 – transação com múltiplas entradas e até duas saídas tipicamente Figura 8 – Modelos tradicional de privacidade (ex. Bancos) e Novo Modelo Proposto
  • 17.
    PCS – EscolaPolitécnica - USP 11. Cálculos •É apresentado o cálculo de probabilidade de um atacante (ou grupo organizado) criar uma cadeia de blocos falsa para os nós que cuidam das transações, subtraindo moedas eletrônicas do sistema. Para um atacante: • Nós não aceitariam transações inválidas como pagamento e nós honestos não aceitarão blocos que as contenham • O atacante pode apenas tentar modificar uma de suas próprias transações, tomando o dinheiro de volta que ele gastou recentemente. • Para isto o nós atacante precisa criar um bloco falso e aceito mais rapidamente que a rede ‘honesta”, ou ainda uma cadeia de z blocos (o que envolve sua transação e os consequentes criados), passando a fazer a rede a acreditar que é a cadeia mais longa. • Problema: um evento de sucesso – a cadeia honesta é estendida de um bloco, aumentando a liderança em “+1”. Um evento de fracasso, a cadeia do atacante é estendida em um bloco, reduzindo o gap em “-1”. Este problema é semelhante ao de ‘Ruína de um jogador’ e portanto (*): Se p>q => cai exponencialmente o número de blocos que o atacante conseguiria alterar com sucesso;
  • 18.
    PCS – EscolaPolitécnica - USP 11. Cálculos(*) Na Figura 9, abaixo, são apresentados alguns casos em que varia-se o Z. Alternando o q até 0,4, não se observaram mudanças significativas quando z>5. Figura 9 – Prob êxito do atacante p Z=5, 10 e 100, considerando q=0.1 e p=0.9
  • 19.
    PCS – EscolaPolitécnica - USP
  • 20.
    PCS – EscolaPolitécnica - USP Figura 10 – Prob êxito do atacante p Z até 20, considerando q= de 0 a 0.5
  • 21.
    PCS – EscolaPolitécnica - USP 12. Conclusão •Proposto um sistema eletrônico de transações sem se basear numa estrutura de confiança; •Framework baseado em assinaturas digitais e criptografia; •Transações são gravadas em blocos criando uma cadeia longa em rede P2P; •Quanto maior a cadeia (dependente tbem da capacidade de CPU dos nós), maior a dificuldade de um atacante ou grupo de atacantes de gerar transações inválidas; •Transações anônimas; •Incentivos ajudam a manter os nós honestos e mesmo a alterar objetivos de um atacante.
  • 22.
    PCS – EscolaPolitécnica - USP Criticas •Artigo versa sobre um conjunto de idéias de como implementar uma solução de moeda criptográfica; •Não apresenta claramente o como deve ser feito, por quem (em uma rede P2P); •Não apresenta o processo como um todo; •Críticas mencionadas precisam relevar o fato do artigo ser o originador do Bitcoin, Moedas Eletrônicas; •Transações no Bitcoin (blockchain) - https://blockchain.info/pt/
  • 23.
    PCS – EscolaPolitécnica - USP 23