Escolar Documentos
Profissional Documentos
Cultura Documentos
Satoshi Nakamoto
satoshin@gmx.com
www.bitcoin.org
1. Introdução
As transações de comércio na Internet, quase que exclusivamente, utilizam instituições
financeiras como terceiros confiáveis para processar os pagamentos eletrônicos. Embora
o sistema funcione bem o suficiente para a maioria das transações, ele continua sofrendo
com as fraquezas inerentes ao modelo baseado em confiança. Transações totalmente
irreversíveis não são realmente possíveis, uma vez que as instituições financeiras não
podem evitar o seu envolvimento na mediação de disputas. Os custos desta mediação
aumentam os custos das transações, limitando o tamanho mínimo das operações,
eliminado a possibilidade de transações menores, existindo assim um custo mais amplo
pela perda de capacidade de fazer pagamentos irreversíveis por serviços também
irreversíveis. Com a possibilidade de reversão, aumenta a necessidade de confiança. Os
comerciantes preocupam-se com seus clientes, incomodando-os por mais informações do
que seriam realmente necessárias. Uma certa margem de fraudes são aceitas como
inevitáveis. Esses custos e as incertezas de pagamento poderiam ser evitados em
transações pessoais utilizando a moeda física, mas não existe como fazer pagamentos
semelhantes em transações eletrônicas sem o envolvimento de um terceiro confiável.
2. Transações
Podemos definir uma moeda eletrônica como uma cadeia de assinaturas digitais. Cada
proprietário transfere a moeda para outra pessoa assinando digitalmente um hash da
transação anterior e a chave pública do próximo proprietário, adicionando-as ao final da
transação com a moeda. Assim o beneficiário pode verificar as transações anteriores para
validar a cadeia de propriedade da moeda.
O problema é que o beneficiário não pode verificar se um dos proprietários não gastou
a moeda por duas vezes. Uma solução comum é introduzir uma autoridade central
confiável, que verifica todas as transações para evitar gastos duplos. Após cada transação,
ela deve ser enviada à autoridade central para validação, e apenas as que forem validadas
diretamente pela autoridade central são confiáveis, garantindo que os mesmos valores não
sejam gastos duas vezes. O problema com esta solução é que todo o sistema monetário
dependerá da autoridade central confiável, com cada transação passando por ela, como
se fosse um banco.
5. Rede (Network)
Os passos para o funcionamento da rede são os seguintes:
1.) Novas transações são divulgadas para todos os nodos.
2.) Cada nodo agrupa novas transações em um bloco.
3.) Cada nodo trabalha para encontrar / calcular a prova de trabalho para seu bloco.
4.) Quando um nodo encontra uma prova de trabalho, ele comunica o bloco para
todos os nodos conectados à rede.
5.) Os nodos aceitam o bloco somente se todas as suas transações forem válidas e
não estiverem gastas (não ocorrer o gasto duplo).
6.) Os nodos expressam a aceitação do bloco pelo trabalho de criação do próximo
bloco na cadeia, usando o hash do bloco aceito como o hash anterior no novo
bloco.
Os nodos consideram a cadeia mais longa como a correta e continuam trabalhando
para estendê-la. Se dois nodos divulgam diferentes versões do próximo bloco
simultaneamente, alguns nodos podem receber um ou outro primeiro. Nestes casos, eles
trabalharão com o primeiro que foi recebido, mas salvando o outro ramo para o caso dele
se tornar mais longo. O desvio será quebrado quando a próxima prova de trabalho for
encontrada e um ramo se tornar mais longo; os nodos que estavam trabalhando no ramo
mais curto mudarão para o mais longo.
Novas transmissões de transações não necessitam alcançar todos os nós. Enquanto
eles chegarem a maioria de nodos, entrarão em um bloco antes disso. As transmissões de
blocos também são tolerantes às mensagens descartadas. Se um nodo não receber um
bloco, ele o solicitará quando receber o próximo bloco e perceber a ausência do anterior.
6. Incentivo
Por convenção, a primeira transação em um bloco é uma transação especial que cria um
novo valor da moeda, de propriedade do criador do bloco. Isso oferece incentivo para
nodos suportarem a rede e também cria uma forma de incluir novas quantidades da moeda
para circulação, já que não existe autoridade central para emiti-las. A adição regular de
uma quantidade constante de moedas novas é análoga aos mineradores de ouro gastando
recursos para adicionar ouro à circulação. No nosso caso, é o tempo de CPU e eletricidade
que são gastos.
O incentivo também pode ser financiado com taxas por transação. Se o valor de saída
de uma transação for inferior ao valor de entrada, a diferença é uma taxa de transação que
é adicionada ao valor de incentivo do bloco que contém a transação. Uma vez que um
número predeterminado de moedas entrou em circulação, o incentivo pode transitar
inteiramente para taxas de transação e ser completamente livre de inflação.
O incentivo deverá estimular os nodos a permanecerem honestos. Se um atacante
ganancioso for capaz de criar mais poder computacional do que todos os nodos honestos,
ele teria que escolher entre usá-lo para fraudar as pessoas roubando seus pagamentos, ou
usá-lo para gerar novas moedas. Ele devera acreditar ser mais lucrativo jogar com as
regras que o favorecem com mais moedas novas do que todos combinados, ao invés de
minar o sistema e a validade de sua própria riqueza.
7. Recuperando o espaço em disco
Uma vez que a transação mais recente foi inserida em blocos suficientes, as transações
anteriores podem ser descartadas para economizar espaço em disco. Para facilitar isso
sem quebrar o hash do bloco, as transações têm o seu hash ajustado em uma Merkle Tree
[7] [2] [5], com apenas a raiz incluída no hash do bloco. Os blocos antigos podem então
ser compactados estreitando os ramos da árvore. Assim, os hashes interiores não precisam
ser armazenados.
Deve notar-se que quando uma transação depende de várias transações, e essas
transações dependem de muitas mais, não é um problema. Assim, não existe a
necessidade de extrair um extrato completo do histórico de uma transação.
10. Privacidade
O modelo bancário tradicional garante a privacidade limitando o acesso à informação às
partes envolvidas e ao terceiro confiável. A necessidade de tornar públicas todas as
transações impedem esse método, porém a privacidade pode ser obtida mantendo-se as
chaves públicas anônimas. O público pode ver que alguém está enviando um valor para
outra pessoa, mas sem informações que ligam a transação a ninguém. Isso é semelhante
ao nível de informação divulgado pelas bolsas de valores, onde o momento e o tamanho
dos negócios individuais são tornados públicos, mas sem detalhar quem são as partes.
Como um firewall adicional, um novo par de chaves deve ser usado para cada
transação para mantê-los vinculados a um proprietário comum. Alguns links ainda são
inevitáveis com transações de entrada múltipla, o que necessariamente revela que suas
entradas foram de propriedade do mesmo proprietário. O risco é que se o proprietário de
uma chave for revelado, a ligação pode revelar outras transações que pertencem ao
mesmo proprietário.
11. Cálculos
Consideramos o cenário de um atacante tentando gerar uma cadeia alternativa mais rápida
do que a cadeia original. Mesmo que isso ocorra, não abrirá o sistema para mudanças
arbitrárias, como criar valor ilicitamente ou gastar dinheiro/moeda que nunca lhe
pertenceu. Os nodos não aceitarão uma transação inválida como pagamento, e os nodos
honestos nunca aceitarão um bloco que as contenha. Um invasor só pode tentar mudar
uma das suas próprias transações para recuperar o dinheiro que gastou recentemente.
A corrida entre a cadeia honesta e uma cadeia ilícita/alternativa pode ser caracterizada
como uma caminhada binomial aleatória. O evento de sucesso é a cadeia honesta sendo
estendida por um bloco, aumentando a vantagem por +1, e o evento de falha é a cadeia
do atacante sendo estendida por um bloco, reduzindo a diferença em -1.
12. Conclusão
Propomos um sistema para transações eletrônicas não baseado na confiança. Começamos
com o quadro usual de moedas feitas a partir de assinaturas digitais, que proporciona um
forte controle da propriedade, mas está incompleta sem uma maneira de evitar gastos
duplos. Para resolver isso, propusemos uma rede peer-to-peer usando a prova de trabalho
para registrar um histórico público de transações que rapidamente se torna
computacionalmente impraticável para que um invasor mude se os nodos honestos
controlam a maior parte do poder computacional da Rede. A rede é robusta em sua
simplicidade não estruturada. Os nós funcionam de uma só vez com pouca coordenação.
Eles não precisam ser identificados, uma vez que as mensagens não são encaminhadas
para nenhum local específico e só precisam ser entregues de acordo com o melhor esforço.
Os nodos podem sair e voltar à rede à vontade, aceitando a cadeia de prova de trabalho
como prova do que aconteceu enquanto estavam desconectados. Eles votam com o poder
da CPU, expressando sua aceitação de blocos válidos trabalhando em estendê-los e
rejeitando blocos inválidos, recusando-se a trabalhar neles. Quaisquer regras e incentivos
necessários podem ser aplicados com este mecanismo de consenso.
Referencias