Escolar Documentos
Profissional Documentos
Cultura Documentos
Bitcoin ——
Um Sistema de
Um Sistema de
Dinheiro Eletrônico
Dinheiro Eletrônico
Ponto-a-Ponto
Ponto-a-Ponto
Satoshi Nakamoto
Satoshi Nakamoto
SUMÁRIO
Sumário ii
Resumo iii
1 Introdução 1
2 Sistema da Moeda 3
2.1 Transações . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Servidor de Estampa Temporal . . . . . . . . . . . 5
2.3 Prova-de-Trabalho . . . . . . . . . . . . . . . . . . 6
2.4 Rede . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5 Incentivo . . . . . . . . . . . . . . . . . . . . . . . 9
2.6 Recuperando Espaço em Disco . . . . . . . . . . . 10
2.7 Verificação de Pagamento Simplificada . . . . . . . 12
2.8 Combinando e dividindo valores . . . . . . . . . . 13
2.9 Privacidade . . . . . . . . . . . . . . . . . . . . . . 15
2.10 Cálculos . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Conclusão 23
ii
RESUMO
∗
⟨https://bitcoin.org/bitcoin.pdf⟩ † ⟨https://github.com/rhlinden/⟩
‡
⟨https://github.com/swfsql/⟩
§
⟨https://www.meetup.com/Tokyo-Bitcoin-Meetup-Group/photos/3091592/345785282/⟩
iii
RESUMO
iv
capítulo 1
INTRODUÇÃO
2
capítulo 2
SISTEMA DA MOEDA
2.1 Transações
∗
⟨http://www.weidai.com/bmoney.txt⟩
5
CAPÍTULO 2. SISTEMA DA MOEDA
2.3 Prova-de-Trabalho
Para implementar um servidor distribuído de estampas temporais
que seja também ponto-a-ponto, precisaremos usar um sistema de
prova-de-trabalho similar ao Hashcash6 de Adam Back, ao invés
de um jornal ou de publicações na Usenet. A prova-de-trabalho
significa procurar por um valor que quando hasheado, como por
pelo SHA-256, o hash comece por uma quantidade de bits zerados.
Na média, o trabalho necessário é exponencial com a quantidade
de bits zerados necessários e pode ser verificado por um único
hasheamento.
Para a nossa rede de estampas temporais, implementamos
a prova-de-trabalho pelo incremento de um número-consumível
6
A. Back, Hashcash - a denial of service counter-measure∗ , 2002. 2
∗
⟨http://www.hashcash.org/papers/hashcash.pdf⟩
6
2.3. PROVA-DE-TRABALHO
2.4 Rede
Os passos para manter a rede são os seguintes:
1. Novas transações são difundidas para todos os nodos.
2. Cada nodo recolhe novas transações para um bloco.
3. Cada nodo trabalha em encontrar uma difícil prova-de-trabalho
para o seu bloco.
4. Quando um nodo encontra uma prova-de-trabalho, ele di-
funde o bloco para todos os nodos.
5. Os nodos aceitam o bloco apenas se todas as transações
neste são válidas e se não foram ainda gastas.
6. Os nodos expressam a aceitação do bloco ao trabalhar na
criação do próximo bloco na cadeia, usando o hash do bloco
aceito como o hash anterior.
Os nodos sempre consideram a cadeia mais longa como a cor-
8
2.5. INCENTIVO
2.5 Incentivo
Por convenção, a primeira transação de um bloco é uma transação
especial que dá início à uma nova moeda, de propriedade do cria-
dor do bloco. Isto dá um incentivo para os nodos apoiarem a rede,
e constitui uma forma de se introduzir moedas em circulação uma
vez que não há uma autoridade central para emiti-las.
A adição regular de uma quantia fixa de novas moedas é seme-
lhante a mineradores de ouro gastando recursos para adicionar
ouro em circulação. No nosso caso, tempo de processamento e
eletricidade são gastos.
O incentivo também pode ser financiado por taxas sobre as
9
CAPÍTULO 2. SISTEMA DA MOEDA
11
CAPÍTULO 2. SISTEMA DA MOEDA
14
2.9. PRIVACIDADE
2.9 Privacidade
O modelo bancário tradicional fornece uma certa privacidade ao
limitar o acesso à informação às partes envolvidas e ao terceiro
de confiança. A necessidade de se anunciar publicamente todas as
transações inviabiliza este método, mas a privacidade ainda poder
ser mantida quebrando o fluxo de informação em um outro ponto:
por manter-se as chaves públicas anônimas. O público pode ver
que alguém está enviando uma quantia a outra pessoa, mas sem a
informação que possa relacionar transação a alguém. Isto é similar
ao nível de informação publicado pelas bolsas de valores, onde
data e montante das trocas individuais, a "fita", é tornada pública,
mas sem divulgar quem eram as partes. Ver Figura 2.7 – Modelos
de Privacidade.
Como proteção adicional, um novo par de chaves deveria ser
utilizado para cada transação a fim de evitar que fossem vinculadas
15
CAPÍTULO 2. SISTEMA DA MOEDA
2.10 Cálculos
Consideremos o cenário em que um atacante tenta gerar uma ca-
deia alternativa mais rápido do que a cadeia honesta. Mesmo que
consiga, não deixa o sistema exposto à mudanças arbitrárias, como
pela criação de quantidades a partir do nada, ou pela apropriação
de montantes que nunca pertenceram ao atacante. Os nodos não
aceitarão uma transação inválida como um pagamento, e os nodos
honestos nunca aceitarão um bloco que as contenham. Um ata-
cante pode apenas tentar mudar uma de suas próprias transações
para recuperar uma quantia que tenha gasto recentemente.
A corrida entre a cadeia honesta e uma cadeia atacante pode
ser caracterizada como um Passeio Aleatório Binomial. O evento
de sucesso é da cadeia honesta ser estendida por um bloco, au-
mentando a sua liderança em +1, e o evento de falha é da cadeia
do atacante ser estendida por um bloco, reduzindo a distância em
−1.
A probabilidade de um atacante alcançar a partir de um de-
terminado déficit é semelhante ao problema da Ruína do Jogador.
16
2.10. CÁLCULOS
17
CAPÍTULO 2. SISTEMA DA MOEDA
𝜆 = 𝑧𝑞/𝑝
𝑧
𝜆𝑘 𝑒 −𝜆 𝑘 𝑧−𝑘
1−∑ (1 − )
𝑘=0
𝑘! 𝑝
⎧
⎪ 𝑃 = 1.0000000, se 𝑧 =0
⎪
⎪
⎪
⎪ 𝑃 = 0.2045873, se 𝑧 =1
⎪
⎪
⎪ 𝑃 = 0.0509779, se 𝑧 =2
⎪
⎪
⎪
⎪ 𝑃 = 0.0131722, se 𝑧 =3
⎪
⎪
⎪ 𝑃 = 0.0034552, se 𝑧 =4
⎪
para 𝑞 = 0.1.. ⎨𝑃 = 0.0009137, se 𝑧 =5
⎪
⎪
⎪
⎪ 𝑃 = 0.0002428, se 𝑧 =6
⎪
⎪
⎪ 𝑃 = 0.0000647, se 𝑧 =7
⎪
⎪
⎪ 𝑃 = 0.0000173, se 𝑧 =8
⎪
⎪
⎪
⎪ 𝑃 = 0.0000046, se 𝑧 =9
⎪
⎪
⎩𝑃 = 0.0000012, se 𝑧 = 10
⎧
⎪ 𝑃 = 1.0000000, se 𝑧 =0
⎪
⎪
⎪
⎪ 𝑃 = 0.1773523, se 𝑧 =5
⎪
⎪
⎪ 𝑃 = 0.0416605, se 𝑧 = 10
⎪
⎪
⎪
⎪ 𝑃 = 0.0101008, se 𝑧 = 15
⎪
⎪
⎪ 𝑃 = 0.0024804, se 𝑧 = 20
⎪
para 𝑞 = 0.3.. ⎨𝑃 = 0.0006132, se 𝑧 = 25
⎪
⎪
⎪
⎪ 𝑃 = 0.0001522, se 𝑧 = 30
⎪
⎪
⎪ 𝑃 = 0.0000379, se 𝑧 = 35
⎪
⎪
⎪ 𝑃 = 0.0000095, se 𝑧 = 40
⎪
⎪
⎪
⎪ 𝑃 = 0.0000024, se 𝑧 = 45
⎪
⎪
⎩𝑃 = 0.0000006, se 𝑧 = 50
20
2.10. CÁLCULOS
⎧
⎪ 𝑧 = 5, se 𝑞 = 0.10
⎪
⎪
⎪
⎪ 𝑧 = 8, se 𝑞 = 0.15
⎪
⎪
⎪ 𝑧 = 11, se 𝑞 = 0.20
⎪
⎪
⎪𝑧 = 15, se 𝑞 = 0.25
para 𝑃 < 0.1%.. ⎨
⎪
⎪ 𝑧 = 24, se 𝑞 = 0.30
⎪
⎪
⎪ 𝑧 = 41, se 𝑞 = 0.35
⎪
⎪
⎪
⎪ 𝑧 = 89, se 𝑞 = 0.40
⎪
⎪
⎩𝑧 = 340, se 𝑞 = 0.45
2
21
capítulo 3
CONCLUSÃO
P depender da confiança.
Começamos com a estrutura usual de moedas baseadas
em assinaturas digitais, que proporcionam um grande controle de
propriedade, mas que é incompleta sem uma forma de prevenir o
gasto-duplo.
Para resolver isso, propomos uma rede ponto-a-ponto usando
prova-de-trabalho para registrar um histórico público de tran-
sações que rapidamente se torna impraticável de se manipular
por um atacante caso os nodos honestos controlem a maioria da
capacidade de processamento.
A rede é robusta dada a sua simplicidade desestruturada. Os no-
dos trabalham em simultâneo com pouca coordenação. Eles não
necessitam ser identificados, uma vez que as mensagens não são
encaminhadas para para uma localização em particular e só preci-
sam ser entregues sem maiores compromissos.
Os nodos podem abandonar e retornar à rede à vontade, acei-
tando a cadeia de prova-de-trabalho como prova do que aconteceu
enquanto estiveram ausentes. Votam com a sua capacidade de
processamento, evidenciando tanto a sua aceitação dos blocos
válidos por trabalhar na extensão deles quanto a sua rejeição dos
23
CAPÍTULO 3. CONCLUSÃO
24