Você está na página 1de 23

PCS Escola Politcnica - USP

Seminrio sobre

Bitcoin: A Peer-to-Peer Electronic Cash System


por Satoshi Nakamoto
October 31, 2008 www.cryptovest.co.uk
Manuscrito no publicado em peridicos cientficos

Antonio Newton Licciardi Junior

So Paulo
Mar- 2017 1
PCS Escola Politcnica - USP
Sumario

1.Objetivos
2.Introduo
3.Transaes
4.Servidor de Timestamp
5.Proof-of-Work
6.Rede Funcionamento
7.Incentivo
8.Recuperando Espao em Disco / Verificao Simplificada de Pagamento
9.Combinando e Separando Valores
10.Privacidade
11.Clculos
12.Concluso

(*) extras de outros materiais e simulao


(se houver tempo)

2
PCS Escola Politcnica - USP
1. Objetivos

Apresentar a proposta de verso eletrnica, P2P, de dinheiro eletrnico;


Baseado em assinaturas digitais e criptografia como parte da soluo;
Evitar utilizao Instituies Financeiras modelos baseados em confiana;
Proposto como soluo a problemas de double spending;
Transaes Proof-of-Work (de confiana):
Utilizam Assinaturas digitais;
Incluem o Time-stamp da Rede;
Elaboradas em cadeia (com Hash de transaes anteriores).
De forma que, quanto maior a capacidade de CPU (ns honestos) a
disposio para validar as transaes em cadeia, maior a cadeia e
menor a possibilidade de ataques serem bem sucedidos.

3
PCS Escola Politcnica - USP
Comentrios (*)

Satoshi Nakamoto um pseudnimo.

Aps anos de mistrio e especulaes, 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 Criptogrficas (Reuters).


Existem questionamentos da Imprensa quanto a veracidade das chaves
critpgrficas apresentadas que teriam dado incio ao Bitcoin.

Estatsticas do Google Academics:


-Artigo original divulgado em 315 diferentes sites da Internet (relacionados a moedas
digitais)
-Citado em 1430 publicaes at Mar/2017

4
PCS Escola Politcnica - USP
2. Introduo

Comrcio eletrnico depende de Instituies Financeiras p realizao de


transaes seguras;

Sofre das fraquezas do modelo baseado em confiana;

Transaes podem ser desfeitas/revertidas, o que acaba gerando:

Maior Custo (operacional);


Transaes s so viveis a partir de um valor mnimo;
Diminuem a possibilidade de ocorrerem transaes de pequena monta
casuais;

Aumenta a necessidade de confiana entre as partes;

Vendedor acaba solicitando mais e mais informaes ao comprador;

Certa porcentagem de perda neste sistema assumida como inerente.


5
PCS Escola Politcnica - USP
2. Introduo (cont.)

Soluo proposta em modelo de pagamento baseado em prova criptogrfica ao


invs de confiana;

Permitem duas partes interessadas realizarem uma transao diretamente;

Caracterstica das transaes irreversveis computacionalmente:


Proteo aos vendedores contra fraudes;
Mecanismos de Escrow proteger compradores;

Soluo ao problema de double spending usando servidores de time stamp


P2P distribudos para gerar prova computacional da ordem cronolgica da
transao;

Sistema to mais seguro quanto maior a capacidade de computao de ns


honestos da rede versus capacidade cooperativa de grupos atacantes.

6
PCS Escola Politcnica - USP
3. Transaes

Moeda Eletrnica como uma cadeia de assinaturas digitais:


Cada proprietrio (comprador de um produto, servio) transfere a
moeda para o prximo assinando digitalmente o hash da transao
passada e a chave pblica do prximo proprietrio. O vendedor pode
verificar as assinaturas para verificar a cadeia de propriedade da
moeda, confirme ilustrado na Figura 1.

Figura 1 Modelo Transaes Criptogrficas 7


PCS Escola Politcnica - USP
3. Transaes (vide Figura 2)

Comprador (n) Vendedor (n+1)

Chave Privada 1 Chave Privada 2


PrK1 PrK2

Transao Anterior Transao Anterior


Tr(n-1 = 0 ) HASH Tr(n = 1) HASH
Chave Pblica 2 Chave Pblica 3
PK(n+1 = 2) PK(n+2 = 3)
Dados (n) Sign (PrK1) Dados (n+1) Sign (PrK2)
Transao Anterior Transao Anterior
Tr(n-1) HASH Tr(n) HASH
Chave Pblica 2 Chave Pblica 3 Desafio:
PK(n+1) PK(n+2) Duplo gasto de Moeda?
Dados (n) Dados (n+1)

Transao (n) Transao (n+1)


Verificao
8
Figura 2 Modelo Transaes Criptogrficas assinatura e verificao
PCS Escola Politcnica - USP
4. Servidor de Timestamp

