

Reaching Agreement in the Presence of Faults (1980) [pdf] - TriinT
http://research.microsoft.com/en-us/um/people/lamport/pubs/reaching.pdf

======
HenryR
Although this paper didn't know it at the time, this was one of the first
statements of what would eventually be called the Byzantine Generals Problem
(there is a paper of that name by the same authors which has similar content,
just expanded on a bit).

I like Lamport's opinion of his own contribution:

"My other contribution to this paper was getting it written. Writing is hard
work, and without the threat of perishing, researchers outside academia
generally do less publishing than their colleagues at universities. I wrote an
initial draft, which displeased Shostak so much that he completely rewrote it
to produce the final version."

This is one of two great fundamental results in consensus protocols; the other
being the later FLP result which shows the impossibility of consensus with
failures in an asynchronous network. Byzantine fault tolerance was a hot topic
in systems for the last roughly ten years thanks to Turing Award winner
Barbara Liskov's work with Miguel Castro on Practical BFT that sparked a bit
of a resurgence; the two most notable other papers IMHO in the field since
that are 'Separating Agreement From Execution' paper from UT Austin and the
SOSP '07 paper on Zyzzyva. Both of these take apart the 3f+1 bound and show
exactly how many processors you need for various parts of the protocol.

