Texto traduzido por Michelle Mafra
Por: Satoshi Nakamoto
Lista de Endereços de Criptografia
Bitcoin P2P e-cash papel
09-11-2008 03:09:49 UTC - E-mail original - Visualizar no tópico
James A. Donald escreveu:
O conceito central é que muitas entidades mantêm informações completas e consistentes sobre quem possui quais bitcoins.
Mas manter a consistência é complicado. Não está claro para mim o que acontece quando alguém relata uma transação para um mantenedor, e outra pessoa transporta outra transação para outro mantenedor. A transação não pode ser válida até que tenha sido incorporada em uma visão compartilhada globalmente de todas as transações passadas, e ninguém pode saber que uma visão compartilhada globalmente de todas as transações passadas é globalmente compartilhada até depois de algum tempo, e depois de muitos novas transações chegaram.
Você explicou como fazer isso, e isso simplesmente passou pela minha cabeça, ou você estava confiante de que isso poderia ser feito, e um pouco vago quanto aos detalhes?
A cadeia de prova de trabalho é a solução para o problema de sincronização e para saber qual é a visão compartilhada globalmente sem ter que confiar em ninguém.
Uma transação se propaga rapidamente por toda a rede, portanto, se duas versões da mesma transação forem relatadas quase ao mesmo tempo, aquela com a vantagem inicial teria uma grande vantagem em alcançar muitos mais nós primeiro. Os nós só aceitarão o primeiro que virem, recusando o segundo a chegar, de modo que a transação anterior teria muito mais nós trabalhando para incorporá-lo à próxima prova de trabalho. Com efeito, cada nó vota, por seu ponto de vista, qual transação viu primeiro, incluindo-o em seu esforço de prova de trabalho.
Se as transações acontecem exatamente ao mesmo tempo e houve uma divisão par, é um lançamento baseado no que entra em uma prova de trabalho primeiro, e isso decide qual é a validade.
Quando um nó encontra uma prova de trabalho, o novo bloco é propagado por toda a rede e todo mundo o adiciona à cadeia e começa a trabalhar no próximo bloco depois dele. Qualquer nó que tenha a outra transação parará de tentar incluí-lo em um bloco, já que agora ele é inválido de acordo com a cadeia aceita.
A cadeia de prova de trabalho é em si uma prova evidente de que veio da visão globalmente compartilhada. Somente a maioria da rede em conjunto tem poder de CPU suficiente para gerar uma cadeia de prova de trabalho tão difícil. Qualquer usuário, ao receber a cadeia de prova de trabalho, pode ver o que a maioria da rede aprovou. Uma vez que uma transação é inserida em um link que é um dos poucos elos da cadeia, ela está firmemente gravada na história global.
Satoshi Nakamoto
Cryptography Mailing List
Bitcoin P2P e-cash paper
James A. Donald wrote:
The core concept is that lots of entities keep complete and consistent information as to who owns which bitcoins.
But maintaining consistency is tricky. It is not clear to me what happens when someone reports one transaction to one maintainer, and someone else transports another transaction to another maintainer. The transaction cannot be known to be valid until it has been incorporated into a globally shared view of all past transactions, and no one can know that a globally shared view of all past transactions is globally shared until after some time has passed, and after many new transactions have arrived.
Did you explain how to do this, and it just passed over my head, or were you confident it could be done, and a bit vague as to the details?
The proof-of-work chain is the solution to the synchronisation problem, and to knowing what the globally shared view is without having to trust anyone.
A transaction will quickly propagate throughout the network, so if two versions of the same transaction were reported at close to the same time, the one with the head start would have a big advantage in reaching many more nodes first. Nodes will only accept the first one they see, refusing the second one to arrive, so the earlier transaction would have many more nodes working on incorporating it into the next proof-of-work. In effect, each node votes for its viewpoint of which transaction it saw first by including it in its proof-of-work effort.
If the transactions did come at exactly the same time and there was an even split, it's a toss up based on which gets into a proof-of-work first, and that decides which is valid.
When a node finds a proof-of-work, the new block is propagated throughout the network and everyone adds it to the chain and starts working on the next block after it. Any nodes that had the other transaction will stop trying to include it in a block, since it's now invalid according to the accepted chain.
The proof-of-work chain is itself self-evident proof that it came from the globally shared view. Only the majority of the network together has enough CPU power to generate such a difficult chain of proof-of-work. Any user, upon receiving the proof-of-work chain, can see what the majority of the network has approved. Once a transaction is hashed into a link that's a few links back in the chain, it is firmly etched into the global history.
Satoshi Nakamoto
Comments