A soluo para evitar duplos gastos de moeda baseada na utilizao do rtulos de tempo
nas transaes.
Assim, a transao mais recente com um certo valor de moeda, nos registros/blocos de
transao (longest chain) o que valer para o sistema como transao efetiva.
Um servidor de rtulos de tempo trabalharia tomando o Hash da transao efetuado,
alocando o rtulo de tempo a este e divulgando amplamente o resultado, como em um
jornal ou post na Usenet.
O rtulo de tempo atual inclui o Hash da transao passada e seu respectivo timestamp,
formando uma cadeia em que cada novo rtumo de tempo, refora os anteriores. A figura
3 ilustra o processo mencionado
TIMESTAMP TIMESTAMP

Quem agiria + +
Como Timestamp
Server?

Figura 3 Servio de Rtulos de Tempo das transaes 9


PCS Escola Politcnica - USP
5. Proof of Work (Prova de Trabalho ou Validao)

Para implementao de um servio de rtulos no tempo descentralizado, necessrio um sistema


similar ao Hashcach de Adam Back, ao invs de usarmos a publicao 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 faa com a o HASH, baseado em
SHA-256, produza um certo nmero de bits iniciais 0.
Quanto maior o nmero de bits iniciais zero desejados, cresce exponencialmente o esforo
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 ns vizinhos, que ento verificam a
insero no bloco de cadeia mais longa.
O Bloco de cadeia mais longa representa o maior esforo computacional realizado para a manuteno
das transaes.

A Figura 4 apresenta o esquema de Hascash proposto para o Bitcoin

TS Time Stamp
(referncia UTC)
TS Tx - Transao
TS

Figura 4 Proof at Work Nonce acregado ao Bloco


PCS Escola Politcnica - USP
5. Proof of Work (cont)

O proof-of-work tbem resolve o problema de determinar a representatividade da soluo por deciso de


maioria. O sistema essencialmente one-CPU-one-vote.

No sistema one-IP-address-one vote, existe uma falha de vrios Ips so controlados por um
grupo atacante, podendo representar a maioria.

No sistema one-CPU-one vote, o primeiro n mais rpido que determinar a soluo


critpgrfica NONCE anuncia para os demais vizinhos, e a deciso da maioria apresentada
sempre pelo bloco que gerar a cadeia mais longa.

Segurana do Processo

A cadeia de blocos mais longa, sempre possura um grande esforo computacional embutido
nela
Se a maior capacidade de CPU controlada por ns honestos, esta cadeia crescer mais
rpido 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 nmero ainda maior de blocos e transaes ser agregado a cadeia mais longa num
certo tempo, compensando tbem o aumento de capacidade de CPU de um atacante.
PCS Escola Politcnica - USP
6. Rede - Funcionamento

Novas transaes so divulgadas a todos os ns;

Cada n coleta as novas transaes em um Bloco;

Cada n trabalha para encontrar o difcil NONCE deste bloco Proof-at-Work;

Quando um n encontra a proof-of-work, ele divulga o bloco a todos os ns

Os ns aceitam o bloco somente se as transaes neste forem vlidas e no tiverem sido


gastas/realizadas;

Ns expressam sua aceitao do bloco por trabalhar na criao do prximo na cadeia, usando o
Hash do bloco aceito como Hash prvio;

Observaes

Ns sempre tomam a cadeia mais longa como a correta e continuam trabalhando para
estender esta;

Se dois ns divulgam diferentes verses do prximo bloco ao mesmo tempo, alguns ns


podem receber um ou o outro primeiro. Neste caso, trabalham no 1.o que receberam, mas
salvam o outro brao, caso o ltimo se torne mais longo. Esta questo ser resolvida quando
o prximo proof-of-work for divulgado e uma das cadeias se tornar a mais longa.
PCS Escola Politcnica - USP
7. Incentivo

Primeira transao de um novo Bloco inicia nova moeda p circulao. Isto adiciona um incentivo
para os ns suportarem a rede e prover um meio inicial de distribuir as moedas em circulao.

A Adio regular de novas quantidades de moedas anloga aos mineiros de ouro gastando recursos
para colocar o ouro em circulao. Neste caso, o recurso da CPU e eletricidade que gasto.

O incentivo pode ser baseado em taxas de transao:

Se o valor de sada de um bloco menor do que o de entrada, a diferena um taxa de


transao que adicionada como valor do bloco contendo a transao.

Uma vez que uma certa quantidade de moeda entrou em circulao, as taxas de transao
podem ser convertidas e compor completamente uma taxa de inflao, que recompensa os
ns que transacionam os blocos e a cadeia.

O Incentivo pode ajudar e encorajar os ns 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 Politcnica - USP
7. Incentivo (cont) (*) Bitcoin Wiki Jul/2016

