<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://area31.net.br/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Crlsgms</id>
	<title>Área31 Hackerspace - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="https://area31.net.br/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Crlsgms"/>
	<link rel="alternate" type="text/html" href="https://area31.net.br/wiki/Especial:Contribui%C3%A7%C3%B5es/Crlsgms"/>
	<updated>2026-06-04T06:10:21Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://area31.net.br/wiki/index.php?title=Bitcoin:_Um_sistema_de_dinheiro_eletr%C3%B4nico_Ponto-a-Ponto_(P2P)&amp;diff=3825</id>
		<title>Bitcoin: Um sistema de dinheiro eletrônico Ponto-a-Ponto (P2P)</title>
		<link rel="alternate" type="text/html" href="https://area31.net.br/wiki/index.php?title=Bitcoin:_Um_sistema_de_dinheiro_eletr%C3%B4nico_Ponto-a-Ponto_(P2P)&amp;diff=3825"/>
		<updated>2018-07-26T17:10:08Z</updated>

		<summary type="html">&lt;p&gt;Crlsgms: /* Referências */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Autor:&lt;br /&gt;
&lt;br /&gt;
Satoshi Nakamoto&lt;br /&gt;
satoshin@gmx.com&lt;br /&gt;
[www.bitcoin.org]&lt;br /&gt;
Horiginalmente Traduzido por: Eduardo Abreu [www.mestretrader.com]&lt;br /&gt;
Revisão: Área31 Hackspace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Prefácio ===&lt;br /&gt;
&lt;br /&gt;
Uma versão puramente ponto-a-ponto (P2P) de dinheiro eletrônico permitiria o envio de&lt;br /&gt;
pagamentos online diretamente de uma pessoa para outra, sem ter que passar por uma instituição&lt;br /&gt;
financeira. Assinaturas digitais fornecem parte da solução, mas os principais benefícios são&lt;br /&gt;
perdidos se um intermediário confiável ainda for necessário para prevenir [https://jus.com.br/artigos/66683/o-que-e-gasto-duplo-e-como-o-bitcoin-e-capaz-de-evita-lo gasto duplo]. Propomos uma solução para o problema de gasto duplo utilizando uma rede ponto-a-ponto.&lt;br /&gt;
A rede registra data e hora das transações transformando-as em um hash dentro de uma corrente contínua codificada de&lt;br /&gt;
prova de trabalho, formando um registro que não pode ser alterado sem que a prova&lt;br /&gt;
de trabalho seja refeita. A corrente mais longa serve não somente como prova da sequência dos&lt;br /&gt;
eventos testemunhados, mas tembém prova de que eles vieram de um conjunto maior de poder de CPU.&lt;br /&gt;
Enquanto a maior parte do poder de processamento for controlado por nodes (pontos) que não&lt;br /&gt;
estão cooperando para atacar a rede, eles irão gerar a corrente mais longa e superar os invasores.&lt;br /&gt;
A rede em si requer uma estrutura mínima. Mensagens são transmitidas na base do melhor esforço,&lt;br /&gt;
e os nodes podem sair e se juntar novamente a rede à vontade, aceitando a corrente com a maior&lt;br /&gt;
“prova de trabalho” como prova do que aconteceu enquanto eles estiveram fora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Introdução ===&lt;br /&gt;
O comércio pela Internet veio a depender quase que exclusivamente de instituições financeiras servindo&lt;br /&gt;
como intermediários confiáveis para processar pagamentos eletrônicos. Enquanto o sistema funciona bem&lt;br /&gt;
o suficiente para grande parte das transações, ainda assim, ele sofre da fraqueza inerente desse modelo&lt;br /&gt;
baseado em confiança. Na realidade, transações completamente irreversíveis não são possíveis, já que as&lt;br /&gt;
instituições financeiras não podem evitar a mediação de disputas. O custo desta mediação aumenta os custos&lt;br /&gt;
transacionais, limitando o valor mínimo para uma transação ser viável e eliminando a possibilidade de&lt;br /&gt;
transações pequenas e casuais, e há um custo maior na perda da habilidade de fazer pagamentos nãoestornáveis&lt;br /&gt;
para serviços nãoestornáveis. Com a possibilidade do estorno, a necessidade de confiança se&lt;br /&gt;
torna ainda maior. Comerciantes devem desconfiar de seus clientes, incomodando-os por mais informações&lt;br /&gt;
do que seriam realmente necessárias. Um certo percentual de fraude é aceita como inevitável. Estes custos&lt;br /&gt;
e incertezas de pagamentos podem ser evitados pessoalmente usando uma moeda física, mas não existe&lt;br /&gt;
mecanismo que faça pagamentos em canais de comunicação sem um intermediário confiável.&lt;br /&gt;
O que é preciso é um sistema de pagamentos eletrônicos baseado em provas criptográficas ao invés de&lt;br /&gt;
confiança, que permita que duas partes interessadas em fazer transações diretamente, as façam sem a&lt;br /&gt;
necessidade de um intermediário confiável. Transações que são computacionalmente impraticáveis de&lt;br /&gt;
reverter protegeriam vendedores de fraude, e mecanismos de garantia poderiam ser facilmente&lt;br /&gt;
implementados para proteger os compradores. Neste artigo, nós propomos uma solução para o problema do&lt;br /&gt;
gasto duplo usando um servidor de “carimbos de tempo” (timestamp) distribuído ponto-a-ponto para gerar&lt;br /&gt;
uma prova computacional da ordem cronológica das transações. O sistema é seguro desde que os nodes&lt;br /&gt;
honestos coletivamente controlem mais poder de processamento do que qualquer grupo cooperante de nodes&lt;br /&gt;
do invasor. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Transações ===&lt;br /&gt;
Nós definimos uma moeda eletrônica como uma cadeia de assinaturas digitais. Cada proprietário transfere&lt;br /&gt;
a moeda para o próximo, assinando digitalmente um hash das transações anteriores e a chave pública do&lt;br /&gt;
próximo proprietário e as adicionando ao fim da moeda. Um beneficiário pode conferir as assinaturas para&lt;br /&gt;
verificar a cadeia de propriedade.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Transaction.png]]&lt;br /&gt;
&lt;br /&gt;
O problema, obviamente, é que o beneficiário não pode verificar se um dos proprietários não gastou&lt;br /&gt;
duas vezes a moeda. Uma solução comum é introduzir uma autoridade central confiável, ou uma “Casa da&lt;br /&gt;
Moeda”, que verificaria cada transação por gasto duplo. Após cada transação, a moeda seria retornada a&lt;br /&gt;
Casa da Moeda que emitiria então uma nova moeda, e apenas moedas emitidas diretamente da Casa da&lt;br /&gt;
Moeda seriam confiáveis de não terem sido gastas duas vezes. O problema com esta solução é que o destino&lt;br /&gt;
de todo o sistema monetário dependeria da empresa que toma conta da Casa da Moeda, com toda transação&lt;br /&gt;
tendo que passar por ela, exatamente como um banco.&lt;br /&gt;
&lt;br /&gt;
Nós precisamos de uma forma na qual o beneficiário saiba que os donos anteriores não assinaram&lt;br /&gt;
nenhuma transação prévia. Para nosso propósito, a transação mais antiga é a transação que conta, então nós&lt;br /&gt;
não nos importamos com tentativas subsequentes de gasto duplicado. A única forma de confirmar a ausência&lt;br /&gt;
de uma transação é estar ciente de todas as transações. Em um modelo baseado em uma Casa da Moeda, a&lt;br /&gt;
casa estava ciente de todas as transações e decidia qual delas chegou primeiro. Para que isso seja feito sem&lt;br /&gt;
um intermediário confiável, as transações precisam ser publicamente anunciadas [1], e nós precisamos de&lt;br /&gt;
um sistema para os participantes concordarem em um único histórico da ordem na qual elas foram&lt;br /&gt;
recebidas. O beneficiário precisa de prova que na hora de cada transação, a maioria dos nodes concordaram&lt;br /&gt;
que ela foi a primeira recebida.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Servidor de Carimbos de tempo ====&lt;br /&gt;
A solução que nós propomos começa com um servidor de carimbos de tempo. Um servidor de carimbos de&lt;br /&gt;
tempo funciona pegando um hash de um bloco de itens para serem carimbados e publicando amplamente&lt;br /&gt;
este hash, assim como em um jornal ou um post na Usenet [2-5]. O carimbo de tempo prova que os dados&lt;br /&gt;
precisam ter existido naquele momento, obviamente, para que sejam incluídos no hash. Cada carimbo de&lt;br /&gt;
tempo inclui o carimbo de tempo anterior em seu hash, formando uma corrente, com cada carimbo de tempo&lt;br /&gt;
adicional reforçando os anteriores. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Timestampserver.png]]&lt;br /&gt;
&lt;br /&gt;
=== Prova de trabalho ===&lt;br /&gt;
Para implementar um servidor de carimbo de tempo distribuído baseado em ponto-a-ponto (P2P), nós utilizaremos um sistema de prova de trabalho similar ao Adam Back’s’ Hashcash [6], em vez de um&lt;br /&gt;
jornal ou um post da Usenet. A prova de trabalho envolve procurar por um valor que quando transformado&lt;br /&gt;
em hash, como com SHA-256, o hash começa com um número de zero bits. O trabalho médio necessário é&lt;br /&gt;
exponencial no número de zero bits necessários e este pode ser verificado executando um único hash.&lt;br /&gt;
Para a nossa rede de carimbos de tempo, nós implementamos a prova de trabalho incrementando um&lt;br /&gt;
[https://en.bitcoin.it/wiki/Nonce nonce] no bloco até que seja encontrado um valor que dê ao hash do bloco a quantidade requerida de zero bits. Uma vez que o esforço da CPU foi gasto para satisfazer a prova de trabalho, o bloco não pode&lt;br /&gt;
ser modificado sem refazer o trabalho. Como os blocos posteriores são inseridos na corrente logo em seguida,&lt;br /&gt;
o trabalho para modificar o bloco inclui refazer todos os blocos após este.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ProofOfWork.png]]&lt;br /&gt;
&lt;br /&gt;
A prova de trabalho também resolve o problema de determinar representação na tomada de decisão da&lt;br /&gt;
maioria. Se a maioria estivesse baseada em “um-endereço-IP-um-voto”, ela poderia ser subvertida por&lt;br /&gt;
qualquer um capaz de alocar muitos IPs. Prova de trabalho é essencialmente “uma-CPU-um-voto”. A&lt;br /&gt;
decisão da maioria é representada pela corrente mais longa, que tem o maior esforço de prova de trabalho&lt;br /&gt;
investido nela. Se a maior parte do poder de processamento é controlado por nodes honestos, a corrente&lt;br /&gt;
honesta irá crescer mais rapidamente e ultrapassar qualquer corrente competidora. Para modificar um bloco&lt;br /&gt;
antigo, um invasor teria que refazer a prova de trabalho do bloco e de todos os blocos posteriores e então&lt;br /&gt;
recuperar o atraso e ultrapassar o trabalho dos nodes honestos. Mostraremos adiante que a probabilidade de&lt;br /&gt;
um invasor mais lento recuperar o atraso diminui exponencialmente, à medida que blocos subsequentes são&lt;br /&gt;
adicionados.&lt;br /&gt;
Para compensar o aumento da velocidade do hardware e o interesse variável em rodar os nodes com o&lt;br /&gt;
passar do tempo, a dificuldade da prova de trabalho é determinada por uma média móvel visando um&lt;br /&gt;
número de blocos por hora. Se os blocos forem gerados muito rápido, a dificuldade aumenta.&lt;br /&gt;
&lt;br /&gt;
=== Rede ===&lt;br /&gt;
Os passos para executar a rede são os seguintes: &lt;br /&gt;
&lt;br /&gt;
* Novas transações são transmitidas para todos os nodes.&lt;br /&gt;
&lt;br /&gt;
* Cada node coleta novas transações em um bloco.&lt;br /&gt;
&lt;br /&gt;
* Cada node trabalha para encontrar uma prova de trabalho difícil para o seu bloco.&lt;br /&gt;
&lt;br /&gt;
* Quando um node encontra uma prova de trabalho, ele transmite o bloco para todos os nodes.&lt;br /&gt;
&lt;br /&gt;
* Os nodes aceitam o bloco somente se todas as transações nele são válidas e ainda não foram usadas.&lt;br /&gt;
&lt;br /&gt;
* Os nodes expressam sua aceitação do bloco trabalhando na criação do próximo bloco da corrente,&lt;br /&gt;
usando o hash do bloco aceito como o hash anterior.&lt;br /&gt;
&lt;br /&gt;
Nodes sempre consideram a maior corrente como a corrente correta e vão continuar trabalhando nela para&lt;br /&gt;
estendê-la. Se dois nodes transmitem versões diferentes do mesmo bloco simultaneamente, alguns nodes vão&lt;br /&gt;
receber um ou outro primeiro. Neste caso, eles trabalham no primeiro que receberam, mas vão salvar a&lt;br /&gt;
outra ramificação no caso dela se tornar a maior. O impasse será solucionado quando a próxima prova de&lt;br /&gt;
trabalho for encontrada e uma das ramificações se tornar maior; os nodes que estavam trabalhando na outra&lt;br /&gt;
ramificação irão então mudar para a mais longa.&lt;br /&gt;
Transmissões de novas transações não necessariamente precisam alcançar todos os nodes. Desde que elas&lt;br /&gt;
alcancem muitos nodes, elas vão entrar em algum bloco em breve. As transmissões de blocos também são&lt;br /&gt;
tolerantes a mensagens perdidas. Se um node não receber um bloco, ele irá solicitá-lo quando receber o&lt;br /&gt;
próximo bloco e perceber que faltou um.&lt;br /&gt;
&lt;br /&gt;
=== Incentivo ===&lt;br /&gt;
Por convenção, a primeira transação de um bloco é uma transação especial que inicia uma nova moeda de&lt;br /&gt;
propriedade do criador do bloco. Isso adiciona um incentivo para os nodes suportarem a rede, e estabelece&lt;br /&gt;
uma forma de inicialmente distribuir moedas em circulação, já que não existe uma autoridade central para&lt;br /&gt;
emitir essas moedas. A adição regular de uma constante de quantidade de novas moedas é análoga a dos&lt;br /&gt;
mineradores de ouro gastando recursos para colocar mais ouro em circulação. No nosso caso, tempo de&lt;br /&gt;
CPU e eletricidade que são gastos.&lt;br /&gt;
O incentivo também pode ser financiado com taxas de transação. Se o valor de saída de uma transação&lt;br /&gt;
é menor que o valor de entrada, a diferença é uma taxa de transação que é adicionada ao valor de incentivo&lt;br /&gt;
do bloco contendo a transação. Uma vez que um número pré-determinado de moedas estiver entrado em&lt;br /&gt;
circulação, o incentivo pode mudar integralmente para taxas de transação e estar completamente livre de&lt;br /&gt;
inflação.&lt;br /&gt;
O incentivo pode ajudar encorajar os nodes a permanecerem honestos. Se um invasor ganancioso é capaz&lt;br /&gt;
de reunir mais poder de processamento do que todos os nodes honestos juntos, ele teria que escolher entre usar esse&lt;br /&gt;
poder para fraudar as pessoas roubando de volta os pagamentos, ou usá-lo para gerar novas moedas. Ele&lt;br /&gt;
deverá achar mais lucrativo trabalhar conforme as regras, já que elas vão lhe gerar mais moedas do que&lt;br /&gt;
todos os outros juntos, do que prejudicar o sistema e a validade de sua própria riqueza.&lt;br /&gt;
&lt;br /&gt;
=== Recuperando espaço em disco ===&lt;br /&gt;
Uma vez que a última transação de uma moeda é enterrada em blocos o suficiente, as transações gastas&lt;br /&gt;
anteriormente podem ser descartadas para salvar espaço em disco. Para facilitar esse ato sem quebrar o hash&lt;br /&gt;
do bloco, transações são transformadas em hash em uma árvore de Merkle [7][2][5], apenas com a raiz&lt;br /&gt;
incluída no hash dos blocos. Os hashes interiores não precisam ser armazenados.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:ReclaimingDiskSpace.png]]&lt;br /&gt;
&lt;br /&gt;
Um cabeçalho de bloco sem transações deve ter em torno de 80 bytes. Se supormos que os blocos são&lt;br /&gt;
gerados a cada 10 minutos, 80 bytes * 6 * 24 * 365 = 4.2MB por ano. Com os sistemas de computador&lt;br /&gt;
típicos sendo vendidos em 2008 com 2GB de RAM, e a lei de Moore prevendo um aumento de 1.2GB por&lt;br /&gt;
ano, armazenamento não deve ser um problema mesmo se os cabeçalhos dos blocos sejam mantidos&lt;br /&gt;
em memória.&lt;br /&gt;
&lt;br /&gt;
=== Verificação simplificada de pagamento ===&lt;br /&gt;
É possível verificar pagamentos sem ter que rodar um node de rede inteiro. Um usuário precisa apenas manter&lt;br /&gt;
uma cópia dos cabeçalhos dos blocos da maior corrente de prova de trabalho, que ele pode obter consultando&lt;br /&gt;
os nodes da rede até se convencer de que ele tem a maior corrente, e obter a ramificação da arvore de Merkle&lt;br /&gt;
ligando a transação ao bloco onde ela está carimbada. Ele não pode verificar a transação para ele mesmo,&lt;br /&gt;
mas ao liga-la a um local na corrente, ele pode ver que um node aceitou a transação, e blocos adicionados&lt;br /&gt;
após este irão confirmar ainda mais que a rede a aceitou.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:SPV.png]]&lt;br /&gt;
&lt;br /&gt;
Como sempre, a verificação é confiável desde que os nodes honestos controlem a rede, mas é mais&lt;br /&gt;
vulnerável se a rede for dominada por um invasor. Enquanto os nodes da rede podem verificar transações por&lt;br /&gt;
si próprios, o método simplificado pode ser enganado por uma transação fabricada por um invasor enquanto&lt;br /&gt;
o invasor continuar a dominar a rede. Uma estratégia para proteger-se contra este problema seria aceitar &lt;br /&gt;
alertas dos nodes da rede quando eles detectam um bloco inválido, induzindo o software do usuário a baixar&lt;br /&gt;
o bloco completo e as transações alertadas para confirmar a inconsistência. Negócios que recebem&lt;br /&gt;
pagamentos frequentes vão provavelmente querer rodar seus próprios nodes para uma segurança mais&lt;br /&gt;
independente e verificações mais rápidas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Combinando e dividindo valor ===&lt;br /&gt;
Embora seja possível manipular as moedas individualmente, seria complicado fazer uma transação separada&lt;br /&gt;
para cada centavo em uma transferência. Para permitir que o valor seja dividido e combinado, transações&lt;br /&gt;
contém múltiplas entradas e saídas. Normalmente haverá ou uma única entrada de uma grande transação&lt;br /&gt;
anterior ou múltiplas entradas combinando pequenos valores, e no máximo duas saídas: Uma para o&lt;br /&gt;
pagamento e uma para devolução de troco, se houver, de volta para o remetente.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:CandSV.png]]&lt;br /&gt;
&lt;br /&gt;
Deve-se notar que dispersão, onde uma transação depende de váriastransações, e estas transações dependem&lt;br /&gt;
de muitas outras, não é um problema aqui. Nunca haverá a necessidade de extrair uma cópia independente&lt;br /&gt;
completa do histórico de uma transação.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Privacidade ===&lt;br /&gt;
O modelo bancário tradicional atinge um nível de privacidade limitando o acesso à informação às partes&lt;br /&gt;
envolvidas e ao intermediário confiável. A necessidade de anunciar todas as transações publicamente&lt;br /&gt;
inviabiliza este método, mas a privacidade ainda pode ser mantida quebrando o fluxo da informação em&lt;br /&gt;
outro local: mantendo as chaves públicas anônimas. O público pode ver que alguém está enviando um&lt;br /&gt;
montante de dinheiro para outra pessoa, mas sem informações ligando a transação a qualquer pessoa. Isso&lt;br /&gt;
é parecido com o nível de informação liberado no mercado de ações, onde o tempo e o tamanho das vendas&lt;br /&gt;
individuais, a “fita”, são tornados públicos, porém sem dizer quem são as partes envolvidas.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Privacy.png]]&lt;br /&gt;
&lt;br /&gt;
Como um firewall adicional, um novo par de chaves deve ser usado para cada transação para evitar que&lt;br /&gt;
sejam associadas a um proprietário comum. Alguma associação ainda é inevitável com transações de muitas&lt;br /&gt;
entradas, que necessariamente revelam que suas entradas pertenciam ao mesmo proprietário. O risco é que&lt;br /&gt;
se o proprietário de uma chave for revelado, associações poderiam revelar outras transações que pertenciam&lt;br /&gt;
ao mesmo proprietário. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cálculos ===&lt;br /&gt;
Nós consideramos o cenário de um invasor tentando gerar uma corrente alternativa mais rápido do que a&lt;br /&gt;
corrente honesta. Mesmo que isso seja bem-sucedido, não irá tornar o sistema aberto para mudanças&lt;br /&gt;
arbitrárias, como criar valor do nada ou tomar dinheiro que nunca pertenceu ao invasor. nodes não irão aceitar&lt;br /&gt;
uma transação inválida como pagamento, e nodes honestos nunca aceitarão um bloco contendo-as. Um invasor&lt;br /&gt;
pode apenas tentar modificar uma de suas próprias transações para pegar de volta o dinheiro que ele gastou&lt;br /&gt;
recentemente.&lt;br /&gt;
A corrida entre a corrente honesta e a corrente do invasor pode ser caracterizada como uma Caminhada&lt;br /&gt;
Aleatória Binomial. O evento de sucesso é a corrente honesta sendo estendida por um bloco, aumentando&lt;br /&gt;
sua liderança em +1, e o evento de falha é a corrente do invasor ser estendida por um bloco, reduzindo a&lt;br /&gt;
diferença em -1.&lt;br /&gt;
A probabilidade de um invasor alcançar de um determinado déficit é análoga ao problema da Ruina do&lt;br /&gt;
Apostador. Suponha que um apostador com créditos ilimitados comece em déficit e jogue potencialmente&lt;br /&gt;
um infinito número de vezes para tentar empatar. Nós vamos calcular a probabilidade de ele nunca&lt;br /&gt;
conseguir isso, ou que um invasor simplesmente alcance a corrente honesta, como segue [8]:&lt;br /&gt;
p = probabilidade de um node honesto encontrar o próximo bloco&lt;br /&gt;
q = probabilidade de um invasor encontrar o próximo bloco&lt;br /&gt;
qz = probabilidade algum dia o invasor alcançar estando z blocos atrás&lt;br /&gt;
&lt;br /&gt;
Assumindo que p &amp;gt; q, a probabilidade cai exponencialmente a medida que o número de blocos que o invasor&lt;br /&gt;
tem que alcançar aumenta. Com a probabilidade contra ele, se ele não levar sorte logo no início, suas&lt;br /&gt;
chances vão desaparecendo e ele acaba ficando muito atrasado.&lt;br /&gt;
&lt;br /&gt;
Nós agora consideramos quanto tempo o destinatário de uma nova transação precisa esperar antes que seja&lt;br /&gt;
suficientemente seguro de que o pagador não poderá alterar a transação. Nós assumimos que o remetente&lt;br /&gt;
seja um invasor que quer fazer seu destinatário acreditar que ele o pagou por algum tempo, então mudar a&lt;br /&gt;
transação para receber o dinheiro de volta depois que algum tempo se passou. O destinatário vai ser alertado&lt;br /&gt;
quando isso acontecer, mas o remetente espera que seja tarde demais.&lt;br /&gt;
O destinatário gera um novo par de chaves e dá a chave pública para o remetente logo antes de assinar. Isso&lt;br /&gt;
previne que o remetente prepare uma cadeia de blocos antes do tempo trabalhando nele continuamente até&lt;br /&gt;
que ele seja sortudo o suficiente para avançar o suficiente a frente, então executando a transação naquele&lt;br /&gt;
momento. Uma vez que a transação seja enviada, o remetente desonesto começa a trabalhar em segredo em&lt;br /&gt;
uma cadeia paralela contendo uma versão alternativa da transação.&lt;br /&gt;
O destinatário aguarda até que a transação seja adicionada ao bloco e z blocos já tenham sido ligados após&lt;br /&gt;
ele. Ele não sabe a quantidade exata do progresso que o invasor fez, mas assumindo que os blocos honestos&lt;br /&gt;
tomaram a média esperada de tempo por bloco, o progresso potencial do invasor sera uma distribuição de&lt;br /&gt;
Poisson com o valor esperado: &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Lambida.png]]&lt;br /&gt;
&lt;br /&gt;
Para obter a probabilidade de um invasor ainda alcançar neste momento, nós multiplicamos a densidade de&lt;br /&gt;
Poisson por cada quantidade de progresso que ele poderia ter feito pela probabilidade de ele conseguir&lt;br /&gt;
alcançar a partir daquele ponto:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Probcatchup.png]]&lt;br /&gt;
&lt;br /&gt;
Reorganizando para evitar a soma de uma cauda infinita da distribuição...&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Avoidtailsum.png]]&lt;br /&gt;
&lt;br /&gt;
=== Convertendo em código C ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;math.h&amp;gt; double&lt;br /&gt;
AttackerSuccessProbability(double q, int z)&lt;br /&gt;
{ double p = 1.0 - q; double&lt;br /&gt;
lambda = z * (q / p); double&lt;br /&gt;
sum = 1.0; int i, k;&lt;br /&gt;
for (k = 0; k &amp;lt;= z; k++)&lt;br /&gt;
{ double poisson = exp(-lambda); for (i = 1; i&lt;br /&gt;
&amp;lt;= k; i++) poisson *= lambda / i; sum -=&lt;br /&gt;
poisson * (1 - pow(q / p, z - k));&lt;br /&gt;
} return&lt;br /&gt;
sum;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Executando alguns resultados, podemos ver a probabilidade cair exponencialmente com z.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
q=0.1&lt;br /&gt;
z=0 P=1.0000000&lt;br /&gt;
z=1 P=0.2045873&lt;br /&gt;
z=2 P=0.0509779&lt;br /&gt;
z=3 P=0.0131722&lt;br /&gt;
z=4 P=0.0034552&lt;br /&gt;
z=5 P=0.0009137&lt;br /&gt;
z=6 P=0.0002428&lt;br /&gt;
z=7 P=0.0000647&lt;br /&gt;
z=8 P=0.0000173&lt;br /&gt;
z=9 P=0.0000046&lt;br /&gt;
z=10 P=0.0000012&lt;br /&gt;
q=0.3&lt;br /&gt;
z=0 P=1.0000000&lt;br /&gt;
z=5 P=0.1773523&lt;br /&gt;
z=10 P=0.0416605&lt;br /&gt;
z=15 P=0.0101008&lt;br /&gt;
z=20 P=0.0024804&lt;br /&gt;
z=25 P=0.0006132&lt;br /&gt;
z=30 P=0.0001522&lt;br /&gt;
z=35 P=0.0000379 &lt;br /&gt;
&lt;br /&gt;
z=40 P=0.0000095&lt;br /&gt;
z=45 P=0.0000024&lt;br /&gt;
z=50 P=0.0000006&lt;br /&gt;
Para P menor que 0.1%&lt;br /&gt;
P &amp;lt; 0.001&lt;br /&gt;
q=0.10 z=5&lt;br /&gt;
q=0.15 z=8&lt;br /&gt;
q=0.20 z=11&lt;br /&gt;
q=0.25 z=15&lt;br /&gt;
q=0.30 z=24&lt;br /&gt;
q=0.35 z=41&lt;br /&gt;
q=0.40 z=89&lt;br /&gt;
q=0.45 z=340&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conclusão ===&lt;br /&gt;
Nós propusemos um sistema de transações eletrônicas sem depender de confiança. Nós começamos com a&lt;br /&gt;
estrutura comum de moedas feitas a partir de assinaturas digitais, que oferecem forte controle de&lt;br /&gt;
propriedade, mas é incompleta sem um sistema de prevenção de gasto duplo. Para resolver isso, nós&lt;br /&gt;
propusemos uma rede p2p usando provas de trabalho para registrar um histórico público de transações que&lt;br /&gt;
rapidamente se torna computacionalmente imprático para um invasor modificar se os nodes honestos&lt;br /&gt;
controlarem a maior parte do poder de processamento. A rede é robusta em sua simplicidade não&lt;br /&gt;
estruturada. nodes trabalham todos ao mesmo tempo com pouca coordenação. Eles não precisam ser&lt;br /&gt;
identificados, já que as mensagem não são encaminhadas para nenhum local em particular e apenas&lt;br /&gt;
precisam ser entregues na base da “melhor esforço”. nodes podem sair e voltar a rede a vontade, aceitando a&lt;br /&gt;
cadeia de prova de trabalho como prova do que aconteceu enquanto ele esteve fora. Eles votam com seu&lt;br /&gt;
poder de processamento, expressando sua aceitação dos blocos válidos ao trabalhar em estende-los e&lt;br /&gt;
rejeitando blocos inválidos ao recusar a trabalhar neles. Quaisquer regras e incentivos necessários podem&lt;br /&gt;
ser forçados com este mecanismo de consenso. &lt;br /&gt;
&lt;br /&gt;
=== Referências ===&lt;br /&gt;
[1] W. Dai, &amp;quot;b-money,&amp;quot; http://www.weidai.com/bmoney.txt, 1998.&lt;br /&gt;
&lt;br /&gt;
[2] H. Massias, X.S. Avila, and J.-J. Quisquater, &amp;quot;Design of a secure timestamping service with minimal&lt;br /&gt;
trust requirements,&amp;quot; In 20th Symposium on Information Theory in the Benelux, May 1999.&lt;br /&gt;
&lt;br /&gt;
[3] S. Haber, W.S. Stornetta, &amp;quot;How to time-stamp a digital document,&amp;quot; In Journal of Cryptology, vol 3, no&lt;br /&gt;
2, pages 99-111, 1991.&lt;br /&gt;
&lt;br /&gt;
[4] D. Bayer, S. Haber, W.S. Stornetta, &amp;quot;Improving the efficiency and reliability of digital timestamping,&amp;quot;&lt;br /&gt;
In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. &lt;br /&gt;
[5]&lt;br /&gt;
S. Haber, W.S. Stornetta, &amp;quot;Secure names for bit-strings,&amp;quot; In Proceedings of the 4th ACM Conference on&lt;br /&gt;
Computer and Communications Security, pages 28-35, April 1997. &lt;br /&gt;
[6] A. Back, &amp;quot;Hashcash - a denial of&lt;br /&gt;
service counter-measure,&amp;quot; http://www.hashcash.org/papers/hashcash.pdf, 2002.&lt;br /&gt;
&lt;br /&gt;
[7] R.C. Merkle, &amp;quot;Protocols for public key cryptosystems,&amp;quot; In Proc. 1980 Symposium on&lt;br /&gt;
Security and Privacy, IEEE Computer Society, pages 122-133, April 1980.&lt;br /&gt;
&lt;br /&gt;
[8] W. Feller, &amp;quot;An introduction to probability theory and its applications,&amp;quot; 1957.&lt;br /&gt;
&lt;br /&gt;
[9]JUS - O que é &amp;quot;gasto duplo&amp;quot; e como o Bitcoin é capaz de evitá-lo? Disponível em https://jus.com.br/artigos/66683/o-que-e-gasto-duplo-e-como-o-bitcoin-e-capaz-de-evita-lo Jun, 2018 - Acesso em 20 de julho de 2018.&lt;br /&gt;
&lt;br /&gt;
[10] N. Satoshi, &amp;quot;Bitcoin: A Peer-to-Peer Electronic Cash System&amp;quot;  Disponível em https://bitcoin.org/bitcoin.pdf&lt;/div&gt;</summary>
		<author><name>Crlsgms</name></author>
	</entry>
	<entry>
		<id>https://area31.net.br/wiki/index.php?title=Usu%C3%A1rio:Crlsgms&amp;diff=3384</id>
		<title>Usuário:Crlsgms</title>
		<link rel="alternate" type="text/html" href="https://area31.net.br/wiki/index.php?title=Usu%C3%A1rio:Crlsgms&amp;diff=3384"/>
		<updated>2016-05-06T20:43:35Z</updated>

		<summary type="html">&lt;p&gt;Crlsgms: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Area31-icon.png|thumb|180px|]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nome completo:&#039;&#039;&#039; Carlos Gomes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nick:&#039;&#039;&#039; crlsgms&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Site:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linkedin:&#039;&#039;&#039; https://br.linkedin.com/in/crlsgms&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Twitter:&#039;&#039;&#039; [https://twitter.com/crlsgms @crlsgms]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Facebook:&#039;&#039;&#039; https://www.facebook.com/crlsgms&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Jabber (XMPP):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Membro desde:&#039;&#039;&#039; 12/04/2016&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Indicado por:&#039;&#039;&#039; [[Raphael Bastos - Coffnix|Raphael Bastos]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cidade:&#039;&#039;&#039; Franca - SP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mini CV:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Categoria:Membros]]&lt;/div&gt;</summary>
		<author><name>Crlsgms</name></author>
	</entry>
	<entry>
		<id>https://area31.net.br/wiki/index.php?title=Usu%C3%A1rio:Crlsgms&amp;diff=3383</id>
		<title>Usuário:Crlsgms</title>
		<link rel="alternate" type="text/html" href="https://area31.net.br/wiki/index.php?title=Usu%C3%A1rio:Crlsgms&amp;diff=3383"/>
		<updated>2016-05-06T20:41:41Z</updated>

		<summary type="html">&lt;p&gt;Crlsgms: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Area31-icon.png|thumb|180px|]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nome completo:&#039;&#039;&#039; Carlos Gomes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nick:&#039;&#039;&#039; crlsgms&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Site:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linkedin:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Twitter:&#039;&#039;&#039; [https://twitter.com/crlsgms @]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Facebook:&#039;&#039;&#039; https://www.facebook.com/crlsgms&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Jabber (XMPP):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Membro desde:&#039;&#039;&#039; 12/04/2016&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Indicado por:&#039;&#039;&#039; [[Raphael Bastos - Coffnix|Raphael Bastos]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cidade:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mini CV:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Categoria:Membros]]&lt;/div&gt;</summary>
		<author><name>Crlsgms</name></author>
	</entry>
</feed>