[137555] in cryptography@c2.net mail archive

home help back first fref pref prev next nref lref last post

Re: Bitcoin P2P e-cash paper

daemon@ATHENA.MIT.EDU (Satoshi Nakamoto)
Thu Nov 13 22:34:16 2008

Date: Fri, 14 Nov 2008 06:56:55 +0800
From: "Satoshi Nakamoto" <satoshi@vistomail.com>
Reply-To: satoshi@vistomail.com
To: jamesd@echeque.com
Cc: cryptography@metzdowd.com

James A. Donald wrote:
> It is not sufficient that everyone knows X. We also
> need everyone to know that everyone knows X, and that
> everyone knows that everyone knows that everyone knows X
> - which, as in the Byzantine Generals problem, is the
> classic hard problem of distributed data processing.

The proof-of-work chain is a solution to the Byzantine Generals' Problem=
=2E  I'll try to rephrase it in that context.

A number of Byzantine Generals each have a computer and want to attack t=
he King's wi-fi by brute forcing the password, which they've learned is =
a certain number of characters in length.  Once they stimulate the netwo=
rk to generate a packet, they must crack the password within a limited t=
ime to break in and erase the logs, otherwise they will be discovered an=
d get in trouble.  They only have enough CPU power to crack it fast enou=
gh if a majority of them attack at the same time.

They don't particularly care when the attack will be, just that they all=
 agree.  It has been decided that anyone who feels like it will announce=
 a time, and whatever time is heard first will be the official attack ti=
me.  The problem is that the network is not instantaneous, and if two ge=
nerals announce different attack times at close to the same time, some m=
ay hear one first and others hear the other first.

They use a proof-of-work chain to solve the problem.  Once each general =
receives whatever attack time he hears first, he sets his computer to so=
lve an extremely difficult proof-of-work problem that includes the attac=
k time in its hash.  The proof-of-work is so difficult, it's expected to=
 take 10 minutes of them all working at once before one of them finds a =
solution.  Once one of the generals finds a proof-of-work, he broadcasts=
 it to the network, and everyone changes their current proof-of-work com=
putation to include that proof-of-work in the hash they're working on.  =
If anyone was working on a different attack time, they switch to this on=
e, because its proof-of-work chain is now longer.

After two hours, one attack time should be hashed by a chain of 12 proof=
s-of-work.  Every general, just by verifying the difficulty of the proof=
-of-work chain, can estimate how much parallel CPU power per hour was ex=
pended on it and see that it must have required the majority of the comp=
uters to produce that much proof-of-work in the allotted time.  They had=
 to all have seen it because the proof-of-work is proof that they worked=
 on it.  If the CPU power exhibited by the proof-of-work chain is suffic=
ient to crack the password, they can safely attack at the agreed time.

The proof-of-work chain is how all the synchronisation, distributed data=
base and global view problems you've asked about are solved.


---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo@metzdowd.com

home help back first fref pref prev next nref lref last post