Ns mineradores constroem blocos e validam as transaes. Cada novo bloco colocado com
sucesso (desde o momento que encontrado o NONCE do bloco em 1.a mo) na cadeia
recompensado com 25 BTCs.
Cada BTC em 4/7/16 valia US$419,79
A Figura 5 apresenta a evoluo do Bitcoin em 2016 x outros ndices financeiros brasileiros. A Moeda
teve um valorizao de aprox. 50% em relao ao real em 2016.

Figura 5 Desempenho do Bitcoin comparado com outros ndices - 2016


PCS Escola Politcnica - USP
8. Recuperando Espao em Disco / Verificao Simplificada de Pagamento

Uma vez que a ltima transao/quantidade em moedas gasta em blocos suficientes:


As transaes gastas anteriormente podem ser descartadas para salvar espao em disco.
Transaes so codificadas em uma rvore e Merkle(*), em que apenas a raiz inclusa na
codificao dos blocos.
Os blocos antigos podem ento ser compactados ao remover as verses mais antigas da
rvore. As codificaes anteriores no precisam ser armazenadas.
A Figura 6 apresenta a situao comentada acima e ilustra uma verificao simples de pgto.
(*) - arvore binaria folhas duas a duas combinadas SHA-1 ou CRC. Ex.s ZFS da SUN e Google Wave

Informaoes de um n (*)
SPV simplified payment validation

Figura 6 rvore de Merkle criada para o bloco e descarte das transaes 0 a 2


PCS Escola Politcnica - USP
9. Combinando e Separando Valores
Uma transao pode combinar mltiplas entradas e sadas de uma moeda para fins de
otimizao. Tpico: uma simples entrada de moeda de maior valor, ou vrias entradas de pequeno valor
combinadas com at duas sadas uma com o pagamento, outra retornando o troco, se existente. Este
aspecto apresentado na Figura 7 abaixo.

Figura 7 transao com mltiplas entradas e at duas sadas tipicamente

10. Privacidade
Modelo Tradicional (Banco) nvel de privacidade garantido por limitar acesso a informao das
partes envolvidas.
Novo modelo pblico pode observar transaes, mas sem efetuar a ligao de uma chave pblica a
algum. Alm disto um novo par de chaves pode ser solicitado a cada transao.
A Figura 8 apresenta um esquema dos modelos.

Figura 8 Modelos tradicional de privacidade (ex. Bancos) e Novo Modelo Proposto


PCS Escola Politcnica - USP
11. Clculos
apresentado o clculo de probabilidade de um atacante (ou grupo organizado) criar uma cadeia de
blocos falsa para os ns que cuidam das transaes, subtraindo moedas eletrnicas do sistema. Para
um atacante:
Ns no aceitariam transaes invlidas como pagamento e ns honestos no aceitaro
blocos que as contenham
O atacante pode apenas tentar modificar uma de suas prprias transaes, tomando o
dinheiro de volta que ele gastou recentemente.
Para isto o ns 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 transao 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
liderana em +1. Um evento de fracasso, a cadeia do atacante estendida em um bloco,
reduzindo o gap em -1. Este problema semelhante ao de Runa de um jogador e portanto
(*):

Se p>q => cai exponencialmente o nmero de blocos que o atacante


conseguiria alterar com sucesso;
PCS Escola Politcnica - USP
11. Clculos(*)

Na Figura 9, abaixo, so apresentados alguns casos em que


varia-se o Z. Alternando o q at 0,4, no se observaram mudanas
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 Politcnica - USP
PCS Escola Politcnica - USP

Figura 10 Prob xito do atacante p Z at 20, considerando q= de 0 a 0.5


PCS Escola Politcnica - USP
12. Concluso

Proposto um sistema eletrnico de transaes sem se basear numa estrutura de confiana;

Framework baseado em assinaturas digitais e criptografia;

Transaes so gravadas em blocos criando uma cadeia longa em rede P2P;

Quanto maior a cadeia (dependente tbem da capacidade de CPU dos ns), maior a
dificuldade de um atacante ou grupo de atacantes de gerar transaes invlidas;

Transaes annimas;

Incentivos ajudam a manter os ns honestos e mesmo a alterar objetivos de um atacante.


PCS Escola Politcnica - USP
Criticas

Artigo versa sobre um conjunto de idias de como implementar uma soluo de moeda
criptogrfica;

No apresenta claramente o como deve ser feito, por quem (em uma rede P2P);

No apresenta o processo como um todo;

Crticas mencionadas precisam relevar o fato do artigo ser o originador do Bitcoin, Moedas
Eletrnicas;

Transaes no Bitcoin (blockchain) - https://blockchain.info/pt/


PCS Escola Politcnica - USP

23

Você também pode gostar